NeoPZ
Classes | Public Types | Public Member Functions | Protected Attributes | Private Attributes | List of all members
TPZYCMohrCoulombPV Class Reference

#include <TPZYCMohrCoulombPV.h>

Inheritance diagram for TPZYCMohrCoulombPV:
[legend]
Collaboration diagram for TPZYCMohrCoulombPV:
[legend]

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...
 
TPZYCMohrCoulombPVoperator= (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 >
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 TPZSavableCreateInstance (const int &classId)
 

Detailed Description

Definition at line 24 of file TPZYCMohrCoulombPV.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
NYield 

Definition at line 27 of file TPZYCMohrCoulombPV.h.

Constructor & Destructor Documentation

◆ TPZYCMohrCoulombPV() [1/3]

TPZYCMohrCoulombPV::TPZYCMohrCoulombPV ( )

empty constructor

Definition at line 5 of file TPZYCMohrCoulombPV.cpp.

◆ TPZYCMohrCoulombPV() [2/3]

TPZYCMohrCoulombPV::TPZYCMohrCoulombPV ( REAL  Phi,
REAL  Psi,
REAL  c,
TPZElasticResponse ER 
)

Constructor seting yc parameters.

Definition at line 9 of file TPZYCMohrCoulombPV.cpp.

◆ TPZYCMohrCoulombPV() [3/3]

TPZYCMohrCoulombPV::TPZYCMohrCoulombPV ( const TPZYCMohrCoulombPV cp)

Copy Constructor.

Definition at line 13 of file TPZYCMohrCoulombPV.cpp.

References operator=().

Member Function Documentation

◆ ClassId()

int TPZYCMohrCoulombPV::ClassId ( ) const
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().

◆ Cohesion()

STATE TPZYCMohrCoulombPV::Cohesion ( )
inline

Access to Cohesion yield stress

Returns
Cohesion yield stress

Definition at line 269 of file TPZYCMohrCoulombPV.h.

References fc.

◆ ComputeApexGradient()

void TPZYCMohrCoulombPV::ComputeApexGradient ( TPZMatrix< REAL > &  gradient,
REAL &  eps_bar_p 
) const

Computes gradient of projected stress at sigma_trial for the ReturnMapApex

Parameters
gradientgradient of projected stress at sigma_trial
eps_bar_paccumulated 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().

◆ ComputeLeftEdgeTangent()

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().

◆ ComputePlaneTangent()

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().

◆ ComputeRightEdgeTangent()

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().

◆ E()

STATE TPZYCMohrCoulombPV::E ( )
inline

Access to Young's modulus

Returns
Young's modulus

Definition at line 285 of file TPZYCMohrCoulombPV.h.

References TPZElasticResponse::E().

◆ GetElasticResponse()

virtual TPZElasticResponse TPZYCMohrCoulombPV::GetElasticResponse ( ) const
inlinevirtual

◆ GetNYield()

virtual int TPZYCMohrCoulombPV::GetNYield ( ) const
inlineoverridevirtual

Implements TPZPlasticCriterion.

Definition at line 303 of file TPZYCMohrCoulombPV.h.

References as_integer(), and NYield.

◆ InitialDamage()

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().

◆ operator=()

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().

◆ Phi() [1/2]

void TPZYCMohrCoulombPV::Phi ( TPZVec< STATE >  sig_vec,
STATE  alpha,
TPZVec< STATE > &  phi 
) const

Evaluates the yield criterion

Parameters
sig_vecprincipal stress
alphainternal damage variable
phiyield criterion function

Definition at line 73 of file TPZYCMohrCoulombPV.cpp.

References PhiPlane(), and TPZVec< T >::resize().

◆ Phi() [2/2]

STATE TPZYCMohrCoulombPV::Phi ( )
inline

Access to Friction angle

Returns
Friction angle

Definition at line 245 of file TPZYCMohrCoulombPV.h.

References fPhi.

Referenced by InitialDamage(), ProjectSigmaDep(), SetUp(), and YieldFunction().

◆ PhiPlane()

template<class T >
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().

◆ PlasticityFunction()

template<class T >
template void TPZYCMohrCoulombPV::PlasticityFunction< fadtype > ( const T  epsp,
T &  c,
T &  H 
) const

◆ Poisson()

STATE TPZYCMohrCoulombPV::Poisson ( )
inline

Access to Poisson's ratio

Returns
Poisson's ratio

Definition at line 294 of file TPZYCMohrCoulombPV.h.

References TPZElasticResponse::Poisson().

◆ Print()

void TPZYCMohrCoulombPV::Print ( std::ostream &  out) const
overridevirtual

Print Method.

Reimplemented from TPZPlasticCriterion.

Definition at line 27 of file TPZYCMohrCoulombPV.cpp.

References fc, fPhi, and fPsi.

Referenced by SetEpsBar().

◆ ProjectSigma()

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).

Parameters
sigma_trialprincipal values of trial elastic stress
k_prevprevious state of the damage variable
sigmaprojected stress
k_projcurrent state of the damage variable after projection
m_typevariable that indentify the material deformation behavior
gradientgradient 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().

◆ ProjectSigmaDep()

void TPZYCMohrCoulombPV::ProjectSigmaDep ( const TPZVec< STATE > &  sigmatrial,
STATE  kprev,
TPZVec< STATE > &  sigmaproj,
STATE &  kpro,
TPZFMatrix< STATE > &  tang 
)
inline

Definition at line 226 of file TPZYCMohrCoulombPV.h.

References DebugStop, and Phi().

◆ Psi()

STATE TPZYCMohrCoulombPV::Psi ( )
inline

Access to Dilation angle

Returns
Dilation angle

Definition at line 260 of file TPZYCMohrCoulombPV.h.

References fPsi.

Referenced by SetUp().

◆ Read()

void TPZYCMohrCoulombPV::Read ( TPZStream buf,
void *  context 
)
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().

◆ ReturnMapApex()

template<class T >
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().

◆ ReturnMapLeftEdge()

template<class T >
template bool TPZYCMohrCoulombPV::ReturnMapLeftEdge< fadtype > ( const TPZVec< T > &  sigma_trial,
TPZVec< T > &  sigma_projected,
TComputeSequence memory,
REAL &  epsbarnew 
) const

◆ ReturnMapPlane()

template<class T >
template bool TPZYCMohrCoulombPV::ReturnMapPlane< fadtype > ( const TPZVec< T > &  sigma_trial,
TPZVec< T > &  sigma_projected,
TComputeSequence memory,
REAL &  epsbarnew 
) const

◆ ReturnMapRightEdge()

template<class T >
template bool TPZYCMohrCoulombPV::ReturnMapRightEdge< fadtype > ( const TPZVec< T > &  sigma_trial,
TPZVec< T > &  sigma_projected,
TComputeSequence memory,
REAL &  epsbarnew 
) const

◆ SetCohesion()

void TPZYCMohrCoulombPV::SetCohesion ( STATE  cohesion)
inline

Set up the cohesion.

Definition at line 274 of file TPZYCMohrCoulombPV.h.

◆ SetElasticResponse()

void TPZYCMohrCoulombPV::SetElasticResponse ( const TPZElasticResponse ER)
inline

Definition at line 130 of file TPZYCMohrCoulombPV.h.

◆ SetEpsBar()

void TPZYCMohrCoulombPV::SetEpsBar ( REAL &  epsbar)
inline

Sets epsbar.

Definition at line 121 of file TPZYCMohrCoulombPV.h.

References Print().

Referenced by ProjectSigma().

◆ SetPhi()

void TPZYCMohrCoulombPV::SetPhi ( STATE  phi)
inline

Set up the phi.

Definition at line 250 of file TPZYCMohrCoulombPV.h.

◆ SetUp()

void TPZYCMohrCoulombPV::SetUp ( REAL  Phi,
REAL  Psi,
REAL  c,
TPZElasticResponse ER 
)
inline

Sets up the data.

Setup attributes

Parameters
PhiFriction angle
PsiDilation angle
cCohesion 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().

◆ SigmaElastPV()

template<class T >
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().

◆ Write()

void TPZYCMohrCoulombPV::Write ( TPZStream buf,
int  withclassid 
) const
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().

◆ YieldFunction()

virtual void TPZYCMohrCoulombPV::YieldFunction ( const TPZVec< STATE > &  sigma,
STATE  kprev,
TPZVec< STATE > &  yield 
) const
inlineoverridevirtual

Implements TPZPlasticCriterion.

Definition at line 299 of file TPZYCMohrCoulombPV.h.

References Phi().

Member Data Documentation

◆ fc

REAL TPZYCMohrCoulombPV::fc
private

Definition at line 35 of file TPZYCMohrCoulombPV.h.

Referenced by Cohesion(), operator=(), PlasticityFunction(), Print(), Read(), and Write().

◆ fEpsPlasticBar

REAL TPZYCMohrCoulombPV::fEpsPlasticBar
protected

◆ fER

TPZElasticResponse TPZYCMohrCoulombPV::fER
private

◆ fPhi

REAL TPZYCMohrCoulombPV::fPhi
private

◆ fPsi

REAL TPZYCMohrCoulombPV::fPsi
private

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