NeoPZ
Public Types | Public Member Functions | Static Public Member Functions | List of all members
TPZYCSandlerDimaggioL2 Class Reference

#include <TPZYCSandlerDimaggioL2.h>

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

Public Types

enum  { NYield }
 
- Public Types inherited from TPZYCSandlerDimaggioL
enum  { NYield }
 
- Public Types inherited from TPZYCSandlerDimaggio
enum  { NYield }
 

Public Member Functions

int ClassId () const override
 Define the class id associated with the class. More...
 
 TPZYCSandlerDimaggioL2 ()
 
 TPZYCSandlerDimaggioL2 (const TPZYCSandlerDimaggioL2 &source)
 
TPZYCSandlerDimaggioL2operator= (const TPZYCSandlerDimaggioL2 &source)
 
virtual ~TPZYCSandlerDimaggioL2 ()
 
const char * Name () const
 
void Print (std::ostream &out) const override
 
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 InitialGuess (const TPZElasticResponse &ER, REAL L, TPZTensor< REAL > &sigtrial, REAL &epspproj, TPZVec< REAL > &delgamma, TPZTensor< REAL > &sigproj)
 
REAL InitialDamage ()
 
void ProjectBorder (const TPZElasticResponse &ER, REAL &L, TPZVec< STATE > &sigtrialIJ)
 project the point on the intersection of the F1 and F2 surface More...
 
virtual int GetNYield () const override
 
- Public Member Functions inherited from TPZYCSandlerDimaggioL
 TPZYCSandlerDimaggioL ()
 
 TPZYCSandlerDimaggioL (const TPZYCSandlerDimaggioL &source)
 
TPZYCSandlerDimaggioLoperator= (const TPZYCSandlerDimaggioL &source)
 
virtual ~TPZYCSandlerDimaggioL ()
 
const char * Name () const
 
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
 
template<class T >
void AlphaMultiplier (const T &A, T &multiplier) const
 
void InitialGuess (const TPZElasticResponse &ER, REAL L, TPZTensor< REAL > &sigtrial, REAL &epspproj, TPZVec< REAL > &delgamma, TPZTensor< REAL > &sigproj)
 
REAL InitialDamage ()
 
void ComputeLatIntersectionLeft (const TPZElasticResponse &ER, REAL &L, TPZVec< REAL > &sigtrialIJ) const
 
void ComputeLatIntersectionRight (const TPZElasticResponse &ER, REAL &L, TPZVec< REAL > &sigtrialIJ) 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 TPZYCSandlerDimaggio
 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
 
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
 
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 McCormicRanchSand (TPZYCSandlerDimaggio &material)
 
- Static Public Member Functions inherited from TPZYCSandlerDimaggioL
static void CheckConv ()
 
static void TestSolveL ()
 
static void McCormicRanchSand (TPZYCSandlerDimaggio &material)
 
- Static Public Member Functions inherited from TPZYCSandlerDimaggio
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)
 

Additional Inherited Members

- Public Attributes inherited from TPZYCSandlerDimaggio
REAL fA
 
REAL fB
 
REAL fC
 
REAL fD
 
REAL fW
 
REAL fR
 
bool fIsonCap
 
- Static Public Attributes inherited from TPZYCSandlerDimaggioL
static TPZTensor< REAL > gRefTension
 
- Static Public Attributes inherited from TPZYCSandlerDimaggio
static TPZTensor< REAL > gRefTension
 
- Protected Member Functions inherited from TPZYCSandlerDimaggio
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 28 of file TPZYCSandlerDimaggioL2.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
NYield 

Definition at line 31 of file TPZYCSandlerDimaggioL2.h.

Constructor & Destructor Documentation

◆ TPZYCSandlerDimaggioL2() [1/2]

TPZYCSandlerDimaggioL2::TPZYCSandlerDimaggioL2 ( )
inline

Definition at line 37 of file TPZYCSandlerDimaggioL2.h.

◆ TPZYCSandlerDimaggioL2() [2/2]

TPZYCSandlerDimaggioL2::TPZYCSandlerDimaggioL2 ( const TPZYCSandlerDimaggioL2 source)
inline

Definition at line 40 of file TPZYCSandlerDimaggioL2.h.

◆ ~TPZYCSandlerDimaggioL2()

virtual TPZYCSandlerDimaggioL2::~TPZYCSandlerDimaggioL2 ( )
inlinevirtual

Definition at line 48 of file TPZYCSandlerDimaggioL2.h.

Member Function Documentation

◆ ClassId()

int TPZYCSandlerDimaggioL2::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

Reimplemented from TPZYCSandlerDimaggioL.

Definition at line 5 of file TPZYCSandlerDimaggioL2.cpp.

References TPZYCSandlerDimaggioL::ClassId(), and Hash().

◆ Compute()

template<class T >
void TPZYCSandlerDimaggioL2::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 wether to force post-peak failure behavior

Definition at line 133 of file TPZYCSandlerDimaggioL2.h.

References TPZYCSandlerDimaggio::ComputeF(), fabs, TPZYCSandlerDimaggio::fIsonCap, FL, TPZYCSandlerDimaggio::fR, TPZTensor< T >::I1(), TPZTensor< T >::J2(), TPZYCSandlerDimaggio::LMax(), LOGPZ_DEBUG, LOGPZ_INFO, LOGPZ_WARN, sqrt, and TPZExtractVal::val().

Referenced by InitialGuess(), and Print().

◆ GetNYield()

virtual int TPZYCSandlerDimaggioL2::GetNYield ( ) const
inlineoverridevirtual

Reimplemented from TPZYCSandlerDimaggioL.

Definition at line 120 of file TPZYCSandlerDimaggioL2.h.

References as_integer(), McCormicRanchSand(), and NYield.

◆ H()

template<class T >
void TPZYCSandlerDimaggioL2::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 wether to force post-peak failure behavior

Definition at line 390 of file TPZYCSandlerDimaggioL2.h.

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

Referenced by Print().

◆ InitialDamage()

REAL TPZYCSandlerDimaggioL2::InitialDamage ( )
inline

◆ InitialGuess()

void TPZYCSandlerDimaggioL2::InitialGuess ( const TPZElasticResponse ER,
REAL  Lextern,
TPZTensor< REAL > &  sigtrial,
REAL &  Lproj,
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 464 of file TPZYCSandlerDimaggioL2.h.

References TPZTensor< T >::Add(), TPZTensor< T >::Adjust(), atan2(), Compute(), TPZYCSandlerDimaggio::ComputeF(), TPZElasticResponse::ComputeStrain(), DebugStop, fabs, TPZYCSandlerDimaggio::fIsonCap, FL, TPZYCSandlerDimaggio::fR, TPZYCSandlerDimaggio::FuncTheta2L(), TPZElasticResponse::G(), TPZTensor< T >::I1(), TPZTensor< T >::J2(), TPZElasticResponse::K(), TPZYCSandlerDimaggio::LMax(), LOGPZ_DEBUG, N(), TPZYCSandlerDimaggio::NewtonF1(), TPZYCSandlerDimaggio::NewtonF2L(), TPZTensor< T >::Norm(), ProjectBorder(), TPZTensor< T >::S(), and sqrt.

Referenced by Print().

◆ McCormicRanchSand()

static void TPZYCSandlerDimaggioL2::McCormicRanchSand ( TPZYCSandlerDimaggio material)
static

Referenced by GetNYield().

◆ N()

template<class T >
void TPZYCSandlerDimaggioL2::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 wether to force post-peak failure behavior

Definition at line 225 of file TPZYCSandlerDimaggioL2.h.

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

Referenced by InitialGuess(), and Print().

◆ Name()

const char* TPZYCSandlerDimaggioL2::Name ( ) const
inline

Definition at line 52 of file TPZYCSandlerDimaggioL2.h.

Referenced by Print().

◆ operator=()

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

Definition at line 43 of file TPZYCSandlerDimaggioL2.h.

References TPZYCSandlerDimaggioL::operator=().

◆ Print()

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

Reimplemented from TPZYCSandlerDimaggioL.

Definition at line 56 of file TPZYCSandlerDimaggioL2.h.

References Compute(), h, H(), InitialGuess(), N(), Name(), TPZYCSandlerDimaggioL::Print(), and test::res.

◆ ProjectBorder()

void TPZYCSandlerDimaggioL2::ProjectBorder ( const TPZElasticResponse ER,
REAL &  L,
TPZVec< STATE > &  sigtrialIJ 
)
inline

project the point on the intersection of the F1 and F2 surface

Definition at line 759 of file TPZYCSandlerDimaggioL2.h.

References TPZYCSandlerDimaggio::ComputeF(), TPZYCSandlerDimaggio::D2EpspDL2(), TPZYCSandlerDimaggio::DEpspDL(), fabs, and TPZElasticResponse::K().

Referenced by InitialDamage(), and InitialGuess().


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