mohrcoulomb Class Reference

#include <mohrc.h>

List of all members.

Public Member Functions

void changeparam (atsel &atm, vector &val)
 function changes material parameters (used in stochastic calculations)
long checkpsig (vector &psig)
 checks type of singularity region and returns singularity indicator
long checkzeropsig (vector &psig)
 checks for index of out of plane principal stress in case plane stress problem
long cutting_plane (long ipp, double &gamma, vector &epsn, vector &epsp, vector &q, long ni, double err)
 cutting plane algorithm at principal stresses
void derplaspotsigma (vector &dgds)
void deryieldfsigma (vector &dfds)
void dfdsigma (long *stat, long mu, matrix &dfds)
void dgdsigma (long *stat, long mu, matrix &dgds)
double give_consparam (long ipp, long ido)
 returns consistency parameter
void giveirrstrains (long ipp, long ido, vector &epsp)
 returns plastic strains
void matstiff (matrix &d, long ipp, long ido)
 stiffness matrix for given intgration point
void mc_msurf_cp (long ipp, double &gamma, vector &epsn, vector &epsp, vector &q, long mu, long ni, double err)
 multisurface cutting plane algorithm at principal stresses
 mohrcoulomb (void)
void nlstresses (long ipp, long ido)
 computes stresses at the given integration point
void nonloc_nlstresses (long ipp, long ido)
 computes stresses at the given integration point from the nonlocal strain values
void pelmatstiff (long ipp, matrix &d, double e, double nu)
 elastic stiffness matrix for elastic isotropic material computed at principal stress directions
void plasmodscalar (long ipp, vector &q, long mu, matrix &hcpm)
 returns hardening contribution for multisurface cutting plane method
double plasmodscalar (long ipp, vector &q)
 returns hardening contribution for cutting_plane method
void read (XFILE *in)
void tangentstiff (matrix &d, matrix &td, long ipp, long ido)
 tangent stiffness matrix for given integration point
void updateq (long ipp, vector &epsp, vector &q)
 updates hardening parameters
void updateval (long ipp, long im, long ido)
 updates values of the integration point eqother array with the new reached
void yieldfunction (vector &psig, long mu, vector &f)
void yieldfunction (vector &psig, long mu, long *stat, vector &f)
double yieldfunction (vector &psig)
 ~mohrcoulomb (void)

Public Attributes

double c
 cohesion
double phi
 friction angle
double psi
 dilatation
strretalg sra
 stress return algorithm

Detailed Description

The class defines nonassociated plastic material model with Mohr-Coulomb yield criterion. Single-surface stress return cutting plane algorithm is used for detection of active yield surfaces and if it is necessary, the multi-surface cutting plane algorithm is used.

Created by Tomas Koudelka,

Definition at line 19 of file mohrc.h.


Constructor & Destructor Documentation

mohrcoulomb ( void   ) 

The constructor inializes attributes to zero values.

Created by Tomas Koudelka,

Definition at line 26 of file mohrc.cpp.

References c, phi, and psi.

~mohrcoulomb ( void   ) 

The destructor is defined only for the formal purposes.

Created by Tomas Koudelka,

Definition at line 38 of file mohrc.cpp.


Member Function Documentation

void changeparam ( atsel atm,
vector val 
)

function changes material parameters (used in stochastic calculations)

The function changes material parameters for stochastic analysis.

Parameters:
atm - selected material parameters (parameters which are changed)
val - array containing new values of parameters
Returns:
The function does not return anything.

Created by Tomas Koudelka,

Definition at line 1076 of file mohrc.cpp.

References atsel::atrib, c, atsel::num, phi, print_err(), and psi.

long checkpsig ( vector psig  ) 

checks type of singularity region and returns singularity indicator

Function checks ordering of principal stresses and vertex singularity.

Parameters:
psig - principal stress vector sorted in this way psig[0] < psig[1] < psig[2]
Return values:
12 - in case that the psig[0] < psig[1] condition is not statisfied
23 - in case that the psig[1] < psig[2] condition is not statisfied
1 - in case that the vertex singularity occurs i.e. tensile strength is exceeded
0 - in other cases

Created by Tomas Koudelka, 4.11.2003

Definition at line 562 of file mohrc.cpp.

References c, and phi.

Referenced by cutting_plane().

long checkzeropsig ( vector psig  ) 

checks for index of out of plane principal stress in case plane stress problem

Function checks ordering of principal stresses and vertex singularity.

Parameters:
psig - principal stress vector sorted in this way psig[0] < psig[1] < psig[2]
Returns:
Function returns index of zero psig.

Created by Tomas Koudelka,4.11.2003

Definition at line 596 of file mohrc.cpp.

Referenced by cutting_plane(), and mc_msurf_cp().

long cutting_plane ( long  ipp,
double &  gamma,
vector epsn,
vector epsp,
vector q,
long  ni,
double  err 
)

cutting plane algorithm at principal stresses

Function returns stresses on sufrace of plasticity cutting plane method in principal stresses is used

Parameters gamma, epsp and q will be replaced by new values

Parameters:
ipp - integration point pointer
gamma - consistency parameter (input/output)
epsn - total strain components
epsp - plastic strain components (input/output)
q - hardening parameters (input/output)
ni - maximum number of iterations
err - required error
Returns:
Function returns indicator of active yield surfaces in case detection of the singularity or zero in case of successfull stress return. In addition, the function updates parameters gamma, epsp and q.

Created by Tomas Koudelka, 4.8.2001

Definition at line 405 of file mohrc.cpp.

References addv(), checkpsig(), checkzeropsig(), copyv(), derplaspotsigma(), deryieldfsigma(), elisomat, mechmat::elmatstiff(), f, fillcol(), fillrow(), intpoints::gemid(), mechmat::give_actual_nu(), mechmat::give_actual_ym(), glmatrixtransf(), mechmat::ip, lgmatrixtransf(), limit, Mm, Mp, mxv(), vector::n, nijac, pelmatstiff(), planestrain, planestress, plasmodscalar(), princ_val(), print_err(), scprd(), intpoints::ssst, mechmat::storestress(), strain, stress, subv(), tensor_vector(), intpoints::tm, updateq(), vector_tensor(), yieldfunction(), and probdesc::zero.

Referenced by nlstresses(), and nonloc_nlstresses().

void derplaspotsigma ( vector dgds  ) 

derivatives of plastic potential function with respect of principal stresses for standard stress ordering sig1 < sig2 < sig3

The function computes derivatives of plastic potential function with respect of the principal stresses vector.

Parameters:
dgds - vector for resulting derivatives (output)
Returns:
The function returns vector of required derivatives.

Created by Tomas Koudelka, 10.11.2003

Definition at line 119 of file mohrc.cpp.

References psi.

Referenced by cutting_plane().

void deryieldfsigma ( vector dfds  ) 

derivatives of yield function with respect of principal stresses for standard stress ordering sig1 < sig2 < sig3

The function computes derivatives of yield function with respect of the principal stresses vector

Parameters:
dfds - vector for resulting derivatives (output)
Returns:
The function returns vector of required derivatives.

Created by Tomas Koudelka, 10.11.2003

Definition at line 99 of file mohrc.cpp.

References phi.

Referenced by cutting_plane(), and tangentstiff().

void dfdsigma ( long *  stat,
long  mu,
matrix dfds 
)

derivatives of yield function with respect of principal stresses for standard stress ordering and ordering given by mu parameter

The function computes derivatives of TRUE ACTIVE yield functions with respect of the principal stresses vector

Parameters:
mu - possibly active yield surfaces indicator
stat - 2 component array with indicator of active yield surface Two surfaces should be active(stat[i]=1), but one can become inactive for some limit cases during stress return. Array is set in the function mc_msurf_cp depending on the results of yieldfunction(vector&, long, vector&) call.
dfds - vector for resulting derivatives (output)
Returns:
The function returns vector of required derivatives.

Created by Tomas Koudelka, 10.11.2003

Definition at line 909 of file mohrc.cpp.

References phi.

Referenced by mc_msurf_cp().

void dgdsigma ( long *  stat,
long  mu,
matrix dgds 
)

derivatives of plastic potential function with respect of principal stresses for standard stress ordering and ordering given by mu parameter

The function computes derivatives of TRUE ACTIVE plastic potential functions with respect of the principal stresses vector

Parameters:
mu - possibly active yield surfaces indicator
stat - 2 component array with indicator of active yield surface Two surfaces should be active(stat[i]=1), but one can become inactive for some limit cases during stress return. Array is set in the function mc_msurf_cp depending on the results of yieldfunction(vector&, long, vector&) call.
dgds - vector for resulting derivatives (output)
Returns:
The function returns vector of required derivatives.

Created by Tomas Koudelka, 10.11.2003

Definition at line 963 of file mohrc.cpp.

References psi.

Referenced by mc_msurf_cp().

double give_consparam ( long  ipp,
long  ido 
)

returns consistency parameter

The function returns actual value of consistency parameter gamma.

Parameters:
ipp - integration point number in the mechmat ip array.
ido - index of the first internal variable for given material in the ipp other array
Returns:
The function returns consistency parameter.

Created by Tomas Koudelka,

Definition at line 1053 of file mohrc.cpp.

References intpoints::eqother, mechmat::ip, Mm, and intpoints::ncompstr.

Referenced by mechmat::give_consparam().

void giveirrstrains ( long  ipp,
long  ido,
vector epsp 
)

returns plastic strains

Function returns irreversible plastic strains.

Parameters:
ipp - integration point number in the mechmat ip array.
ido - index of the first internal variable for given material in the ipp other array
epsp - vector of irreversible strains
Returns:
The function returns vector of irreversible strains in the parameter epsp.

Created by Tomas Koudelka,

Definition at line 1034 of file mohrc.cpp.

References intpoints::eqother, mechmat::ip, Mm, and vector::n.

Referenced by mechmat::giveirrstrains().

void matstiff ( matrix d,
long  ipp,
long  ido 
)

stiffness matrix for given intgration point

The function returns material stiffness matrix for given integration point. Result is stored in the parameter d.

Parameters:
d - material stiffness matrix (output)
ipp - integration point pointer
ido - index of internal variables for given material in the ipp other array
Returns:
The function returns stiffness matrix of the material in the parameter d.

Created by Tomas Koudelka, 10.11.2003

Definition at line 141 of file mohrc.cpp.

References mechmat::elmatstiff(), initial_stiff, matrix::m, Mm, Mp, matrix::n, probdesc::nlman, print_err(), nonlinman::stmat, tangent_stiff, and tangentstiff().

Referenced by mechmat::matstiff().

void mc_msurf_cp ( long  ipp,
double &  gamma,
vector epsn,
vector epsp,
vector q,
long  mu,
long  ni,
double  err 
)

multisurface cutting plane algorithm at principal stresses

Function returns stresses on sufrace of plasticity multisurface cutting plane method at principal stresses is used. Parameters gamma,epsp and q will be replaced by new values.

Parameters:
ipp - integration point pointer
gamma - consistency parameter (input/output)
epsn - total strain components
epsp - plastic strain components (input/output)
q - hardening parameters (input/output)
mu - possibly active yield surfaces indicator
ni - maximum number of iterations
err - required error
Returns:
The function returns actual values of consistency parameter, plastic strains and hardening parameters in the parameters gamma, epsp and q.

Created by Tomas Koudelka, 4.8.2001

Definition at line 629 of file mohrc.cpp.

References vector::a, matrix::a, addm(), addv(), allocm(), allocv(), checkzeropsig(), copyv(), destrm(), destrv(), dfdsigma(), dgdsigma(), elisomat, mechmat::elmatstiff(), f, fillcol(), fillrow(), intpoints::gemid(), gemp(), mechmat::give_actual_nu(), mechmat::give_actual_ym(), glmatrixtransf(), mechmat::ip, lgmatrixtransf(), limit, Mm, Mp, mtxv(), mxm(), mxmt(), mxv(), vector::n, nijac, pelmatstiff(), planestrain, planestress, plasmodscalar(), princ_val(), print_err(), intpoints::ssst, stat, mechmat::storestress(), strain, stress, subv(), tensor_vector(), intpoints::tm, updateq(), vector_tensor(), yieldfunction(), and probdesc::zero.

Referenced by nlstresses(), and nonloc_nlstresses().

void nlstresses ( long  ipp,
long  ido 
)

computes stresses at the given integration point

The function computes correct stresses in the integration point and stores them into ip stress array.

Parameters:
ipp - integration point pointer
im - index of material type for given ip
ido - index of internal variables for given material in the ipp other array
Returns:
The function does not return anything.

Created by Tomas Koudelka, 10.11.2001

Definition at line 280 of file mohrc.cpp.

References cp, cutting_plane(), intpoints::eqother, strretalg::give_err(), strretalg::give_ni(), strretalg::give_tsra(), mechmat::ip, mc_msurf_cp(), Mm, intpoints::ncompstr, intpoints::other, print_err(), sra, and intpoints::strain.

Referenced by mechmat::compnonloc_nlstresses(), and mechmat::computenlstresses().

void nonloc_nlstresses ( long  ipp,
long  ido 
)

computes stresses at the given integration point from the nonlocal strain values

This function computes stresses at given integration point ipp, depending on the reached averaged nonlocal strains. The cutting plane algorithm is used. The stress and the other attribute of given integration point is actualized.

Parameters:
ipp - integration point number in the mechmat ip array.
ido - index of internal variables for given material in the ipp other array
Returns:
The function does not return anything.

Created by Tomas Koudelka, 10.11.2001

Definition at line 340 of file mohrc.cpp.

References cp, cutting_plane(), intpoints::eqother, strretalg::give_err(), strretalg::give_ni(), strretalg::give_tsra(), mechmat::ip, mc_msurf_cp(), Mm, intpoints::ncompstr, intpoints::nonloc, intpoints::other, print_err(), sra, and intpoints::strain.

Referenced by mechmat::compnonloc_nlstresses().

void pelmatstiff ( long  ipp,
matrix d,
double  e,
double  nu 
)

elastic stiffness matrix for elastic isotropic material computed at principal stress directions

The function returns material stiffness matrix for given integration point for the principal directions. Result is stored in the parameter d.

Parameters:
ipp - integration point pointer
d - material stiffness matrix (output)
e - Young modulus
nu - Poissons ratio
Returns:
The function returns stiffness matrix in the parameter d.

Created by Tomas Koudelka, 10.11.2003

Definition at line 241 of file mohrc.cpp.

References cmulm(), mechmat::ip, Mm, planestrain, planestress, print_err(), spacestress, and intpoints::ssst.

Referenced by cutting_plane(), and mc_msurf_cp().

void plasmodscalar ( long  ipp,
vector q,
long  mu,
matrix hcpm 
)

returns hardening contribution for multisurface cutting plane method

The function assembles matrix of plastic moduli used in the multisurface cutting-plane algorithm.

Parameters:
ipp - integration point pointer
q - hardening parameters
mu - possibly active yield surfaces indicator
hcpm - matrix of plastic moduli (output)
Returns:
The function returns resulting matrix in the parameter hcpm.

Created by Tomas Koudelka,

Definition at line 778 of file mohrc.cpp.

References fillm().

double plasmodscalar ( long  ipp,
vector q 
)

returns hardening contribution for cutting_plane method

Function returns plastic modulus in case that hardening/softening rule is adopted

Parameters:
ipp - integration point pointer
q - hardening parameters
Returns:
Function returns value of plastic modulus.

Created by Tomas Koudelka, 4.11.2003

Definition at line 525 of file mohrc.cpp.

Referenced by cutting_plane(), and mc_msurf_cp().

void read ( XFILE in  ) 

The function reads material parameters from the opened text file given by the parameter in.

Parameters:
in - pointer to the opened input text file
Returns:
The function does not return anything.

Created by Tomas Koudelka,

Definition at line 55 of file mohrc.cpp.

References c, phi, psi, strretalg::read(), sra, and xfscanf().

Referenced by mechmat::readmattype().

void tangentstiff ( matrix d,
matrix td,
long  ipp,
long  ido 
)

tangent stiffness matrix for given integration point

The function returns tangent material stiffness matrix for given integration point. Result is stored in the parameter d.

Parameters:
d - elastic material stiffness matrix
td - tangent material stiffness matrix
ipp - integration point pointer
ido - index of internal variables for given material in the ipp other array
Returns:
The function returns tangent stiffness matrix of the material in the parameter d.

Created by Tomas Koudelka, 10.11.2003

Definition at line 175 of file mohrc.cpp.

References allocv(), cmulm(), copym(), deryieldfsigma(), destrv(), intpoints::eqother, mechmat::givestress(), mechmat::ip, limit, matrix::m, Mm, Mp, mtxv(), mxm(), mxv(), matrix::n, intpoints::ncompstr, nijac, planestrain, planestress, princ_val(), scprd(), intpoints::ssst, stress, subm(), vector_tensor(), vxv(), and probdesc::zero.

Referenced by matstiff().

void updateq ( long  ipp,
vector epsp,
vector q 
)

updates hardening parameters

Function updates hardening/softening parameter in case that hardening/softening rule is adopted

Parameters:
ipp - integration point pointer
epsp - plastic strain components
q - hardening parameters (output)
Returns:
The function returns udated hardening parameters in the parameter q.

Created by Tomas Koudelka, 4.11.2003

Definition at line 543 of file mohrc.cpp.

Referenced by cutting_plane(), and mc_msurf_cp().

void updateval ( long  ipp,
long  im,
long  ido 
)

updates values of the integration point eqother array with the new reached

The function updates values in the other array reached in the previous equlibrium state to values reached in the new actual equilibrium state.

Parameters:
ipp - integration point number in the mechmat ip array.
im - index of material type for given ip
ido - index of internal variables for given material in the ipp other array
Returns:
The function does not return anything.

Created by Tomas Koudelka,

Definition at line 1013 of file mohrc.cpp.

References intpoints::eqother, mechmat::givencompeqother(), mechmat::ip, Mm, and intpoints::other.

Referenced by mechmat::updateipvalmat().

void yieldfunction ( vector psig,
long  mu,
vector f 
)

yield function from principal stresses for standard stress ordering and ordering given by mu parameter

The function computes actual values of POSSIBLY ACTIVE yield functions for the multisurface cutting-plane algorithm.

Parameters:
psig - vector of principal stresses
mu - possibly active yield surfaces indicator
stat - 2 component array with indicator of active yield surface Two surfaces should be active(stat[i]=1), but one can become inactive for some limit cases during stress return. Array is set in the function mc_msurf_cp depending on the results of yieldfunction(vector&, long, vector&) call.
f - vector of actual values of active yield functions (output)
Returns:
The function returns actual values of active yield function in the parameter f.

Created by Tomas Koudelka, 4.8.2001

Definition at line 861 of file mohrc.cpp.

References c, and phi.

void yieldfunction ( vector psig,
long  mu,
long *  stat,
vector f 
)

yield function from principal stresses for standard stress ordering and ordering given by mu and stat parameter

The function computes actual values of TRUE ACTIVE yield functions for the multisurface cutting-plane algorithm.

Parameters:
psig - vector of principal stresses
mu - possibly active yield surfaces indicator
stat - 2 component array with indicator of active yield surface Two surfaces should be active(stat[i]=1), but one can become inactive for some limit cases during stress return. Array is set in the function mc_msurf_cp depending on the results of yieldfunction(vector&, long, vector&) call.
f - vector of actual values of active yield functions (output)
Returns:
The function returns actual values of active yield functions in the parameter f.

Created by Tomas Koudelka, 4.8.2001

Definition at line 802 of file mohrc.cpp.

References c, and phi.

double yieldfunction ( vector psig  ) 

yield function from principal stresses for standard stress ordering psig[0] < psig[1] < psig[2]

Function computes the value of yield functions

Parameters:
sig - stress components
Returns:
The function returns actual value of yield function.

Created by Tomas Koudelka, 10.11.2001

Definition at line 72 of file mohrc.cpp.

References c, f, and phi.

Referenced by cutting_plane(), and mc_msurf_cp().


Member Data Documentation

double c

cohesion

Definition at line 82 of file mohrc.h.

Referenced by changeparam(), checkpsig(), mohrcoulomb(), read(), and yieldfunction().

double phi

friction angle

Definition at line 80 of file mohrc.h.

Referenced by changeparam(), checkpsig(), deryieldfsigma(), dfdsigma(), mohrcoulomb(), read(), and yieldfunction().

double psi

dilatation

Definition at line 84 of file mohrc.h.

Referenced by changeparam(), derplaspotsigma(), dgdsigma(), mohrcoulomb(), and read().

stress return algorithm

Definition at line 87 of file mohrc.h.

Referenced by nlstresses(), nonloc_nlstresses(), and read().


The documentation for this class was generated from the following files:

Generated by  doxygen 1.6.2