NeoPZ
|
#include <TPZYCMohrCoulombPV.h>
Classes | |
struct | TComputeSequence |
structure which contains the decision tree of the return map More... | |
Public Types | |
enum | { NYield } |
Public Member Functions | |
TPZYCMohrCoulombPV () | |
empty constructor More... | |
TPZYCMohrCoulombPV (REAL Phi, REAL Psi, REAL c, TPZElasticResponse &ER) | |
Constructor seting yc parameters. More... | |
TPZYCMohrCoulombPV (const TPZYCMohrCoulombPV &cp) | |
Copy Constructor. More... | |
void | SetUp (REAL Phi, REAL Psi, REAL c, TPZElasticResponse &ER) |
Sets up the data. More... | |
TPZYCMohrCoulombPV & | operator= (const TPZYCMohrCoulombPV &cp) |
Operator =. More... | |
virtual int | ClassId () const override |
Define the class id associated with the class. More... | |
void | Read (TPZStream &buf, void *context) override |
read objects from the stream More... | |
void | Write (TPZStream &buf, int withclassid) const override |
Writes this object to the TPZStream buffer. Include the classid if withclassid = true. More... | |
void | SetEpsBar (REAL &epsbar) |
Sets epsbar. More... | |
virtual void | Print (std::ostream &out) const override |
Print Method. More... | |
void | SetElasticResponse (const TPZElasticResponse &ER) |
virtual TPZElasticResponse | GetElasticResponse () const |
REAL | InitialDamage (const TPZVec< REAL > &stress_p) const |
Compute initial damage variable from the given principal stress state. More... | |
template<class T > | |
void | PlasticityFunction (const T epsp, T &c, T &H) const |
Calculates the value c(epsp) and its derivative. More... | |
template<class T > | |
TPZVec< T > | SigmaElastPV (const TPZVec< T > &deform) const |
sigma = lambda Tr(E)I + 2 mu E More... | |
template<class T > | |
T | PhiPlane (const TPZVec< T > &sigma) const |
Calcula o valor da funcao criteiro de plastificacao. More... | |
template<class T > | |
bool | ReturnMapPlane (const TPZVec< T > &sigma_trial, TPZVec< T > &sigma_projected, TComputeSequence &memory, REAL &epsbarnew) const |
Implements the return map in the plane of the surface. More... | |
void | ComputePlaneTangent (TPZMatrix< REAL > &tang, REAL &epsbarp) const |
Computes dsigmapr/dsigmatr for the ReturnMapPlane. More... | |
template<class T > | |
bool | ReturnMapLeftEdge (const TPZVec< T > &sigma_trial, TPZVec< T > &sigma_projected, TComputeSequence &memory, REAL &epsbarnew) const |
Implements the return map in the left edge of the surface. More... | |
void | ComputeLeftEdgeTangent (TPZMatrix< REAL > &tang, REAL &epsbarp) const |
Computes dsigmapr/dsigmatr for the ReturnMapLeftEdge. More... | |
template<class T > | |
bool | ReturnMapRightEdge (const TPZVec< T > &sigma_trial, TPZVec< T > &sigma_projected, TComputeSequence &memory, REAL &epsbarnew) const |
Implements the return map in the right edge of the surface. More... | |
void | ComputeRightEdgeTangent (TPZMatrix< REAL > &tang, REAL &epsbarp) const |
Computes dsigmapr/dsigmatr for the ReturnMapRightEdge. More... | |
template<class T > | |
bool | ReturnMapApex (const TPZVec< T > &sigma_trial, TPZVec< T > &sigma_projected, TComputeSequence &memory, REAL &epsbarnew) const |
Implements the return map in the apex. More... | |
void | ComputeApexGradient (TPZMatrix< REAL > &gradient, REAL &eps_bar_p) const |
void | ProjectSigma (const TPZVec< STATE > &sigma_trial, STATE k_prev, TPZVec< STATE > &sigma, STATE &k_proj, int &m_type, TPZFMatrix< REAL > *gradient=NULL) |
void | ProjectSigmaDep (const TPZVec< STATE > &sigmatrial, STATE kprev, TPZVec< STATE > &sigmaproj, STATE &kpro, TPZFMatrix< STATE > &tang) |
void | Phi (TPZVec< STATE > sig_vec, STATE alpha, TPZVec< STATE > &phi) const |
STATE | Phi () |
void | SetPhi (STATE phi) |
Set up the phi. More... | |
STATE | Psi () |
STATE | Cohesion () |
void | SetCohesion (STATE cohesion) |
Set up the cohesion. More... | |
STATE | E () |
STATE | Poisson () |
virtual void | YieldFunction (const TPZVec< STATE > &sigma, STATE kprev, TPZVec< STATE > &yield) const override |
virtual int | GetNYield () const override |
Public Member Functions inherited from TPZSavable | |
TPZSavable () | |
virtual | ~TPZSavable () |
virtual std::list< std::map< std::string, uint64_t > > | VersionHistory () const |
virtual std::pair< std::string, uint64_t > | Version () const |
virtual bool | Compare (TPZSavable *copy, bool override=false) |
Compares the object for identity with the object pointed to, eventually copy the object. More... | |
virtual bool | Compare (TPZSavable *copy, bool override=false) const |
Compares the object for identity with the object pointed to, eventually copy the object. More... | |
Public Member Functions inherited from TPZRegisterClassId | |
template<typename T > | |
TPZRegisterClassId (int(T::*)() const) | |
TPZRegisterClassId ()=default | |
Protected Attributes | |
REAL | fEpsPlasticBar |
Private Attributes | |
REAL | fPhi |
REAL | fPsi |
REAL | fc |
TPZElasticResponse | fER |
Additional Inherited Members | |
Static Public Member Functions inherited from TPZSavable | |
static std::set< TPZRestoreClassBase * > & | RestoreClassSet () |
This static function guarantees that the gMap object is available when needed. More... | |
static std::map< int, TPZRestore_t > & | ClassIdMap () |
This static function guarantees that the gMap object is available when needed. More... | |
static std::pair< std::string, uint64_t > | NeoPZVersion () |
static void | Register (TPZRestoreClassBase *restore) |
static void | RegisterClassId (int classid, TPZRestore_t fun) |
static TPZSavable * | CreateInstance (const int &classId) |
Definition at line 24 of file TPZYCMohrCoulombPV.h.
anonymous enum |
Enumerator | |
---|---|
NYield |
Definition at line 27 of file TPZYCMohrCoulombPV.h.
TPZYCMohrCoulombPV::TPZYCMohrCoulombPV | ( | ) |
empty constructor
Definition at line 5 of file TPZYCMohrCoulombPV.cpp.
TPZYCMohrCoulombPV::TPZYCMohrCoulombPV | ( | REAL | Phi, |
REAL | Psi, | ||
REAL | c, | ||
TPZElasticResponse & | ER | ||
) |
Constructor seting yc parameters.
Definition at line 9 of file TPZYCMohrCoulombPV.cpp.
TPZYCMohrCoulombPV::TPZYCMohrCoulombPV | ( | const TPZYCMohrCoulombPV & | cp | ) |
|
overridevirtual |
Define the class id associated with the class.
This id has to be unique for all classes A non unique id is flagged at the startup of the program
Implements TPZSavable.
Definition at line 35 of file TPZYCMohrCoulombPV.cpp.
References Hash().
Referenced by SetUp().
|
inline |
Access to Cohesion yield stress
Definition at line 269 of file TPZYCMohrCoulombPV.h.
References fc.
void TPZYCMohrCoulombPV::ComputeApexGradient | ( | TPZMatrix< REAL > & | gradient, |
REAL & | eps_bar_p | ||
) | const |
Computes gradient of projected stress at sigma_trial for the ReturnMapApex
gradient | gradient of projected stress at sigma_trial |
eps_bar_p | accumulated plastic strain |
Definition at line 513 of file TPZYCMohrCoulombPV.cpp.
References cos(), fER, fPhi, fPsi, TPZElasticResponse::K(), PlasticityFunction(), sin, and tan.
Referenced by GetElasticResponse(), and ProjectSigma().
void TPZYCMohrCoulombPV::ComputeLeftEdgeTangent | ( | TPZMatrix< REAL > & | tang, |
REAL & | epsbarp | ||
) | const |
Computes dsigmapr/dsigmatr for the ReturnMapLeftEdge.
Definition at line 285 of file TPZYCMohrCoulombPV.cpp.
References fER, fPhi, fPsi, TPZElasticResponse::G(), TPZElasticResponse::K(), PlasticityFunction(), TPZMatrix< TVar >::Redim(), and sin.
Referenced by GetElasticResponse(), and ProjectSigma().
void TPZYCMohrCoulombPV::ComputePlaneTangent | ( | TPZMatrix< REAL > & | tang, |
REAL & | epsbarp | ||
) | const |
Computes dsigmapr/dsigmatr for the ReturnMapPlane.
Definition at line 159 of file TPZYCMohrCoulombPV.cpp.
References fER, fPhi, fPsi, TPZElasticResponse::G(), TPZElasticResponse::K(), PlasticityFunction(), TPZMatrix< TVar >::Redim(), and sin.
Referenced by GetElasticResponse(), and ProjectSigma().
void TPZYCMohrCoulombPV::ComputeRightEdgeTangent | ( | TPZMatrix< REAL > & | tang, |
REAL & | epsbarp | ||
) | const |
Computes dsigmapr/dsigmatr for the ReturnMapRightEdge.
Definition at line 423 of file TPZYCMohrCoulombPV.cpp.
References fER, fPhi, fPsi, TPZElasticResponse::G(), TPZElasticResponse::K(), PlasticityFunction(), TPZMatrix< TVar >::Redim(), and sin.
Referenced by GetElasticResponse(), and ProjectSigma().
|
inline |
Access to Young's modulus
Definition at line 285 of file TPZYCMohrCoulombPV.h.
References TPZElasticResponse::E().
|
inlinevirtual |
Definition at line 134 of file TPZYCMohrCoulombPV.h.
References ComputeApexGradient(), ComputeLeftEdgeTangent(), ComputePlaneTangent(), ComputeRightEdgeTangent(), fER, InitialDamage(), PhiPlane(), PlasticityFunction(), ProjectSigma(), ReturnMapApex(), ReturnMapLeftEdge(), ReturnMapPlane(), ReturnMapRightEdge(), and SigmaElastPV().
|
inlineoverridevirtual |
Implements TPZPlasticCriterion.
Definition at line 303 of file TPZYCMohrCoulombPV.h.
References as_integer(), and NYield.
REAL TPZYCMohrCoulombPV::InitialDamage | ( | const TPZVec< REAL > & | stress_p | ) | const |
Compute initial damage variable from the given principal stress state.
Definition at line 55 of file TPZYCMohrCoulombPV.cpp.
References DebugStop, fabs, Phi(), and pzgeom::tol.
Referenced by GetElasticResponse().
TPZYCMohrCoulombPV & TPZYCMohrCoulombPV::operator= | ( | const TPZYCMohrCoulombPV & | cp | ) |
Operator =.
Definition at line 18 of file TPZYCMohrCoulombPV.cpp.
References fc, fEpsPlasticBar, fER, fPhi, and fPsi.
Referenced by TPZYCMohrCoulombPV().
Evaluates the yield criterion
sig_vec | principal stress |
alpha | internal damage variable |
phi | yield criterion function |
Definition at line 73 of file TPZYCMohrCoulombPV.cpp.
References PhiPlane(), and TPZVec< T >::resize().
|
inline |
Access to Friction angle
Definition at line 245 of file TPZYCMohrCoulombPV.h.
References fPhi.
Referenced by InitialDamage(), ProjectSigmaDep(), SetUp(), and YieldFunction().
template fadtype TPZYCMohrCoulombPV::PhiPlane< fadtype > | ( | const TPZVec< T > & | sigma | ) | const |
Calcula o valor da funcao criteiro de plastificacao.
Definition at line 99 of file TPZYCMohrCoulombPV.cpp.
References cos(), fEpsPlasticBar, fPhi, PlasticityFunction(), and sin.
Referenced by GetElasticResponse(), and Phi().
template void TPZYCMohrCoulombPV::PlasticityFunction< fadtype > | ( | const T | epsp, |
T & | c, | ||
T & | H | ||
) | const |
Calculates the value c(epsp) and its derivative.
Definition at line 81 of file TPZYCMohrCoulombPV.cpp.
References fc.
Referenced by ComputeApexGradient(), ComputeLeftEdgeTangent(), ComputePlaneTangent(), ComputeRightEdgeTangent(), GetElasticResponse(), PhiPlane(), ReturnMapApex(), ReturnMapLeftEdge(), ReturnMapPlane(), and ReturnMapRightEdge().
|
inline |
Access to Poisson's ratio
Definition at line 294 of file TPZYCMohrCoulombPV.h.
References TPZElasticResponse::Poisson().
|
overridevirtual |
Print Method.
Reimplemented from TPZPlasticCriterion.
Definition at line 27 of file TPZYCMohrCoulombPV.cpp.
References fc, fPhi, and fPsi.
Referenced by SetEpsBar().
void TPZYCMohrCoulombPV::ProjectSigma | ( | const TPZVec< STATE > & | sigma_trial, |
STATE | k_prev, | ||
TPZVec< STATE > & | sigma, | ||
STATE & | k_proj, | ||
int & | m_type, | ||
TPZFMatrix< REAL > * | gradient = NULL |
||
) |
Execute the integration algorithm for the Mohr-Coulomb model. Source: Computational Methods for Plasticity: Theory and Applications. Eduardo A. de Souza Neto, Djordje Peric, David R. J. Owen (2008).
sigma_trial | principal values of trial elastic stress |
k_prev | previous state of the damage variable |
sigma | projected stress |
k_proj | current state of the damage variable after projection |
m_type | variable that indentify the material deformation behavior |
gradient | gradient of projected stress at sigma_trial |
Definition at line 535 of file TPZYCMohrCoulombPV.cpp.
References TPZMatrix< TVar >::Cols(), ComputeApexGradient(), ComputeLeftEdgeTangent(), ComputePlaneTangent(), ComputeRightEdgeTangent(), DebugStop, TPZYCMohrCoulombPV::TComputeSequence::EApex, TPZYCMohrCoulombPV::TComputeSequence::EElastic, TPZYCMohrCoulombPV::TComputeSequence::ELeftEdge, TPZYCMohrCoulombPV::TComputeSequence::EMainPlane, TPZYCMohrCoulombPV::TComputeSequence::ERightEdge, TPZYCMohrCoulombPV::TComputeSequence::fGamma, fPsi, TPZYCMohrCoulombPV::TComputeSequence::fWhichPlane, TPZMatrix< TVar >::Identity(), IsZero(), TPZManVector< T, NumExtAlloc >::Resize(), ReturnMapApex(), TPZMatrix< TVar >::Rows(), SetEpsBar(), sin, TPZExtractVal::val(), and val().
Referenced by GetElasticResponse().
|
inline |
Definition at line 226 of file TPZYCMohrCoulombPV.h.
|
inline |
Access to Dilation angle
Definition at line 260 of file TPZYCMohrCoulombPV.h.
References fPsi.
Referenced by SetUp().
|
overridevirtual |
read objects from the stream
Reimplemented from TPZSavable.
Definition at line 39 of file TPZYCMohrCoulombPV.cpp.
References fc, fEpsPlasticBar, fER, fPhi, fPsi, TPZElasticResponse::Read(), and TPZStream::Read().
Referenced by SetUp().
template bool TPZYCMohrCoulombPV::ReturnMapApex< fadtype > | ( | const TPZVec< T > & | sigma_trial, |
TPZVec< T > & | sigma_projected, | ||
TComputeSequence & | memory, | ||
REAL & | epsbarnew | ||
) | const |
Implements the return map in the apex.
Definition at line 459 of file TPZYCMohrCoulombPV.cpp.
References cos(), DebugStop, fEpsPlasticBar, fER, fPhi, fPsi, IsZero(), TPZElasticResponse::K(), PlasticityFunction(), test::res, sin, tan, pzgeom::tol, and TPZExtractVal::val().
Referenced by GetElasticResponse(), and ProjectSigma().
template bool TPZYCMohrCoulombPV::ReturnMapLeftEdge< fadtype > | ( | const TPZVec< T > & | sigma_trial, |
TPZVec< T > & | sigma_projected, | ||
TComputeSequence & | memory, | ||
REAL & | epsbarnew | ||
) | const |
Implements the return map in the left edge of the surface.
Definition at line 190 of file TPZYCMohrCoulombPV.cpp.
References cos(), DebugStop, fabs, fEpsPlasticBar, fER, TPZYCMohrCoulombPV::TComputeSequence::fGamma, fPhi, fPsi, TPZElasticResponse::G(), gamma(), IsZero(), TPZElasticResponse::K(), PlasticityFunction(), test::res, TPZManVector< T, NumExtAlloc >::Resize(), sin, and TPZExtractVal::val().
Referenced by GetElasticResponse().
template bool TPZYCMohrCoulombPV::ReturnMapPlane< fadtype > | ( | const TPZVec< T > & | sigma_trial, |
TPZVec< T > & | sigma_projected, | ||
TComputeSequence & | memory, | ||
REAL & | epsbarnew | ||
) | const |
Implements the return map in the plane of the surface.
Definition at line 110 of file TPZYCMohrCoulombPV.cpp.
References cos(), DebugStop, fEpsPlasticBar, fER, TPZYCMohrCoulombPV::TComputeSequence::fGamma, fPhi, fPsi, TPZElasticResponse::G(), gamma(), IsZero(), TPZElasticResponse::K(), PlasticityFunction(), sin, and TPZExtractVal::val().
Referenced by GetElasticResponse().
template bool TPZYCMohrCoulombPV::ReturnMapRightEdge< fadtype > | ( | const TPZVec< T > & | sigma_trial, |
TPZVec< T > & | sigma_projected, | ||
TComputeSequence & | memory, | ||
REAL & | epsbarnew | ||
) | const |
Implements the return map in the right edge of the surface.
Definition at line 324 of file TPZYCMohrCoulombPV.cpp.
References cos(), DebugStop, fabs, fEpsPlasticBar, fER, TPZYCMohrCoulombPV::TComputeSequence::fGamma, fPhi, fPsi, TPZElasticResponse::G(), gamma(), IsZero(), TPZElasticResponse::K(), PlasticityFunction(), test::res, TPZManVector< T, NumExtAlloc >::Resize(), sin, and TPZExtractVal::val().
Referenced by GetElasticResponse().
|
inline |
Set up the cohesion.
Definition at line 274 of file TPZYCMohrCoulombPV.h.
|
inline |
Definition at line 130 of file TPZYCMohrCoulombPV.h.
|
inline |
Sets epsbar.
Definition at line 121 of file TPZYCMohrCoulombPV.h.
References Print().
Referenced by ProjectSigma().
|
inline |
Set up the phi.
Definition at line 250 of file TPZYCMohrCoulombPV.h.
|
inline |
Sets up the data.
Setup attributes
Phi | Friction angle |
Psi | Dilation angle |
c | Cohesion yield stress |
ER | <#ER description#> |
Definition at line 100 of file TPZYCMohrCoulombPV.h.
References ClassId(), TPZYCMohrCoulombPV::TComputeSequence::operator=(), Phi(), Psi(), Read(), and Write().
Referenced by PYBIND11_MODULE().
template TPZVec< fadtype > TPZYCMohrCoulombPV::SigmaElastPV< fadtype > | ( | const TPZVec< T > & | deform | ) | const |
sigma = lambda Tr(E)I + 2 mu E
Definition at line 87 of file TPZYCMohrCoulombPV.cpp.
References fER, TPZElasticResponse::G(), and TPZElasticResponse::Lambda().
Referenced by GetElasticResponse().
|
overridevirtual |
Writes this object to the TPZStream buffer. Include the classid if withclassid = true.
Writes this object to the TPZStream buffer. Include the classid if withclassid = true
Reimplemented from TPZSavable.
Definition at line 47 of file TPZYCMohrCoulombPV.cpp.
References fc, fEpsPlasticBar, fER, fPhi, fPsi, TPZElasticResponse::Write(), and TPZStream::Write().
Referenced by SetUp().
|
inlineoverridevirtual |
Implements TPZPlasticCriterion.
Definition at line 299 of file TPZYCMohrCoulombPV.h.
References Phi().
|
private |
Definition at line 35 of file TPZYCMohrCoulombPV.h.
Referenced by Cohesion(), operator=(), PlasticityFunction(), Print(), Read(), and Write().
|
protected |
Definition at line 39 of file TPZYCMohrCoulombPV.h.
Referenced by operator=(), PhiPlane(), Read(), ReturnMapApex(), ReturnMapLeftEdge(), ReturnMapPlane(), ReturnMapRightEdge(), and Write().
|
private |
Definition at line 36 of file TPZYCMohrCoulombPV.h.
Referenced by ComputeApexGradient(), ComputeLeftEdgeTangent(), ComputePlaneTangent(), ComputeRightEdgeTangent(), GetElasticResponse(), operator=(), Read(), ReturnMapApex(), ReturnMapLeftEdge(), ReturnMapPlane(), ReturnMapRightEdge(), SigmaElastPV(), and Write().
|
private |
Definition at line 33 of file TPZYCMohrCoulombPV.h.
Referenced by ComputeApexGradient(), ComputeLeftEdgeTangent(), ComputePlaneTangent(), ComputeRightEdgeTangent(), operator=(), Phi(), PhiPlane(), Print(), Read(), ReturnMapApex(), ReturnMapLeftEdge(), ReturnMapPlane(), ReturnMapRightEdge(), and Write().
|
private |
Definition at line 34 of file TPZYCMohrCoulombPV.h.
Referenced by ComputeApexGradient(), ComputeLeftEdgeTangent(), ComputePlaneTangent(), ComputeRightEdgeTangent(), operator=(), Print(), ProjectSigma(), Psi(), Read(), ReturnMapApex(), ReturnMapLeftEdge(), ReturnMapPlane(), ReturnMapRightEdge(), and Write().