NeoPZ
|
Classe que efetua avanco de um passo de plastificacao utilizando o metodo de Newton. More...
#include <TPZPlasticStepPV.h>
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... | |
TPZPlasticStepPV & | operator= (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 > ©) |
void | CopyFromFMatrixToTensor (TPZFMatrix< STATE > FNM, TPZTensor< STATE > ©) |
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) |
TPZPlasticCriterion & | GetYC () 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 TPZSavable * | CreateInstance (const int &classId) |
Classe que efetua avanco de um passo de plastificacao utilizando o metodo de Newton.
Definition at line 44 of file TPZPlasticStepPV.h.
typedef YC_t TPZPlasticStepPV< YC_t, ER_t >::fNYields |
Definition at line 111 of file TPZPlasticStepPV.h.
|
inline |
Constructor which Initialize the plastic material damage variable only.
[in] | alpha | damage variable |
Definition at line 54 of file TPZPlasticStepPV.h.
References TPZPlasticStepPV< YC_t, ER_t >::fN, and TPZPlasticState< T >::m_hardening.
|
inline |
Copy Constructor.
[in] | source | of copy |
Definition at line 64 of file TPZPlasticStepPV.h.
References TPZPlasticStepPV< YC_t, ER_t >::fER, TPZPlasticStepPV< YC_t, ER_t >::fMaxNewton, TPZPlasticStepPV< YC_t, ER_t >::fN, TPZPlasticStepPV< YC_t, ER_t >::fResTol, and TPZPlasticStepPV< YC_t, ER_t >::fYC.
|
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.
[in] | sigma | stress tensor |
[out] | epsTotal | deformation 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.
|
overridevirtual |
Imposes the specified strain tensor, evaluating the plastic integration if necessary.
[in] | epsTotal | Imposed total strain tensor |
Implements TPZPlasticBase.
Definition at line 547 of file TPZPlasticStepPV.cpp.
References DebugStop.
|
overridevirtual |
Imposes the specified strain tensor and returns the corresp. stress state and tangent stiffness matrix.
[in] | epsTotal | Imposed total strain tensor |
[out] | sigma | Resultant stress |
[out] | Dep | Incremental 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().
|
overridevirtual |
Imposes the specified strain tensor and returns the correspondent stress state.
[in] | epsTotal | Imposed total strain tensor |
[out] | sigma | Resultant stress |
[out] | tangent | Tangent 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().
|
virtual |
Imposes the specified stress tensor and returns the correspondent strain state.
[in] | sigma | Imposed stress tensor |
[out] | epsTotal | Resultant total strain |
[out] | tangent_inv | Tangent inverse matrix |
Definition at line 103 of file TPZPlasticStepPV.cpp.
References TPZMatrix< TVar >::Cols(), DebugStop, TPZTensor< T >::EigenSystem(), LOGPZ_DEBUG, and TPZMatrix< TVar >::Rows().
|
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().
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().
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().
void TPZPlasticStepPV< YC_t, ER_t >::CopyFromTensorToFMatrix | ( | TPZTensor< STATE > | tensor, |
TPZFMatrix< STATE > & | copy | ||
) |
Definition at line 688 of file TPZPlasticStepPV.cpp.
References 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().
|
inlineoverridevirtual |
Implements TPZPlasticBase.
Definition at line 177 of file TPZPlasticStepPV.h.
References TPZPlasticStepPV< YC_t, ER_t >::ClassId(), TPZPlasticStepPV< YC_t, ER_t >::ComputeNFromTaylorCheck(), TPZPlasticStepPV< YC_t, ER_t >::CopyFromFMatrixToTensor(), TPZPlasticStepPV< YC_t, ER_t >::CopyFromTensorToFMatrix(), TPZPlasticStepPV< YC_t, ER_t >::fER, TPZPlasticStepPV< YC_t, ER_t >::Read(), TPZPlasticStepPV< YC_t, ER_t >::SetState(), TPZPlasticStepPV< YC_t, ER_t >::TaylorCheck(), TPZPlasticStepPV< YC_t, ER_t >::TrialStressCorrection(), and TPZPlasticStepPV< YC_t, ER_t >::Write().
|
overridevirtual |
Implements TPZPlasticBase.
Definition at line 614 of file TPZPlasticStepPV.cpp.
|
inlineoverridevirtual |
Implements TPZPlasticBase.
Definition at line 218 of file TPZPlasticStepPV.h.
References TPZPlasticStepPV< YC_t, ER_t >::fYC.
|
virtual |
Attempts to compute initial damage value corresponding to an imposed stress state sigma.
[in] | sigma | stress tensor |
[out] | epsTotal | deformation tensor |
Definition at line 31 of file TPZPlasticStepPV.cpp.
References TPZTensor< T >::EigenSystem().
|
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().
|
inline |
Operator =.
[in] | source | of copy |
Definition at line 78 of file TPZPlasticStepPV.h.
References TPZPlasticStepPV< YC_t, ER_t >::fER, TPZPlasticStepPV< YC_t, ER_t >::fMaxNewton, TPZPlasticStepPV< YC_t, ER_t >::fN, TPZPlasticStepPV< YC_t, ER_t >::fResTol, and TPZPlasticStepPV< YC_t, ER_t >::fYC.
|
overridevirtual |
Return the value of the yield functions for the given strain.
[in] | epsTotal | strain tensor (total strain) |
[out] | phi | vector of yield functions |
Implements TPZPlasticBase.
Definition at line 620 of file TPZPlasticStepPV.cpp.
References TPZTensor< T >::EigenSystem().
|
inlineoverridevirtual |
Implements TPZPlasticBase.
Definition at line 97 of file TPZPlasticStepPV.h.
References TPZPlasticStepPV< YC_t, ER_t >::fER, TPZPlasticStepPV< YC_t, ER_t >::fMaxNewton, TPZPlasticStepPV< YC_t, ER_t >::fN, TPZPlasticStepPV< YC_t, ER_t >::fResTol, TPZPlasticStepPV< YC_t, ER_t >::fYC, TPZPlasticStepPV< YC_t, ER_t >::Name(), and TPZPlasticState< T >::Print().
|
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().
|
inline |
Definition at line 230 of file TPZPlasticStepPV.h.
|
overridevirtual |
Implements TPZPlasticBase.
Definition at line 700 of file TPZPlasticStepPV.cpp.
|
inline |
Definition at line 225 of file TPZPlasticStepPV.h.
References TPZPlasticStepPV< YC_t, ER_t >::fResTol, and pzgeom::tol.
|
overridevirtual |
Update the damage values.
[in] | state | Plastic state proposed |
Implements TPZPlasticBase.
Definition at line 634 of file TPZPlasticStepPV.cpp.
Referenced by TPZPlasticStepPV< YC_t, ER_t >::GetElasticResponse().
|
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().
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
[in] | epsTotal | Imposed total strain tensor |
[out] | sigma | Resultant stress |
[out] | Dep | Incremental 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().
|
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().
|
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().
ER_t TPZPlasticStepPV< YC_t, ER_t >::fER |
Object representing the elastic response.
Definition at line 244 of file TPZPlasticStepPV.h.
Referenced by TPZPlasticStepPV< YC_t, ER_t >::GetElasticResponse(), TPZPlasticStepPV< YC_t, ER_t >::operator=(), TPZPlasticStepPV< YC_t, ER_t >::Print(), and TPZPlasticStepPV< YC_t, ER_t >::TPZPlasticStepPV().
|
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().
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().
|
protected |
Residual tolerance accepted in the plastic loop processes.
Definition at line 249 of file TPZPlasticStepPV.h.
Referenced by TPZPlasticStepPV< YC_t, ER_t >::operator=(), TPZPlasticStepPV< YC_t, ER_t >::Print(), TPZPlasticStepPV< YC_t, ER_t >::SetResidualTolerance(), and TPZPlasticStepPV< YC_t, ER_t >::TPZPlasticStepPV().
YC_t TPZPlasticStepPV< YC_t, ER_t >::fYC |
Object which represents the yield criterium.
Definition at line 241 of file TPZPlasticStepPV.h.
Referenced by TPZPlasticStepPV< YC_t, ER_t >::GetYC(), TPZPlasticStepPV< YC_t, ER_t >::operator=(), TPZPlasticStepPV< YC_t, ER_t >::Print(), PYBIND11_MODULE(), and TPZPlasticStepPV< YC_t, ER_t >::TPZPlasticStepPV().