NeoPZ
Public Types | Public Member Functions | Private Attributes | List of all members
TPZYCDruckerPragerPV Class Reference

#include <TPZYCDruckerPragerPV.h>

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

Public Types

enum  { NYield }
 

Public Member Functions

 TPZYCDruckerPragerPV ()
 
 TPZYCDruckerPragerPV (const TPZYCDruckerPragerPV &other)
 
TPZYCDruckerPragerPVoperator= (const TPZYCDruckerPragerPV &other)
 
void SetUp (const TPZElasticResponse &ER, REAL gamma, REAL m, REAL pt, REAL logHardening, REAL logBulkModulus, REAL a0, REAL e0)
 
void SetElasticResponse (const TPZElasticResponse &ER)
 
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...
 
REAL bFromP (const REAL p, const REAL a) const
 
REAL bFromTheta (REAL theta) const
 
void Phi (TPZVec< REAL > sigmaPV, REAL a, TPZVec< REAL > &phi) const
 
REAL InitialDamage (const TPZVec< REAL > &stress_p) const
 
void SurfaceF1InCyl (const REAL xi, const REAL beta, TPZVec< REAL > &returnValue) const
 
void SurfaceF2InCyl (const REAL theta, const REAL beta, const REAL a, TPZVec< REAL > &returnValue) const
 
REAL ResLF1 (const TPZVec< STATE > &sigma_trial_pv, const TPZVec< STATE > &sigma_proj_pv, const STATE a, const STATE aPrev) const
 
REAL ResLF2 (const TPZVec< STATE > &sigma_trial_pv, const STATE theta, const STATE beta, const REAL a, const REAL aPrev) const
 
STATE DResLF1 (const TPZVec< STATE > &sigma_trial_pv, const TPZVec< STATE > &sigma_proj_pv, const STATE a, const STATE aPrev) const
 
REAL DistanceToSurfaceF1 (const TPZVec< REAL > &sigma_trial_pv, const REAL xi, const REAL beta) const
 
REAL DistanceToSurfaceF2 (const TPZVec< REAL > &sigma_trial_pv, const REAL theta, const REAL beta, const REAL a) const
 
void DDistanceToSurfaceF1 (const TPZVec< STATE > &sigma_trial_pv, const STATE theta, const STATE beta, TPZVec< STATE > &fxn) const
 
void DDistanceToSurfaceF2 (const TPZVec< STATE > &sigma_trial_pv, const STATE theta, const STATE beta, const REAL a, const REAL aPrev, TPZVec< STATE > &fxn) const
 
void D2DistanceToSurfaceF1 (const TPZVec< STATE > &sigma_trial_pv, const STATE xi, const STATE beta, TPZFNMatrix< 4, STATE > &jac) const
 
void D2DistanceToSurfaceF2 (const TPZVec< STATE > &sigma_trial_pv, const STATE theta, const STATE beta, const REAL a, TPZFNMatrix< 9, STATE > &jac) const
 
void ProjectToSurfaceF1 (const TPZVec< REAL > &sigma_trial_pv, const REAL aPrev, TPZVec< REAL > &sigma, REAL &aProj, const REAL tol) const
 
void ProjectToSurfaceF2 (const TPZVec< REAL > &sigma_trial_pv, const REAL aPrev, TPZVec< REAL > &sigma, REAL &aProj, const REAL tol) const
 
void ProjectSigma (const TPZVec< REAL > &sigma_trial_pv, const REAL aPrev, TPZVec< REAL > &sigma_pv, REAL &aProj, int &m_type, TPZFMatrix< REAL > *gradient=NULL) const
 
void SurfaceParamF1 (const TPZVec< STATE > &sigma_pv, STATE &xi, STATE &beta, const REAL tol=1e-5) const
 
void SurfaceParamF2 (const TPZVec< STATE > &sigma_pv, const STATE a, STATE &theta, STATE &beta, const REAL tol=1e-5) const
 
void GradF1SigmaTrial (const TPZVec< REAL > &sigma_trial_pv, const REAL xi, const REAL beta, const REAL aProj, TPZFNMatrix< 6, STATE > &ddist_dsigmatrial) const
 
void GradF2SigmaTrial (const TPZVec< REAL > &sigma_trial_pv, const REAL theta, const REAL beta, const REAL aProj, TPZFNMatrix< 9, STATE > &ddist_dsigmatrial) const
 
void DF1Cart (STATE xi, STATE beta, TPZFNMatrix< 6, STATE > &DFunccart) const
 
void DF2Cart (STATE theta, STATE beta, STATE a, TPZFNMatrix< 9, STATE > &DFunccart) const
 
void ProjectSigmaDep (const TPZVec< REAL > &sigma_trial_pv, const REAL aPrev, TPZVec< REAL > &sigma, REAL &aProj, TPZFMatrix< REAL > &GradSigma) const
 
STATE PlasticVolumetricStrain (STATE a) const
 
virtual ~TPZYCDruckerPragerPV ()
 
void YieldFunction (const TPZVec< STATE > &sigma, STATE kprev, TPZVec< STATE > &yield) const override
 
virtual int GetNYield () const override
 
- Public Member Functions inherited from TPZPlasticCriterion
virtual void Print (std::ostream &out) const
 
- 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
 

Private Attributes

TPZYCCamClayPV fCap
 
TPZElasticResponsefER
 
REAL & fM
 
REAL & fPt
 
REAL & fLogHardening
 
REAL & fLogBulkModulus
 
REAL & fA0
 
REAL & fE0
 

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 13 of file TPZYCDruckerPragerPV.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
NYield 

Definition at line 16 of file TPZYCDruckerPragerPV.h.

Constructor & Destructor Documentation

◆ TPZYCDruckerPragerPV() [1/2]

TPZYCDruckerPragerPV::TPZYCDruckerPragerPV ( )

Definition at line 16 of file TPZYCDruckerPragerPV.cpp.

◆ TPZYCDruckerPragerPV() [2/2]

TPZYCDruckerPragerPV::TPZYCDruckerPragerPV ( const TPZYCDruckerPragerPV other)

Definition at line 19 of file TPZYCDruckerPragerPV.cpp.

◆ ~TPZYCDruckerPragerPV()

TPZYCDruckerPragerPV::~TPZYCDruckerPragerPV ( )
virtual

Definition at line 413 of file TPZYCDruckerPragerPV.cpp.

Member Function Documentation

◆ bFromP()

REAL TPZYCDruckerPragerPV::bFromP ( const REAL  p,
const REAL  a 
) const

Definition at line 53 of file TPZYCDruckerPragerPV.cpp.

References TPZYCCamClayPV::bFromP(), and fCap.

◆ bFromTheta()

REAL TPZYCDruckerPragerPV::bFromTheta ( REAL  theta) const

Definition at line 57 of file TPZYCDruckerPragerPV.cpp.

References TPZYCCamClayPV::bFromTheta(), and fCap.

◆ ClassId()

int TPZYCDruckerPragerPV::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 TPZYCDruckerPragerPV.cpp.

References Hash().

◆ D2DistanceToSurfaceF1()

void TPZYCDruckerPragerPV::D2DistanceToSurfaceF1 ( const TPZVec< STATE > &  sigma_trial_pv,
const STATE  xi,
const STATE  beta,
TPZFNMatrix< 4, STATE > &  jac 
) const

Computes the second derivative of the distance as a function of xi and beta

Parameters
sigma_trial_pv
xi
beta
jac

Definition at line 147 of file TPZYCDruckerPragerPV.cpp.

References cos(), fER, fM, fPt, TPZElasticResponse::G(), TPZElasticResponse::K(), pow(), TPZFMatrix< TVar >::Resize(), sin, and sqrt.

Referenced by ProjectSigmaDep(), and ProjectToSurfaceF1().

◆ D2DistanceToSurfaceF2()

void TPZYCDruckerPragerPV::D2DistanceToSurfaceF2 ( const TPZVec< STATE > &  sigma_trial_pv,
const STATE  theta,
const STATE  beta,
const REAL  a,
TPZFNMatrix< 9, STATE > &  jac 
) const

Computes the second derivative of the distance as a function of theta, beta and a

Parameters
sigma_trial_pv
theta
beta
a
jac

Definition at line 166 of file TPZYCDruckerPragerPV.cpp.

References TPZYCCamClayPV::D2DistanceToSurface(), and fCap.

Referenced by ProjectSigmaDep().

◆ DDistanceToSurfaceF1()

void TPZYCDruckerPragerPV::DDistanceToSurfaceF1 ( const TPZVec< STATE > &  sigma_trial_pv,
const STATE  theta,
const STATE  beta,
TPZVec< STATE > &  fxn 
) const

Computes the derivative of the distance function to the yield surface as a function of xi and beta

Parameters
sigma_trial_pv
xi
beta
fxn

Definition at line 127 of file TPZYCDruckerPragerPV.cpp.

References cos(), fER, fM, fPt, TPZElasticResponse::G(), TPZElasticResponse::K(), pow(), TPZVec< T >::Resize(), sin, and sqrt.

Referenced by ProjectToSurfaceF1().

◆ DDistanceToSurfaceF2()

void TPZYCDruckerPragerPV::DDistanceToSurfaceF2 ( const TPZVec< STATE > &  sigma_trial_pv,
const STATE  theta,
const STATE  beta,
const REAL  a,
const REAL  aPrev,
TPZVec< STATE > &  fxn 
) const

Computes the derivative of the distance function to the yield surface as a function of xi, beta and a

Parameters
sigma_trial_pv
theta
beta
a
aPrev
fxn

Definition at line 142 of file TPZYCDruckerPragerPV.cpp.

References TPZYCCamClayPV::DDistanceToSurface(), and fCap.

◆ DF1Cart()

void TPZYCDruckerPragerPV::DF1Cart ( STATE  xi,
STATE  beta,
TPZFNMatrix< 6, STATE > &  DFunccart 
) const

Definition at line 343 of file TPZYCDruckerPragerPV.cpp.

References cos(), fM, fPt, pow(), sin, and sqrt.

Referenced by ProjectSigmaDep().

◆ DF2Cart()

void TPZYCDruckerPragerPV::DF2Cart ( STATE  theta,
STATE  beta,
STATE  a,
TPZFNMatrix< 9, STATE > &  DFunccart 
) const

Definition at line 359 of file TPZYCDruckerPragerPV.cpp.

References TPZYCCamClayPV::DFuncCart(), and fCap.

Referenced by ProjectSigmaDep().

◆ DistanceToSurfaceF1()

REAL TPZYCDruckerPragerPV::DistanceToSurfaceF1 ( const TPZVec< REAL > &  sigma_trial_pv,
const REAL  xi,
const REAL  beta 
) const

◆ DistanceToSurfaceF2()

REAL TPZYCDruckerPragerPV::DistanceToSurfaceF2 ( const TPZVec< REAL > &  sigma_trial_pv,
const REAL  theta,
const REAL  beta,
const REAL  a 
) const

Definition at line 122 of file TPZYCDruckerPragerPV.cpp.

References TPZYCCamClayPV::DistanceToSurface(), and fCap.

◆ DResLF1()

STATE TPZYCDruckerPragerPV::DResLF1 ( const TPZVec< STATE > &  sigma_trial_pv,
const TPZVec< STATE > &  sigma_proj_pv,
const STATE  a,
const STATE  aPrev 
) const

Derivative of the residual equation with respect to a.

Parameters
sigma_trial_pv
sigma_proj_pv
a
aPrev
Returns

Definition at line 102 of file TPZYCDruckerPragerPV.cpp.

References fA0, fE0, fER, fLogBulkModulus, fLogHardening, TPZElasticResponse::K(), log, and pow().

Referenced by ProjectToSurfaceF1().

◆ GetNYield()

virtual int TPZYCDruckerPragerPV::GetNYield ( ) const
inlineoverridevirtual

Implements TPZPlasticCriterion.

Definition at line 143 of file TPZYCDruckerPragerPV.h.

References as_integer(), and NYield.

◆ GradF1SigmaTrial()

void TPZYCDruckerPragerPV::GradF1SigmaTrial ( const TPZVec< REAL > &  sigma_trial_pv,
const REAL  xi,
const REAL  beta,
const REAL  aProj,
TPZFNMatrix< 6, STATE > &  ddist_dsigmatrial 
) const

Definition at line 323 of file TPZYCDruckerPragerPV.cpp.

References cos(), fER, fM, fPt, TPZElasticResponse::G(), TPZElasticResponse::K(), sin, and sqrt.

Referenced by ProjectSigmaDep().

◆ GradF2SigmaTrial()

void TPZYCDruckerPragerPV::GradF2SigmaTrial ( const TPZVec< REAL > &  sigma_trial_pv,
const REAL  theta,
const REAL  beta,
const REAL  aProj,
TPZFNMatrix< 9, STATE > &  ddist_dsigmatrial 
) const

Definition at line 339 of file TPZYCDruckerPragerPV.cpp.

References fCap, and TPZYCCamClayPV::GradSigmaTrial().

Referenced by ProjectSigmaDep().

◆ InitialDamage()

REAL TPZYCDruckerPragerPV::InitialDamage ( const TPZVec< REAL > &  stress_p) const

Compute initial damage variable from the given principal stress state

Parameters
stress_pprincipal values
Returns
the damage variable

Definition at line 47 of file TPZYCDruckerPragerPV.cpp.

References DebugStop.

◆ operator=()

TPZYCDruckerPragerPV & TPZYCDruckerPragerPV::operator= ( const TPZYCDruckerPragerPV other)

Definition at line 22 of file TPZYCDruckerPragerPV.cpp.

References fCap.

◆ Phi()

void TPZYCDruckerPragerPV::Phi ( TPZVec< REAL >  sigmaPV,
REAL  a,
TPZVec< REAL > &  phi 
) const

◆ PlasticVolumetricStrain()

STATE TPZYCDruckerPragerPV::PlasticVolumetricStrain ( STATE  a) const

Definition at line 408 of file TPZYCDruckerPragerPV.cpp.

References fCap, and TPZYCCamClayPV::PlasticVolumetricStrain().

Referenced by ResLF1().

◆ ProjectSigma()

void TPZYCDruckerPragerPV::ProjectSigma ( const TPZVec< REAL > &  sigma_trial_pv,
const REAL  aPrev,
TPZVec< REAL > &  sigma_pv,
REAL &  aProj,
int &  m_type,
TPZFMatrix< REAL > *  gradient = NULL 
) const

◆ ProjectSigmaDep()

void TPZYCDruckerPragerPV::ProjectSigmaDep ( const TPZVec< REAL > &  sigma_trial_pv,
const REAL  aPrev,
TPZVec< REAL > &  sigma,
REAL &  aProj,
TPZFMatrix< REAL > &  GradSigma 
) const

◆ ProjectToSurfaceF1()

void TPZYCDruckerPragerPV::ProjectToSurfaceF1 ( const TPZVec< REAL > &  sigma_trial_pv,
const REAL  aPrev,
TPZVec< REAL > &  sigma,
REAL &  aProj,
const REAL  tol 
) const

◆ ProjectToSurfaceF2()

void TPZYCDruckerPragerPV::ProjectToSurfaceF2 ( const TPZVec< REAL > &  sigma_trial_pv,
const REAL  aPrev,
TPZVec< REAL > &  sigma,
REAL &  aProj,
const REAL  tol 
) const

Definition at line 261 of file TPZYCDruckerPragerPV.cpp.

References fCap, and TPZYCCamClayPV::ProjectToSurface().

Referenced by ProjectSigma(), and ProjectSigmaDep().

◆ Read()

void TPZYCDruckerPragerPV::Read ( TPZStream buf,
void *  context 
)
overridevirtual

read objects from the stream

Reimplemented from TPZSavable.

Definition at line 39 of file TPZYCDruckerPragerPV.cpp.

References fCap, and TPZYCCamClayPV::Read().

◆ ResLF1()

REAL TPZYCDruckerPragerPV::ResLF1 ( const TPZVec< STATE > &  sigma_trial_pv,
const TPZVec< STATE > &  sigma_proj_pv,
const STATE  a,
const STATE  aPrev 
) const

Definition at line 92 of file TPZYCDruckerPragerPV.cpp.

References fER, TPZElasticResponse::K(), and PlasticVolumetricStrain().

Referenced by ProjectToSurfaceF1().

◆ ResLF2()

REAL TPZYCDruckerPragerPV::ResLF2 ( const TPZVec< STATE > &  sigma_trial_pv,
const STATE  theta,
const STATE  beta,
const REAL  a,
const REAL  aPrev 
) const

Definition at line 98 of file TPZYCDruckerPragerPV.cpp.

References fCap, and TPZYCCamClayPV::ResLFunc().

◆ SetElasticResponse()

void TPZYCDruckerPragerPV::SetElasticResponse ( const TPZElasticResponse ER)

Definition at line 31 of file TPZYCDruckerPragerPV.cpp.

References fER.

◆ SetUp()

void TPZYCDruckerPragerPV::SetUp ( const TPZElasticResponse ER,
REAL  gamma,
REAL  m,
REAL  pt,
REAL  logHardening,
REAL  logBulkModulus,
REAL  a0,
REAL  e0 
)

Definition at line 27 of file TPZYCDruckerPragerPV.cpp.

References fCap, and TPZYCCamClayPV::SetUp().

◆ SurfaceF1InCyl()

void TPZYCDruckerPragerPV::SurfaceF1InCyl ( const REAL  xi,
const REAL  beta,
TPZVec< REAL > &  returnValue 
) const

Computes the cylindrical coordinates of the point on the yield surface with the given xi and beta.

Parameters
xiHydrostatic component
betaLode angle
returnValueCylindrical coordinates of the point on the yield surface

Definition at line 79 of file TPZYCDruckerPragerPV.cpp.

References abs(), fM, fPt, and sqrt.

Referenced by DistanceToSurfaceF1(), and ProjectToSurfaceF1().

◆ SurfaceF2InCyl()

void TPZYCDruckerPragerPV::SurfaceF2InCyl ( const REAL  theta,
const REAL  beta,
const REAL  a,
TPZVec< REAL > &  returnValue 
) const

Computes the cylindrical coordinates of the point on the yield surface with the given xi and beta.

Parameters
thetaDeviatoric component
betaLode angle
returnValueCylindrical coordinates of the point on the yield surface

Definition at line 88 of file TPZYCDruckerPragerPV.cpp.

References fCap, and TPZYCCamClayPV::SurfaceInCyl().

◆ SurfaceParamF1()

void TPZYCDruckerPragerPV::SurfaceParamF1 ( const TPZVec< STATE > &  sigma_pv,
STATE &  xi,
STATE &  beta,
const REAL  tol = 1e-5 
) const

◆ SurfaceParamF2()

void TPZYCDruckerPragerPV::SurfaceParamF2 ( const TPZVec< STATE > &  sigma_pv,
const STATE  a,
STATE &  theta,
STATE &  beta,
const REAL  tol = 1e-5 
) const

Definition at line 319 of file TPZYCDruckerPragerPV.cpp.

References fCap, and TPZYCCamClayPV::SurfaceParam().

Referenced by ProjectSigmaDep().

◆ Write()

void TPZYCDruckerPragerPV::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 43 of file TPZYCDruckerPragerPV.cpp.

References fCap, and TPZYCCamClayPV::Write().

◆ YieldFunction()

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

Implements TPZPlasticCriterion.

Definition at line 139 of file TPZYCDruckerPragerPV.h.

References Phi().

Member Data Documentation

◆ fA0

REAL& TPZYCDruckerPragerPV::fA0
private

Definition at line 156 of file TPZYCDruckerPragerPV.h.

Referenced by DResLF1(), and TPZYCCamClayPVTranslator::UpdateAttributes().

◆ fCap

TPZYCCamClayPV TPZYCDruckerPragerPV::fCap
private

◆ fE0

REAL& TPZYCDruckerPragerPV::fE0
private

Definition at line 157 of file TPZYCDruckerPragerPV.h.

Referenced by DResLF1(), and TPZYCCamClayPVTranslator::UpdateAttributes().

◆ fER

TPZElasticResponse& TPZYCDruckerPragerPV::fER
private

◆ fLogBulkModulus

REAL& TPZYCDruckerPragerPV::fLogBulkModulus
private

Definition at line 155 of file TPZYCDruckerPragerPV.h.

Referenced by DResLF1(), and TPZYCCamClayPVTranslator::UpdateAttributes().

◆ fLogHardening

REAL& TPZYCDruckerPragerPV::fLogHardening
private

Definition at line 154 of file TPZYCDruckerPragerPV.h.

Referenced by DResLF1(), and TPZYCCamClayPVTranslator::UpdateAttributes().

◆ fM

REAL& TPZYCDruckerPragerPV::fM
private

◆ fPt

REAL& TPZYCDruckerPragerPV::fPt
private

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