NeoPZ
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | List of all members
TPZYCSandlerDimaggio Class Reference

#include <TPZYCSandlerDimaggio.h>

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

Public Types

enum  { NYield }
 

Public Member Functions

virtual int ClassId () const override
 Define the class id associated with the class. More...
 
 TPZYCSandlerDimaggio ()
 
 TPZYCSandlerDimaggio (const TPZYCSandlerDimaggio &source)
 
TPZYCSandlerDimaggiooperator= (const TPZYCSandlerDimaggio &source)
 
void Write (TPZStream &buf, int withclassid) const override
 Writes this object to the TPZStream buffer. Include the classid if withclassid = true. More...
 
void Read (TPZStream &buf, void *context) override
 read objects from the stream More...
 
virtual ~TPZYCSandlerDimaggio ()
 
const char * Name () const
 
void Print (std::ostream &out) const override
 
int GetForceYield ()
 
void SetForceYield (const int forceYield)
 
void SetYieldStatusMode (const TPZTensor< REAL > &sigma, const REAL &A)
 
template<class T >
void Compute (const TPZTensor< T > &sigma, const T &A, TPZVec< T > &res, int checkForcedYield) const
 Calculo do criterio de plastificacao. More...
 
template<class T >
void N (const TPZTensor< T > &sigma, const T &A, TPZVec< TPZTensor< T > > &Ndir, int checkForcedYield) const
 
template<class T >
void H (const TPZTensor< T > &sigma, const T &A, TPZVec< T > &h, int checkForcedYield) const
 
void SetUp (REAL A, REAL B, REAL C, REAL D, REAL R, REAL W)
 
template<class T >
void AlphaMultiplier (const T &A, T &multiplier) const
 
REAL InitialDamage ()
 
void InitialGuess (const TPZElasticResponse &ER, REAL epsp, TPZTensor< REAL > &sigtrial, REAL &epspproj, TPZVec< REAL > &delgamma, TPZTensor< REAL > &sigproj)
 
REAL FZero () const
 
REAL LMax () const
 
template<class T >
void EpspFromL (const T &L, T &epsp) const
 
template<class T >
void DEpspDL (const T &L, T &depspdL) const
 
template<class T >
void D2EpspDL2 (const T &L, T &d2epspdL2) const
 
void YieldFunction (const TPZVec< STATE > &sigma, STATE kprev, TPZVec< STATE > &yield) const override
 
virtual int GetNYield () const override
 
template<class T >
void SolveL (const T &X, T &L, REAL relTol=1.e-10) const
 
template<class T >
void ComputeF (const T &L, T &F) const
 
template<class T >
void ComputedF (const T &L, T &dF) const
 
template<class T >
void ComputeX (const T &A, T &X) const
 
int NumCases ()
 
void LoadState (TPZFMatrix< REAL > &state)
 
void ComputeTangent (TPZFMatrix< REAL > &tangent, TPZVec< REAL > &, int icase)
 
void Residual (TPZFMatrix< REAL > &res, int icase)
 
- 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
 

Static Public Member Functions

static void CheckConv ()
 
static void TestSolveL ()
 
static void McCormicRanchSand (TPZYCSandlerDimaggio &material)
 
- 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)
 

Public Attributes

REAL fA
 
REAL fB
 
REAL fC
 
REAL fD
 
REAL fW
 
REAL fR
 
bool fIsonCap
 

Static Public Attributes

static TPZTensor< REAL > gRefTension
 

Protected Member Functions

template<class T >
void ComputeDL (const T &L, const T &A, T &DL) const
 
template<class T >
void LInitialGuess (const T &X, T &L) const
 
void ComputeD2F (REAL L, REAL &D2F) const
 
REAL Distance (const TPZElasticResponse &ER, REAL L, TPZVec< REAL > &sigtrialIJ) const
 compute the distance between the trial point and the point on the F1 curve More...
 
REAL DDistance (const TPZElasticResponse &ER, REAL L, TPZVec< REAL > &sigtrialIJ) const
 compute the derivative of the distance with respect to L More...
 
REAL D2Distance (const TPZElasticResponse &ER, REAL L, TPZVec< REAL > &sigtrialIJ) const
 compute the second derivative of the distance with respect to L More...
 
REAL ComputeEpsp (const REAL L) const
 
REAL FuncEpsp (const TPZElasticResponse &ER, REAL theta, REAL epsp, REAL delepsp, TPZVec< REAL > &sigtrialIJ)
 
REAL FuncEpspUsingL (const TPZElasticResponse &ER, REAL theta, REAL epspini, REAL L, TPZVec< REAL > &sigtrialIJ)
 
void DFuncEpspUsingL (const TPZElasticResponse &ER, REAL theta, REAL L, TPZVec< REAL > &sigtrialIJ, TPZVec< REAL > &result) const
 
void DFuncEpsp (const TPZElasticResponse &ER, REAL theta, REAL epsp, REAL delepsp, TPZVec< REAL > &result) const
 
REAL FuncEpspL (const TPZElasticResponse &ER, REAL theta, REAL L, REAL deltaL, TPZVec< REAL > &sigtrialIJ)
 
void DFuncEpspL (const TPZElasticResponse &ER, REAL theta, REAL L, REAL deltaL, TPZVec< REAL > &sigtrialIJ, TPZVec< REAL > &result) const
 
REAL FuncThetaL (const TPZElasticResponse &ER, REAL theta, REAL L, TPZVec< REAL > &sigtrialIJ) const
 
REAL FuncTheta (const TPZElasticResponse &ER, REAL theta, REAL epsp, REAL delepsp, TPZVec< REAL > &sigtrialIJ) const
 
REAL FuncTheta2L (const TPZElasticResponse &ER, REAL theta, REAL L, TPZVec< REAL > &sigtrialIJ) const
 
REAL FuncTheta2 (const TPZElasticResponse &ER, REAL theta, REAL epsp, REAL delepsp, TPZVec< REAL > &sigtrialIJ) const
 
REAL DistThetaL (const TPZElasticResponse &ER, REAL theta, REAL L, TPZVec< REAL > &sigtrialIJ) const
 
REAL DistTheta (const TPZElasticResponse &ER, REAL theta, REAL epsp, REAL delepsp, TPZVec< REAL > &sigtrialIJ) const
 
void DFuncTheta (const TPZElasticResponse &ER, REAL theta, REAL epsp, REAL delepsp, TPZVec< REAL > &sigtrialIJ, TPZVec< REAL > &result) const
 
void DFuncTheta2 (const TPZElasticResponse &ER, REAL theta, REAL epsp, REAL delepsp, TPZVec< REAL > &sigtrialIJ, TPZVec< REAL > &result) const
 
void DFuncTheta2L (const TPZElasticResponse &ER, REAL theta, REAL L, TPZVec< REAL > &sigtrialIJ, TPZVec< REAL > &result) const
 
void UpdateSigtrialIJ (const TPZElasticResponse &ER, REAL epsp, REAL theta, TPZVec< REAL > &sigtrialIJ)
 
void UpdateSigtrialIJL (const TPZElasticResponse &ER, REAL L, REAL theta, TPZVec< REAL > &sigtrialIJ)
 
void NewtonF1 (const TPZElasticResponse &ER, REAL &L, TPZVec< REAL > &sigtrialIJ)
 Projeto o ponto sobre a superficie F1, atualiza o L. More...
 
void NewtonF2 (const TPZElasticResponse &ER, REAL &epsp, TPZVec< REAL > &sigtrialIJ)
 
void NewtonF3 (const TPZElasticResponse &ER, REAL &epsp, TPZVec< REAL > &sigtrialIJ)
 
void NewtonF2L (const TPZElasticResponse &ER, REAL &L, TPZVec< REAL > &sigtrialIJ)
 

Detailed Description

Implementa as funções de potencial plástico e yield criterium do modelo constitutivo associativo de Sandler e Dimaggio (1971), desenvolvido inicialmente para arenitos (Ranch McCormic Sand)

Definition at line 31 of file TPZYCSandlerDimaggio.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
NYield 

Definition at line 34 of file TPZYCSandlerDimaggio.h.

Constructor & Destructor Documentation

◆ TPZYCSandlerDimaggio() [1/2]

TPZYCSandlerDimaggio::TPZYCSandlerDimaggio ( )
inline

Definition at line 40 of file TPZYCSandlerDimaggio.h.

◆ TPZYCSandlerDimaggio() [2/2]

TPZYCSandlerDimaggio::TPZYCSandlerDimaggio ( const TPZYCSandlerDimaggio source)
inline

Definition at line 43 of file TPZYCSandlerDimaggio.h.

References fA, fB, fC, fD, fIsonCap, fR, and fW.

◆ ~TPZYCSandlerDimaggio()

virtual TPZYCSandlerDimaggio::~TPZYCSandlerDimaggio ( )
inlinevirtual

Definition at line 82 of file TPZYCSandlerDimaggio.h.

Member Function Documentation

◆ AlphaMultiplier()

template<class T >
void TPZYCSandlerDimaggio::AlphaMultiplier ( const T &  A,
T &  multiplier 
) const
inline

Multiplicador para o caso onde utilizamos uma variavel de dano modificada

Definition at line 164 of file TPZYCSandlerDimaggio.h.

◆ CheckConv()

void TPZYCSandlerDimaggio::CheckConv ( )
inlinestatic

Definition at line 1442 of file TPZYCSandlerDimaggio.h.

References _XX_, _XY_, _XZ_, _YY_, _ZZ_, CheckConvergence(), and McCormicRanchSand().

◆ ClassId()

int TPZYCSandlerDimaggio::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.

Reimplemented in TPZYCSandlerDimaggioL, and TPZYCSandlerDimaggioL2.

Definition at line 4 of file TPZYCSandlerDimaggio.cpp.

References Hash().

Referenced by TPZYCSandlerDimaggioL::ClassId().

◆ Compute()

template<class T >
void TPZYCSandlerDimaggio::Compute ( const TPZTensor< T > &  sigma,
const T &  A,
TPZVec< T > &  res,
int  checkForcedYield 
) const
inline

Calculo do criterio de plastificacao.

Parameters
[in]sigmatensao atual
[in]Aforca thermodinamica atual
[out]resResult
[in]checkForcedYieldindicates whether to force post-peak failure behavior

Definition at line 1008 of file TPZYCSandlerDimaggio.h.

References ComputeF(), ComputeX(), fabs, FL, fR, TPZTensor< T >::I1(), TPZTensor< T >::J2(), LInitialGuess(), LOGPZ_INFO, LOGPZ_WARN, SolveL(), sqrt, and TPZExtractVal::val().

Referenced by InitialGuess(), Residual(), SetYieldStatusMode(), TestSolveL(), TPZPlasticTest::UndocumentedTest4(), and YieldFunction().

◆ ComputeD2F()

void TPZYCSandlerDimaggio::ComputeD2F ( REAL  L,
REAL &  D2F 
) const
inlineprotected

Compute the second derivative of F

Definition at line 1311 of file TPZYCSandlerDimaggio.h.

References exp, fB, and fC.

Referenced by D2Distance(), and GetNYield().

◆ ComputedF()

template<class T >
void TPZYCSandlerDimaggio::ComputedF ( const T &  L,
T &  dF 
) const
inline

Evaluates the F(L) grouping total derivative

Definition at line 1307 of file TPZYCSandlerDimaggio.h.

References exp, fB, and fC.

Referenced by D2Distance(), DDistance(), DFuncEpsp(), DFuncEpspL(), DFuncEpspUsingL(), DFuncTheta(), DFuncTheta2(), DFuncTheta2L(), GetNYield(), SolveL(), and TestSolveL().

◆ ComputeDL()

template<class T >
void TPZYCSandlerDimaggio::ComputeDL ( const T &  L,
const T &  A,
T &  DL 
) const
inlineprotected

compute the derivative of the L function as a function of epsp (A)

Parameters
[in]Lvalue of the L function corresponding to A
[in]valueof the volumetric plastic strain
[out]derivativeof L with respect to A

Definition at line 1292 of file TPZYCSandlerDimaggio.h.

References exp, fB, fC, fD, fR, fW, LMax(), and TPZExtractVal::val().

Referenced by DFuncEpsp(), DFuncTheta(), DFuncTheta2(), and GetNYield().

◆ ComputeEpsp()

REAL TPZYCSandlerDimaggio::ComputeEpsp ( const REAL  L) const
inlineprotected

Computes the value of volumetric plastic strain as a function of L

Definition at line 303 of file TPZYCSandlerDimaggio.h.

References ComputeF(), exp, fD, FL, fR, and fW.

Referenced by FuncEpspUsingL(), NewtonF2(), and NewtonF3().

◆ ComputeF()

template<class T >
void TPZYCSandlerDimaggio::ComputeF ( const T &  L,
T &  F 
) const
inline

◆ ComputeTangent()

void TPZYCSandlerDimaggio::ComputeTangent ( TPZFMatrix< REAL > &  tangent,
TPZVec< REAL > &  ,
int  icase 
)
inline

◆ ComputeX()

template<class T >
void TPZYCSandlerDimaggio::ComputeX ( const T &  A,
T &  X 
) const
inline

Evaluates X(EpsilonPvol), the value of the first invariant of an hydrostatic stress tensor at the cap yield surface. In this implementation X should negative in compression.

Definition at line 1316 of file TPZYCSandlerDimaggio.h.

References DebugStop, fD, fW, log, LOGPZ_WARN, and TPZExtractVal::val().

Referenced by Compute(), DFuncEpsp(), DFuncTheta(), DFuncTheta2(), DistTheta(), FuncEpsp(), FuncTheta(), FuncTheta2(), GetNYield(), H(), TPZYCSandlerDimaggioL2::InitialDamage(), TPZYCSandlerDimaggioL::InitialDamage(), N(), NewtonF2(), NewtonF3(), TestSolveL(), and UpdateSigtrialIJ().

◆ D2Distance()

REAL TPZYCSandlerDimaggio::D2Distance ( const TPZElasticResponse ER,
REAL  L,
TPZVec< REAL > &  sigtrialIJ 
) const
inlineprotected

compute the second derivative of the distance with respect to L

Definition at line 1850 of file TPZYCSandlerDimaggio.h.

References ComputeD2F(), ComputedF(), ComputeF(), TPZElasticResponse::G(), and TPZElasticResponse::K().

Referenced by GetNYield(), and NewtonF1().

◆ D2EpspDL2()

template<class T >
void TPZYCSandlerDimaggio::D2EpspDL2 ( const T &  L,
T &  d2epspdL2 
) const

compute the second derivative of epsp as a function from L

Definition at line 1726 of file TPZYCSandlerDimaggio.h.

References ComputeF(), exp, fB, fC, fD, FL, fR, and fW.

Referenced by TPZYCSandlerDimaggioL::ComputeLatIntersectionLeft(), DFuncEpspL(), LMax(), NewtonF1(), and TPZYCSandlerDimaggioL2::ProjectBorder().

◆ DDistance()

REAL TPZYCSandlerDimaggio::DDistance ( const TPZElasticResponse ER,
REAL  L,
TPZVec< REAL > &  sigtrialIJ 
) const
inlineprotected

compute the derivative of the distance with respect to L

Definition at line 1832 of file TPZYCSandlerDimaggio.h.

References ComputedF(), ComputeF(), TPZElasticResponse::G(), and TPZElasticResponse::K().

Referenced by GetNYield(), and NewtonF1().

◆ DEpspDL()

template<class T >
void TPZYCSandlerDimaggio::DEpspDL ( const T &  L,
T &  depspdL 
) const

◆ DFuncEpsp()

void TPZYCSandlerDimaggio::DFuncEpsp ( const TPZElasticResponse ER,
REAL  theta,
REAL  epsp,
REAL  delepsp,
TPZVec< REAL > &  result 
) const
inlineprotected

compute the derivative of the function FuncEpsp with respect to theta and delepsp

Definition at line 365 of file TPZYCSandlerDimaggio.h.

References ComputedF(), ComputeDL(), ComputeF(), ComputeX(), cos(), fR, TPZElasticResponse::Lambda(), LInitialGuess(), TPZElasticResponse::Mu(), sin, and SolveL().

Referenced by NewtonF2().

◆ DFuncEpspL()

void TPZYCSandlerDimaggio::DFuncEpspL ( const TPZElasticResponse ER,
REAL  theta,
REAL  L,
REAL  deltaL,
TPZVec< REAL > &  sigtrialIJ,
TPZVec< REAL > &  result 
) const
inlineprotected

compute the derivative of the function FuncEpsp with respect to theta and delepsp

Definition at line 414 of file TPZYCSandlerDimaggio.h.

References ComputedF(), ComputeF(), cos(), D2EpspDL2(), DEpspDL(), fR, TPZElasticResponse::Lambda(), TPZElasticResponse::Mu(), and sin.

Referenced by NewtonF2L().

◆ DFuncEpspUsingL()

void TPZYCSandlerDimaggio::DFuncEpspUsingL ( const TPZElasticResponse ER,
REAL  theta,
REAL  L,
TPZVec< REAL > &  sigtrialIJ,
TPZVec< REAL > &  result 
) const
inlineprotected

compute the derivative of the function FuncEpsp with respect to theta and delepsp

Definition at line 348 of file TPZYCSandlerDimaggio.h.

References ComputedF(), ComputeF(), cos(), DEpspDL(), fR, TPZElasticResponse::Lambda(), TPZElasticResponse::Mu(), and sin.

Referenced by NewtonF3().

◆ DFuncTheta()

void TPZYCSandlerDimaggio::DFuncTheta ( const TPZElasticResponse ER,
REAL  theta,
REAL  epsp,
REAL  delepsp,
TPZVec< REAL > &  sigtrialIJ,
TPZVec< REAL > &  result 
) const
inlineprotected

compute the derivative of the function FuncTheta with respect to theta and delepsp

Definition at line 518 of file TPZYCSandlerDimaggio.h.

References ComputedF(), ComputeDL(), ComputeF(), ComputeX(), cos(), fR, TPZElasticResponse::Lambda(), LInitialGuess(), TPZElasticResponse::Mu(), sin, and SolveL().

◆ DFuncTheta2()

void TPZYCSandlerDimaggio::DFuncTheta2 ( const TPZElasticResponse ER,
REAL  theta,
REAL  epsp,
REAL  delepsp,
TPZVec< REAL > &  sigtrialIJ,
TPZVec< REAL > &  result 
) const
inlineprotected

compute the derivative of the function FuncTheta with respect to theta and delepsp

Definition at line 547 of file TPZYCSandlerDimaggio.h.

References ComputedF(), ComputeDL(), ComputeF(), ComputeX(), cos(), fR, TPZElasticResponse::Lambda(), LInitialGuess(), TPZElasticResponse::Mu(), sin, and SolveL().

Referenced by NewtonF2().

◆ DFuncTheta2L()

void TPZYCSandlerDimaggio::DFuncTheta2L ( const TPZElasticResponse ER,
REAL  theta,
REAL  L,
TPZVec< REAL > &  sigtrialIJ,
TPZVec< REAL > &  result 
) const
inlineprotected

compute the derivative of the function FuncTheta with respect to theta and delepsp

Definition at line 575 of file TPZYCSandlerDimaggio.h.

References ComputedF(), ComputeF(), cos(), fR, TPZElasticResponse::Lambda(), TPZElasticResponse::Mu(), and sin.

Referenced by NewtonF2L(), and NewtonF3().

◆ Distance()

REAL TPZYCSandlerDimaggio::Distance ( const TPZElasticResponse ER,
REAL  L,
TPZVec< REAL > &  sigtrialIJ 
) const
inlineprotected

compute the distance between the trial point and the point on the F1 curve

Definition at line 1817 of file TPZYCSandlerDimaggio.h.

References ComputeF(), dist(), TPZElasticResponse::G(), and TPZElasticResponse::K().

Referenced by GetNYield().

◆ DistTheta()

REAL TPZYCSandlerDimaggio::DistTheta ( const TPZElasticResponse ER,
REAL  theta,
REAL  epsp,
REAL  delepsp,
TPZVec< REAL > &  sigtrialIJ 
) const
inlineprotected

compute the value of the distance which determines the orthogonality of the projection

Definition at line 508 of file TPZYCSandlerDimaggio.h.

References ComputeX(), DistThetaL(), and SolveL().

Referenced by NewtonF2().

◆ DistThetaL()

REAL TPZYCSandlerDimaggio::DistThetaL ( const TPZElasticResponse ER,
REAL  theta,
REAL  L,
TPZVec< REAL > &  sigtrialIJ 
) const
inlineprotected

compute the value of the distance which determines the orthogonality of the projection

Definition at line 492 of file TPZYCSandlerDimaggio.h.

References ComputeF(), cos(), dist(), fR, TPZElasticResponse::Lambda(), TPZElasticResponse::Mu(), and sin.

Referenced by DistTheta(), NewtonF2L(), and NewtonF3().

◆ EpspFromL()

template<class T >
void TPZYCSandlerDimaggio::EpspFromL ( const T &  L,
T &  epsp 
) const

compute epsp as a function from L

Definition at line 1703 of file TPZYCSandlerDimaggio.h.

References ComputeF(), exp, fD, FL, fR, and fW.

Referenced by FuncEpspL(), and LMax().

◆ FuncEpsp()

REAL TPZYCSandlerDimaggio::FuncEpsp ( const TPZElasticResponse ER,
REAL  theta,
REAL  epsp,
REAL  delepsp,
TPZVec< REAL > &  sigtrialIJ 
)
inlineprotected

Compute the value of the equation which equates the evolution of the plastic deformation

Definition at line 314 of file TPZYCSandlerDimaggio.h.

References ComputeF(), ComputeX(), cos(), fR, TPZElasticResponse::Lambda(), LInitialGuess(), TPZElasticResponse::Mu(), and SolveL().

Referenced by NewtonF2().

◆ FuncEpspL()

REAL TPZYCSandlerDimaggio::FuncEpspL ( const TPZElasticResponse ER,
REAL  theta,
REAL  L,
REAL  deltaL,
TPZVec< REAL > &  sigtrialIJ 
)
inlineprotected

Compute the value of the equation which equates the evolution of the plastic deformation

Definition at line 384 of file TPZYCSandlerDimaggio.h.

References ComputeF(), cos(), DEpspDL(), EpspFromL(), fR, TPZElasticResponse::Lambda(), LOGPZ_DEBUG, and TPZElasticResponse::Mu().

Referenced by NewtonF2L().

◆ FuncEpspUsingL()

REAL TPZYCSandlerDimaggio::FuncEpspUsingL ( const TPZElasticResponse ER,
REAL  theta,
REAL  epspini,
REAL  L,
TPZVec< REAL > &  sigtrialIJ 
)
inlineprotected

Compute the value of the equation which equates the evolution of the plastic deformation

Definition at line 332 of file TPZYCSandlerDimaggio.h.

References ComputeEpsp(), ComputeF(), cos(), fR, TPZElasticResponse::Lambda(), and TPZElasticResponse::Mu().

Referenced by NewtonF3().

◆ FuncTheta()

REAL TPZYCSandlerDimaggio::FuncTheta ( const TPZElasticResponse ER,
REAL  theta,
REAL  epsp,
REAL  delepsp,
TPZVec< REAL > &  sigtrialIJ 
) const
inlineprotected

compute the value of the equation which determines the orthogonality of the projection

Definition at line 448 of file TPZYCSandlerDimaggio.h.

References ComputeX(), FuncThetaL(), test::res, and SolveL().

◆ FuncTheta2()

REAL TPZYCSandlerDimaggio::FuncTheta2 ( const TPZElasticResponse ER,
REAL  theta,
REAL  epsp,
REAL  delepsp,
TPZVec< REAL > &  sigtrialIJ 
) const
inlineprotected

compute the value of the equation which determines the orthogonality of the projection

Definition at line 482 of file TPZYCSandlerDimaggio.h.

References ComputeX(), FuncTheta2L(), and SolveL().

Referenced by NewtonF2().

◆ FuncTheta2L()

REAL TPZYCSandlerDimaggio::FuncTheta2L ( const TPZElasticResponse ER,
REAL  theta,
REAL  L,
TPZVec< REAL > &  sigtrialIJ 
) const
inlineprotected

compute the value of the equation which determines the orthogonality of the projection

Definition at line 459 of file TPZYCSandlerDimaggio.h.

References ComputeF(), cos(), fR, TPZElasticResponse::Lambda(), LOGPZ_DEBUG, TPZElasticResponse::Mu(), test::res, and sin.

Referenced by FuncTheta2(), TPZYCSandlerDimaggioL2::InitialGuess(), TPZYCSandlerDimaggioL::InitialGuess(), NewtonF2L(), and NewtonF3().

◆ FuncThetaL()

REAL TPZYCSandlerDimaggio::FuncThetaL ( const TPZElasticResponse ER,
REAL  theta,
REAL  L,
TPZVec< REAL > &  sigtrialIJ 
) const
inlineprotected

compute the value of the equation which determines the orthogonality of the projection

Definition at line 432 of file TPZYCSandlerDimaggio.h.

References atan2(), ComputeF(), cos(), fR, TPZElasticResponse::Lambda(), TPZElasticResponse::Mu(), test::res, and sin.

Referenced by FuncTheta().

◆ FZero()

REAL TPZYCSandlerDimaggio::FZero ( ) const
inline

value of x for which F(x)=0.1 fA

Definition at line 188 of file TPZYCSandlerDimaggio.h.

References fA, fB, fC, and log.

Referenced by LMax(), TPZYCSandlerDimaggioL2::N(), TPZYCSandlerDimaggioL::N(), and N().

◆ GetForceYield()

int TPZYCSandlerDimaggio::GetForceYield ( )
inline

Definition at line 101 of file TPZYCSandlerDimaggio.h.

◆ GetNYield()

virtual int TPZYCSandlerDimaggio::GetNYield ( ) const
inlineoverridevirtual

◆ H()

template<class T >
void TPZYCSandlerDimaggio::H ( const TPZTensor< T > &  sigma,
const T &  A,
TPZVec< T > &  h,
int  checkForcedYield 
) const
inline

Derivada da funcao de plastificacao com respeito a forca termodinamica

Parameters
[in]sigmatensao atual
[in]Aforca termodinamica atual
[out]hDerivada com respeito a forca termodinamica
[in]checkForcedYieldindicates whether to force post-peak failure behavior

Definition at line 1202 of file TPZYCSandlerDimaggio.h.

References ComputeF(), ComputeX(), exp, fB, fC, FL, fR, TPZTensor< T >::I1(), LInitialGuess(), LOGPZ_INFO, SolveL(), and TPZExtractVal::val().

Referenced by SetYieldStatusMode(), and TestSolveL().

◆ InitialDamage()

REAL TPZYCSandlerDimaggio::InitialDamage ( )
inline

Definition at line 168 of file TPZYCSandlerDimaggio.h.

References InitialGuess().

◆ InitialGuess()

void TPZYCSandlerDimaggio::InitialGuess ( const TPZElasticResponse ER,
REAL  epsp,
TPZTensor< REAL > &  sigtrial,
REAL &  epspproj,
TPZVec< REAL > &  delgamma,
TPZTensor< REAL > &  sigproj 
)
inline

Projeto o ponto sigtrial sobre a superficie de plastificacao (se precisar) e atualiza a variavel de dano Este metodo utiliza backtracking

Parameters
[in]ERresposta elastica
[in]variavelde dano atual
[in]tensaoda resposta elastica
[out]epspprojdano apos a projecao
[out]delgammafatores multiplicadores para projetar o ponto sobre a superficie

Definition at line 1627 of file TPZYCSandlerDimaggio.h.

References TPZTensor< T >::Add(), TPZTensor< T >::Adjust(), Compute(), TPZElasticResponse::ComputeStrain(), DebugStop, fabs, TPZVec< T >::Fill(), TPZTensor< T >::I1(), LOGPZ_DEBUG, N(), NewtonF3(), TPZTensor< T >::Norm(), TPZTensor< T >::S(), and sqrt.

Referenced by InitialDamage().

◆ LInitialGuess()

template<class T >
void TPZYCSandlerDimaggio::LInitialGuess ( const T &  X,
T &  L 
) const
inlineprotected

Might be a reasonable initial guess for L when no better data is available. In this implementation L should be negative in compression.

Definition at line 1280 of file TPZYCSandlerDimaggio.h.

References ComputeF(), and fR.

Referenced by Compute(), DFuncEpsp(), DFuncTheta(), DFuncTheta2(), FuncEpsp(), GetNYield(), H(), N(), NewtonF2(), NewtonF3(), TestSolveL(), and UpdateSigtrialIJ().

◆ LMax()

REAL TPZYCSandlerDimaggio::LMax ( ) const
inline

◆ LoadState()

void TPZYCSandlerDimaggio::LoadState ( TPZFMatrix< REAL > &  state)
inline

LoadState will keep a given state as static variable of the class

Definition at line 1347 of file TPZYCSandlerDimaggio.h.

References TPZTensor< T >::fData, gRefTension, and LOGPZ_DEBUG.

◆ McCormicRanchSand()

void TPZYCSandlerDimaggio::McCormicRanchSand ( TPZYCSandlerDimaggio material)
inlinestatic

◆ N()

template<class T >
void TPZYCSandlerDimaggio::N ( const TPZTensor< T > &  sigma,
const T &  A,
TPZVec< TPZTensor< T > > &  Ndir,
int  checkForcedYield 
) const
inline

Derivada da derivada da funcao de potencial plastico (direção de plastificação)

Parameters
[in]sigmatensao atual
[in]Aforca termodinamica atual
[out]NdirDerivada com respeito a tensao
[in]checkForcedYieldindicates whether to force post-peak failure behavior

Definition at line 1073 of file TPZYCSandlerDimaggio.h.

References ComputeF(), ComputeX(), DebugStop, exp, fB, fC, FL, fR, FZero(), TPZTensor< T >::I1(), TPZTensor< T >::J2(), LInitialGuess(), LOGPZ_DEBUG, LOGPZ_INFO, LOGPZ_WARN, SolveL(), sqrt, TPZExtractVal::val(), TPZTensor< T >::XX(), TPZTensor< T >::XY(), TPZTensor< T >::XZ(), TPZTensor< T >::YY(), TPZTensor< T >::YZ(), and TPZTensor< T >::ZZ().

Referenced by ComputeTangent(), InitialGuess(), Residual(), SetYieldStatusMode(), TestSolveL(), and TPZPlasticTest::UndocumentedTest4().

◆ Name()

const char* TPZYCSandlerDimaggio::Name ( ) const
inline

Definition at line 86 of file TPZYCSandlerDimaggio.h.

Referenced by Print().

◆ NewtonF1()

void TPZYCSandlerDimaggio::NewtonF1 ( const TPZElasticResponse ER,
REAL &  L,
TPZVec< REAL > &  sigtrialIJ 
)
inlineprotected

Projeto o ponto sobre a superficie F1, atualiza o L.

Projeto o ponto sobre a superficie F1, atualiza o L e sigtrialIJ.

Definition at line 1739 of file TPZYCSandlerDimaggio.h.

References ComputeF(), D2Distance(), D2EpspDL2(), DDistance(), DEpspDL(), EMathematicaInput, fabs, TPZElasticResponse::K(), TPZMatrix< TVar >::Print(), and TPZFMatrix< TVar >::Resize().

Referenced by TPZYCSandlerDimaggioL2::InitialGuess(), TPZYCSandlerDimaggioL::InitialGuess(), and UpdateSigtrialIJL().

◆ NewtonF2()

void TPZYCSandlerDimaggio::NewtonF2 ( const TPZElasticResponse ER,
REAL &  epsp,
TPZVec< REAL > &  sigtrialIJ 
)
inlineprotected

◆ NewtonF2L()

void TPZYCSandlerDimaggio::NewtonF2L ( const TPZElasticResponse ER,
REAL &  L,
TPZVec< REAL > &  sigtrialIJ 
)
inlineprotected

◆ NewtonF3()

void TPZYCSandlerDimaggio::NewtonF3 ( const TPZElasticResponse ER,
REAL &  epsp,
TPZVec< REAL > &  sigtrialIJ 
)
inlineprotected

◆ NumCases()

int TPZYCSandlerDimaggio::NumCases ( )
inline

number of types of residuals

Definition at line 1343 of file TPZYCSandlerDimaggio.h.

◆ operator=()

TPZYCSandlerDimaggio& TPZYCSandlerDimaggio::operator= ( const TPZYCSandlerDimaggio source)
inline

Definition at line 53 of file TPZYCSandlerDimaggio.h.

References fA, fB, fC, fD, fIsonCap, fR, and fW.

Referenced by TPZYCSandlerDimaggioL::operator=().

◆ Print()

void TPZYCSandlerDimaggio::Print ( std::ostream &  out) const
inlineoverridevirtual

Reimplemented from TPZPlasticCriterion.

Reimplemented in TPZYCSandlerDimaggioL, and TPZYCSandlerDimaggioL2.

Definition at line 90 of file TPZYCSandlerDimaggio.h.

References fA, fB, fC, fD, fIsonCap, fR, fW, and Name().

Referenced by TPZYCSandlerDimaggioL::Print().

◆ Read()

void TPZYCSandlerDimaggio::Read ( TPZStream buf,
void *  context 
)
inlineoverridevirtual

read objects from the stream

Reimplemented from TPZSavable.

Definition at line 73 of file TPZYCSandlerDimaggio.h.

References fA, fB, fC, fD, fR, fW, and TPZStream::Read().

◆ Residual()

void TPZYCSandlerDimaggio::Residual ( TPZFMatrix< REAL > &  res,
int  icase 
)
inline

◆ SetForceYield()

void TPZYCSandlerDimaggio::SetForceYield ( const int  forceYield)
inline

Definition at line 105 of file TPZYCSandlerDimaggio.h.

◆ SetUp()

void TPZYCSandlerDimaggio::SetUp ( REAL  A,
REAL  B,
REAL  C,
REAL  D,
REAL  R,
REAL  W 
)
inline

Definition at line 150 of file TPZYCSandlerDimaggio.h.

References fA, fB, fC, fD, fIsonCap, fR, and fW.

Referenced by McCormicRanchSand().

◆ SetYieldStatusMode()

void TPZYCSandlerDimaggio::SetYieldStatusMode ( const TPZTensor< REAL > &  sigma,
const REAL &  A 
)
inline

Checks if the proposed yield state leads to post-peak material behaviour. If so, the material is forced to behave in post-peak in order to avoid equation switching during Newton's method in the PlasticLoop routines.

Parameters
[in]sigmastress state
[in]AThermo Force

Definition at line 116 of file TPZYCSandlerDimaggio.h.

References Compute(), h, H(), N(), and test::res.

◆ SolveL()

template<class T >
void TPZYCSandlerDimaggio::SolveL ( const T &  X,
T &  L,
REAL  relTol = 1.e-10 
) const
inline

Solves for the invariant I1 value at the intersection of shear and hardening cap yield criteria. The current value of L when entering the function is assumed to be the initial guess. In this implementation L should be negative in compression.

Definition at line 1252 of file TPZYCSandlerDimaggio.h.

References ComputedF(), ComputeF(), fabs, fR, LMax(), test::res, and TPZExtractVal::val().

Referenced by Compute(), DFuncEpsp(), DFuncTheta(), DFuncTheta2(), DistTheta(), FuncEpsp(), FuncTheta(), FuncTheta2(), GetNYield(), H(), TPZYCSandlerDimaggioL2::InitialDamage(), TPZYCSandlerDimaggioL::InitialDamage(), N(), NewtonF2(), NewtonF3(), TestSolveL(), and UpdateSigtrialIJ().

◆ TestSolveL()

void TPZYCSandlerDimaggio::TestSolveL ( )
inlinestatic

◆ UpdateSigtrialIJ()

void TPZYCSandlerDimaggio::UpdateSigtrialIJ ( const TPZElasticResponse ER,
REAL  epsp,
REAL  theta,
TPZVec< REAL > &  sigtrialIJ 
)
inlineprotected

Definition at line 596 of file TPZYCSandlerDimaggio.h.

References ComputeX(), LInitialGuess(), SolveL(), and UpdateSigtrialIJL().

Referenced by NewtonF2().

◆ UpdateSigtrialIJL()

void TPZYCSandlerDimaggio::UpdateSigtrialIJL ( const TPZElasticResponse ER,
REAL  L,
REAL  theta,
TPZVec< REAL > &  sigtrialIJ 
)
inlineprotected

Definition at line 604 of file TPZYCSandlerDimaggio.h.

References ComputeF(), cos(), fR, NewtonF1(), and sin.

Referenced by NewtonF2L(), NewtonF3(), and UpdateSigtrialIJ().

◆ Write()

void TPZYCSandlerDimaggio::Write ( TPZStream buf,
int  withclassid 
) const
inlineoverridevirtual

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 64 of file TPZYCSandlerDimaggio.h.

References fA, fB, fC, fD, fR, fW, and TPZStream::Write().

◆ YieldFunction()

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

Member Data Documentation

◆ fA

REAL TPZYCSandlerDimaggio::fA

Parameter related to the YC and Plastic Potential A, B and C are constants in the modified Drucker-Prager shear yield criteria.

Definition at line 952 of file TPZYCSandlerDimaggio.h.

Referenced by ComputeF(), FZero(), operator=(), Print(), Read(), SetUp(), TPZYCSandlerDimaggio(), and Write().

◆ fB

REAL TPZYCSandlerDimaggio::fB

◆ fC

REAL TPZYCSandlerDimaggio::fC

◆ fD

REAL TPZYCSandlerDimaggio::fD

Parameters related to the YC and Plastic Potential The D and W parameters correlate the total plastic strain to the hydrostatic loading level. It is thus related to the cap hardening/softening.

Definition at line 960 of file TPZYCSandlerDimaggio.h.

Referenced by ComputeDL(), ComputeEpsp(), ComputeX(), D2EpspDL2(), DEpspDL(), EpspFromL(), operator=(), Print(), Read(), SetUp(), TPZYCSandlerDimaggio(), and Write().

◆ fIsonCap

bool TPZYCSandlerDimaggio::fIsonCap

◆ fR

REAL TPZYCSandlerDimaggio::fR

◆ fW

REAL TPZYCSandlerDimaggio::fW

◆ gRefTension

TPZTensor<REAL> TPZYCSandlerDimaggio::gRefTension
static

Definition at line 983 of file TPZYCSandlerDimaggio.h.

Referenced by ComputeTangent(), LoadState(), and Residual().


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