#include <mohrc.h>
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 |
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.
mohrcoulomb | ( | void | ) |
~mohrcoulomb | ( | void | ) |
function changes material parameters (used in stochastic calculations)
The function changes material parameters for stochastic analysis.
atm | - selected material parameters (parameters which are changed) | |
val | - array containing new values of parameters |
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.
psig | - principal stress vector sorted in this way psig[0] < psig[1] < psig[2] |
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.
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.
psig | - principal stress vector sorted in this way psig[0] < psig[1] < psig[2] |
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
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 |
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.
dgds | - vector for resulting derivatives (output) |
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
dfds | - vector for resulting derivatives (output) |
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
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) |
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
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) |
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.
ipp | - integration point number in the mechmat ip array. | |
ido | - index of the first internal variable for given material in the ipp other array |
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.
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 |
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.
d | - material stiffness matrix (output) | |
ipp | - integration point pointer | |
ido | - index of internal variables for given material in the ipp other array |
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.
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 |
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.
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 |
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.
ipp | - integration point number in the mechmat ip array. | |
ido | - index of internal variables for given material in the ipp other array |
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.
ipp | - integration point pointer | |
d | - material stiffness matrix (output) | |
e | - Young modulus | |
nu | - Poissons ratio |
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().
returns hardening contribution for multisurface cutting plane method
The function assembles matrix of plastic moduli used in the multisurface cutting-plane algorithm.
ipp | - integration point pointer | |
q | - hardening parameters | |
mu | - possibly active yield surfaces indicator | |
hcpm | - matrix of plastic moduli (output) |
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
ipp | - integration point pointer | |
q | - hardening parameters |
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.
in | - pointer to the opened input text file |
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().
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.
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 |
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().
updates hardening parameters
Function updates hardening/softening parameter in case that hardening/softening rule is adopted
ipp | - integration point pointer | |
epsp | - plastic strain components | |
q | - hardening parameters (output) |
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.
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 |
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().
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.
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) |
Created by Tomas Koudelka, 4.8.2001
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.
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) |
Created by Tomas Koudelka, 4.8.2001
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
sig | - stress components |
Created by Tomas Koudelka, 10.11.2001
Definition at line 72 of file mohrc.cpp.
Referenced by cutting_plane(), and mc_msurf_cp().
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().