NeoPZ
Public Types | Public Member Functions | Public Attributes | Protected Attributes | Private Member Functions | List of all members
TPZPlasticStepPV< YC_t, ER_t > Class Template Reference

Classe que efetua avanco de um passo de plastificacao utilizando o metodo de Newton. More...

#include <TPZPlasticStepPV.h>

Inheritance diagram for TPZPlasticStepPV< YC_t, ER_t >:
[legend]
Collaboration diagram for TPZPlasticStepPV< YC_t, ER_t >:
[legend]

Public Types

typedef YC_t fNYields
 

Public Member Functions

 TPZPlasticStepPV (REAL alpha=0.)
 Constructor which Initialize the plastic material damage variable only. More...
 
 TPZPlasticStepPV (const TPZPlasticStepPV &source)
 Copy Constructor. More...
 
TPZPlasticStepPVoperator= (const TPZPlasticStepPV &source)
 Operator =. More...
 
virtual const char * Name () const override
 Name of the class ina string. More...
 
virtual void Print (std::ostream &out) const override
 
virtual void InitialDamage (const TPZTensor< REAL > &sigma, REAL &k)
 
virtual void ApplyStrainComputeSigma (const TPZTensor< REAL > &epsTotal, TPZTensor< REAL > &sigma, TPZFMatrix< REAL > *tangent=NULL) override
 
virtual void ApplyStressComputeStrain (const TPZTensor< REAL > &sigma, TPZTensor< REAL > &epsTotal, TPZFMatrix< REAL > *tangent_inv=NULL)
 
virtual void ApplyStrain (const TPZTensor< REAL > &epsTotal) override
 
virtual void ApplyStrainComputeDep (const TPZTensor< REAL > &epsTotal, TPZTensor< REAL > &sigma, TPZFMatrix< REAL > &Dep) override
 
virtual void ApplyLoad (const TPZTensor< REAL > &sigma, TPZTensor< REAL > &epsTotal) override
 
virtual TPZPlasticState< REAL > GetState () const override
 
virtual void Phi (const TPZTensor< REAL > &epsTotal, TPZVec< REAL > &phi) const override
 Return the value of the yield functions for the given strain. More...
 
virtual void SetElasticResponse (TPZElasticResponse &ER) override
 
virtual TPZElasticResponse GetElasticResponse () const override
 
virtual void SetState (const TPZPlasticState< REAL > &state) override
 Update the damage values. More...
 
void CopyFromTensorToFMatrix (TPZTensor< STATE > tensor, TPZFMatrix< STATE > &copy)
 
void CopyFromFMatrixToTensor (TPZFMatrix< STATE > FNM, TPZTensor< STATE > &copy)
 Object which represents the yield criterium. More...
 
virtual void TrialStressCorrection (REAL kappa, TPZVec< STATE > &sigma, TPZVec< STATE > &sigma_tr)
 Method that correct the Sigma trial based on the intersection with the yield surface. 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 TaylorCheck (TPZTensor< REAL > &EpsIni, TPZTensor< REAL > &deps, REAL kprev, TPZVec< REAL > &conv)
 
REAL ComputeNFromTaylorCheck (REAL alpha1, REAL alpha2, TPZFMatrix< REAL > &error1Mat, TPZFMatrix< REAL > &error2Mat)
 
TPZPlasticCriterionGetYC () override
 
void SetResidualTolerance (STATE tol)
 
void ResetPlasticMem ()
 
- Public Member Functions inherited from TPZPlasticBase
virtual ~TPZPlasticBase ()
 
virtual int IntegrationSteps () const
 
virtual void ResetPlasticStrain ()
 
- 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
 

Public Attributes

YC_t fYC
 Object which represents the yield criterium. More...
 
ER_t fER
 Object representing the elastic response. More...
 
TPZPlasticState< STATE > fN
 Plastic State Variables (EpsT, EpsP, Alpha) at the current time step. More...
 

Protected Attributes

REAL fResTol
 Residual tolerance accepted in the plastic loop processes. More...
 
int fMaxNewton
 Maximum number of Newton interations allowed in the nonlinear solvers. More...
 

Private Member Functions

void TangentOperator (TPZFMatrix< REAL > &gradient, TPZTensor< REAL >::TPZDecomposed &eps_eigen_system, TPZTensor< REAL >::TPZDecomposed &sig_eigen_system, TPZFMatrix< REAL > &Tangent)
 Compute the tangent opreator. More...
 

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

template<class YC_t, class ER_t>
class TPZPlasticStepPV< YC_t, ER_t >

Classe que efetua avanco de um passo de plastificacao utilizando o metodo de Newton.

Definition at line 44 of file TPZPlasticStepPV.h.

Member Typedef Documentation

◆ fNYields

template<class YC_t, class ER_t>
typedef YC_t TPZPlasticStepPV< YC_t, ER_t >::fNYields

Definition at line 111 of file TPZPlasticStepPV.h.

Constructor & Destructor Documentation

◆ TPZPlasticStepPV() [1/2]

template<class YC_t, class ER_t>
TPZPlasticStepPV< YC_t, ER_t >::TPZPlasticStepPV ( REAL  alpha = 0.)
inline

Constructor which Initialize the plastic material damage variable only.

Parameters
[in]alphadamage variable

Definition at line 54 of file TPZPlasticStepPV.h.

References TPZPlasticStepPV< YC_t, ER_t >::fN, and TPZPlasticState< T >::m_hardening.

◆ TPZPlasticStepPV() [2/2]

template<class YC_t, class ER_t>
TPZPlasticStepPV< YC_t, ER_t >::TPZPlasticStepPV ( const TPZPlasticStepPV< YC_t, ER_t > &  source)
inline

Member Function Documentation

◆ ApplyLoad()

template<class YC_t , class ER_t >
void TPZPlasticStepPV< YC_t, ER_t >::ApplyLoad ( const TPZTensor< REAL > &  sigma,
TPZTensor< REAL > &  epsTotal 
)
overridevirtual

Attempts to compute an epsTotal value in order to reach an imposed stress state sigma. This method should be used only for test purposes because it isn't fully robust. Some materials, specially those perfectly plastic and with softening, may fail when applying the Newton Method on ProcessLoad.

Parameters
[in]sigmastress tensor
[out]epsTotaldeformation tensor

Implements TPZPlasticBase.

Definition at line 556 of file TPZPlasticStepPV.cpp.

References TPZTensor< T >::Add(), EMathematicaInput, LOGPZ_DEBUG, TPZPlasticState< T >::m_eps_p, Norm(), TPZMatrix< TVar >::Print(), TPZMatrix< TVar >::Solve_LU(), and pzgeom::tol.

◆ ApplyStrain()

template<class YC_t , class ER_t >
void TPZPlasticStepPV< YC_t, ER_t >::ApplyStrain ( const TPZTensor< REAL > &  epsTotal)
overridevirtual

Imposes the specified strain tensor, evaluating the plastic integration if necessary.

Parameters
[in]epsTotalImposed total strain tensor

Implements TPZPlasticBase.

Definition at line 547 of file TPZPlasticStepPV.cpp.

References DebugStop.

◆ ApplyStrainComputeDep()

template<class YC_t , class ER_t >
void TPZPlasticStepPV< YC_t, ER_t >::ApplyStrainComputeDep ( const TPZTensor< REAL > &  epsTotal,
TPZTensor< REAL > &  sigma,
TPZFMatrix< REAL > &  Dep 
)
overridevirtual

Imposes the specified strain tensor and returns the corresp. stress state and tangent stiffness matrix.

Parameters
[in]epsTotalImposed total strain tensor
[out]sigmaResultant stress
[out]DepIncremental constitutive relation

Implements TPZPlasticBase.

Definition at line 212 of file TPZPlasticStepPV.cpp.

References TPZTensor< T >::ComputeEigenvectors(), TPZTensor< T >::EigenSystem(), EMathematicaInput, fabs, LOGPZ_DEBUG, TPZMatrix< TVar >::Print(), TPZTensor< T >::Print(), and TPZVec< T >::size().

◆ ApplyStrainComputeSigma()

template<class YC_t , class ER_t >
void TPZPlasticStepPV< YC_t, ER_t >::ApplyStrainComputeSigma ( const TPZTensor< REAL > &  epsTotal,
TPZTensor< REAL > &  sigma,
TPZFMatrix< REAL > *  tangent = NULL 
)
overridevirtual

Imposes the specified strain tensor and returns the correspondent stress state.

Parameters
[in]epsTotalImposed total strain tensor
[out]sigmaResultant stress
[out]tangentTangent matrix

Applying trial stress correction

Implements TPZPlasticBase.

Definition at line 38 of file TPZPlasticStepPV.cpp.

References TPZMatrix< TVar >::Cols(), DebugStop, TPZTensor< T >::EigenSystem(), LOGPZ_DEBUG, and TPZMatrix< TVar >::Rows().

◆ ApplyStressComputeStrain()

template<class YC_t , class ER_t >
void TPZPlasticStepPV< YC_t, ER_t >::ApplyStressComputeStrain ( const TPZTensor< REAL > &  sigma,
TPZTensor< REAL > &  epsTotal,
TPZFMatrix< REAL > *  tangent_inv = NULL 
)
virtual

Imposes the specified stress tensor and returns the correspondent strain state.

Parameters
[in]sigmaImposed stress tensor
[out]epsTotalResultant total strain
[out]tangent_invTangent inverse matrix

Definition at line 103 of file TPZPlasticStepPV.cpp.

References TPZMatrix< TVar >::Cols(), DebugStop, TPZTensor< T >::EigenSystem(), LOGPZ_DEBUG, and TPZMatrix< TVar >::Rows().

◆ ClassId()

template<class YC_t , class ER_t >
int TPZPlasticStepPV< YC_t, ER_t >::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 TPZPlasticBase.

Definition at line 268 of file TPZPlasticStepPV.h.

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

Referenced by TPZPlasticStepPV< YC_t, ER_t >::GetElasticResponse().

◆ ComputeNFromTaylorCheck()

template<class YC_t , class ER_t >
REAL TPZPlasticStepPV< YC_t, ER_t >::ComputeNFromTaylorCheck ( REAL  alpha1,
REAL  alpha2,
TPZFMatrix< REAL > &  error1Mat,
TPZFMatrix< REAL > &  error2Mat 
)

Definition at line 488 of file TPZPlasticStepPV.cpp.

References log, and NormVecOfMat().

Referenced by TPZPlasticStepPV< YC_t, ER_t >::GetElasticResponse().

◆ CopyFromFMatrixToTensor()

template<class YC_t , class ER_t >
void TPZPlasticStepPV< YC_t, ER_t >::CopyFromFMatrixToTensor ( TPZFMatrix< STATE >  FNM,
TPZTensor< STATE > &  copy 
)

Object which represents the yield criterium.

Object representing the elastic response Residual tolerance accepted in the plastic loop processes Maximum number of Newton interations allowed in the nonlinear solvers Plastic State Variables (EpsT, EpsP, Alpha) at the current time step

Definition at line 676 of file TPZPlasticStepPV.cpp.

References TPZFMatrix< TVar >::Resize(), TPZTensor< T >::XX(), TPZTensor< T >::XY(), TPZTensor< T >::XZ(), TPZTensor< T >::YY(), TPZTensor< T >::YZ(), and TPZTensor< T >::ZZ().

Referenced by TPZPlasticStepPV< YC_t, ER_t >::GetElasticResponse().

◆ CopyFromTensorToFMatrix()

template<class YC_t , class ER_t >
void TPZPlasticStepPV< YC_t, ER_t >::CopyFromTensorToFMatrix ( TPZTensor< STATE >  tensor,
TPZFMatrix< STATE > &  copy 
)

◆ GetElasticResponse()

template<class YC_t, class ER_t>
virtual TPZElasticResponse TPZPlasticStepPV< YC_t, ER_t >::GetElasticResponse ( ) const
inlineoverridevirtual

◆ GetState()

template<class YC_t , class ER_t >
TPZPlasticState< STATE > TPZPlasticStepPV< YC_t, ER_t >::GetState ( ) const
overridevirtual

Implements TPZPlasticBase.

Definition at line 614 of file TPZPlasticStepPV.cpp.

◆ GetYC()

template<class YC_t, class ER_t>
TPZPlasticCriterion& TPZPlasticStepPV< YC_t, ER_t >::GetYC ( )
inlineoverridevirtual

Implements TPZPlasticBase.

Definition at line 218 of file TPZPlasticStepPV.h.

References TPZPlasticStepPV< YC_t, ER_t >::fYC.

◆ InitialDamage()

template<class YC_t , class ER_t >
void TPZPlasticStepPV< YC_t, ER_t >::InitialDamage ( const TPZTensor< REAL > &  sigma,
REAL &  k 
)
virtual

Attempts to compute initial damage value corresponding to an imposed stress state sigma.

Parameters
[in]sigmastress tensor
[out]epsTotaldeformation tensor

Definition at line 31 of file TPZPlasticStepPV.cpp.

References TPZTensor< T >::EigenSystem().

◆ Name()

template<class YC_t, class ER_t>
virtual const char* TPZPlasticStepPV< YC_t, ER_t >::Name ( ) const
inlineoverridevirtual

Name of the class ina string.

Implements TPZPlasticBase.

Definition at line 92 of file TPZPlasticStepPV.h.

Referenced by TPZPlasticStepPV< YC_t, ER_t >::Print().

◆ operator=()

template<class YC_t, class ER_t>
TPZPlasticStepPV& TPZPlasticStepPV< YC_t, ER_t >::operator= ( const TPZPlasticStepPV< YC_t, ER_t > &  source)
inline

◆ Phi()

template<class YC_t, class ER_t>
void TPZPlasticStepPV< YC_t, ER_t >::Phi ( const TPZTensor< REAL > &  epsTotal,
TPZVec< REAL > &  phi 
) const
overridevirtual

Return the value of the yield functions for the given strain.

Parameters
[in]epsTotalstrain tensor (total strain)
[out]phivector of yield functions

Implements TPZPlasticBase.

Definition at line 620 of file TPZPlasticStepPV.cpp.

References TPZTensor< T >::EigenSystem().

◆ Print()

template<class YC_t, class ER_t>
virtual void TPZPlasticStepPV< YC_t, ER_t >::Print ( std::ostream &  out) const
inlineoverridevirtual

◆ Read()

template<class YC_t , class ER_t >
void TPZPlasticStepPV< YC_t, ER_t >::Read ( TPZStream buf,
void *  context 
)
overridevirtual

read objects from the stream

Implements TPZPlasticBase.

Definition at line 649 of file TPZPlasticStepPV.cpp.

References TPZStream::Read().

Referenced by TPZPlasticStepPV< YC_t, ER_t >::GetElasticResponse().

◆ ResetPlasticMem()

template<class YC_t, class ER_t>
void TPZPlasticStepPV< YC_t, ER_t >::ResetPlasticMem ( )
inline

Definition at line 230 of file TPZPlasticStepPV.h.

◆ SetElasticResponse()

template<class YC_t , class ER_t >
void TPZPlasticStepPV< YC_t, ER_t >::SetElasticResponse ( TPZElasticResponse ER)
overridevirtual

Implements TPZPlasticBase.

Definition at line 700 of file TPZPlasticStepPV.cpp.

◆ SetResidualTolerance()

template<class YC_t, class ER_t>
void TPZPlasticStepPV< YC_t, ER_t >::SetResidualTolerance ( STATE  tol)
inline

Definition at line 225 of file TPZPlasticStepPV.h.

References TPZPlasticStepPV< YC_t, ER_t >::fResTol, and pzgeom::tol.

◆ SetState()

template<class YC_t , class ER_t >
void TPZPlasticStepPV< YC_t, ER_t >::SetState ( const TPZPlasticState< REAL > &  state)
overridevirtual

Update the damage values.

Parameters
[in]statePlastic state proposed

Implements TPZPlasticBase.

Definition at line 634 of file TPZPlasticStepPV.cpp.

Referenced by TPZPlasticStepPV< YC_t, ER_t >::GetElasticResponse().

◆ TangentOperator()

template<class YC_t , class ER_t >
void TPZPlasticStepPV< YC_t, ER_t >::TangentOperator ( TPZFMatrix< REAL > &  gradient,
TPZTensor< REAL >::TPZDecomposed &  eps_eigen_system,
TPZTensor< REAL >::TPZDecomposed &  sig_eigen_system,
TPZFMatrix< REAL > &  Tangent 
)
private

Compute the tangent opreator.

An improved numerical integration algorithm for elastoplastic constitutive equations. Appendix C

l

j

i

k

Definition at line 298 of file TPZPlasticStepPV.cpp.

References FromMatToVoight(), IsZero(), and ProdT().

◆ TaylorCheck()

template<class YC_t , class ER_t >
void TPZPlasticStepPV< YC_t, ER_t >::TaylorCheck ( TPZTensor< REAL > &  EpsIni,
TPZTensor< REAL > &  deps,
REAL  kprev,
TPZVec< REAL > &  conv 
)

Does the TaylorCheck of the tangent matrix

Parameters
[in]epsTotalImposed total strain tensor
[out]sigmaResultant stress
[out]DepIncremental constitutive relation

Definition at line 381 of file TPZPlasticStepPV.cpp.

References TPZTensor< T >::Add(), FromMatToVoight(), log, LOGPZ_DEBUG, TPZMatrix< TVar >::Multiply(), NormVecOfMat(), TPZMatrix< TVar >::Print(), TPZStack< T, NumExtAlloc >::push_back(), and TPZTensor< T >::Scale().

Referenced by TPZPlasticStepPV< YC_t, ER_t >::GetElasticResponse().

◆ TrialStressCorrection()

template<class YC_t , class ER_t >
void TPZPlasticStepPV< YC_t, ER_t >::TrialStressCorrection ( REAL  kappa,
TPZVec< STATE > &  sigma,
TPZVec< STATE > &  sigma_tr 
)
virtual

Method that correct the Sigma trial based on the intersection with the yield surface.

Definition at line 174 of file TPZPlasticStepPV.cpp.

References IsZero().

Referenced by TPZPlasticStepPV< YC_t, ER_t >::GetElasticResponse().

◆ Write()

template<class YC_t , class ER_t >
void TPZPlasticStepPV< YC_t, ER_t >::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

Implements TPZPlasticBase.

Definition at line 640 of file TPZPlasticStepPV.cpp.

References TPZStream::Write().

Referenced by TPZPlasticStepPV< YC_t, ER_t >::GetElasticResponse().

Member Data Documentation

◆ fER

template<class YC_t, class ER_t>
ER_t TPZPlasticStepPV< YC_t, ER_t >::fER

◆ fMaxNewton

template<class YC_t, class ER_t>
int TPZPlasticStepPV< YC_t, ER_t >::fMaxNewton
protected

Maximum number of Newton interations allowed in the nonlinear solvers.

Definition at line 252 of file TPZPlasticStepPV.h.

Referenced by TPZPlasticStepPV< YC_t, ER_t >::operator=(), TPZPlasticStepPV< YC_t, ER_t >::Print(), and TPZPlasticStepPV< YC_t, ER_t >::TPZPlasticStepPV().

◆ fN

template<class YC_t, class ER_t>
TPZPlasticState<STATE> TPZPlasticStepPV< YC_t, ER_t >::fN

Plastic State Variables (EpsT, EpsP, Alpha) at the current time step.

Definition at line 263 of file TPZPlasticStepPV.h.

Referenced by TPZPlasticStepPV< YC_t, ER_t >::operator=(), TPZPlasticStepPV< YC_t, ER_t >::Print(), PYBIND11_MODULE(), and TPZPlasticStepPV< YC_t, ER_t >::TPZPlasticStepPV().

◆ fResTol

template<class YC_t, class ER_t>
REAL TPZPlasticStepPV< YC_t, ER_t >::fResTol
protected

◆ fYC

template<class YC_t, class ER_t>
YC_t TPZPlasticStepPV< YC_t, ER_t >::fYC

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