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

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

#include <TPZPlasticStep.h>

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

Public Types

typedef YC_t fNYields
 

Public Member Functions

virtual int ClassId () const override
 Define the class id associated with the class. More...
 
 TPZPlasticStep (REAL alpha=0.)
 
 TPZPlasticStep (const TPZPlasticStep &source)
 
TPZPlasticStepoperator= (const TPZPlasticStep &source)
 
virtual const char * Name () const override
 
virtual void Print (std::ostream &out) const override
 
virtual void ApplyStrain (const TPZTensor< REAL > &epsTotal) override
 
void SetOutFile (string outfile)
 
virtual void ApplyStrainComputeSigma (const TPZTensor< REAL > &epsTotal, TPZTensor< REAL > &sigma, TPZFMatrix< REAL > *tangent=NULL) 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
 
void ResetPlasticMem ()
 Reset the plastic memory. More...
 
void SetTensionSign (int s)
 
int SignCorrection () const
 Indicates whether or not to correct Stress/Strain sign. More...
 
TPZPlasticCriterionGetYC () 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 Phi_Internal (const TPZTensor< REAL > &epsTotal, TPZVec< REAL > &phi) const
 Return the value of the yield functions for the given strain Internal Method. More...
 
bool IsStrainElastic (const TPZPlasticState< REAL > &state) const
 Verifies if the proposed epsTotalNp1 is still in the elastic range. More...
 
virtual void SetElasticResponse (TPZElasticResponse &ER) override
 modify the elastic response. Needs to be reimplemented for each instantiation More...
 
virtual TPZElasticResponse GetElasticResponse () const override
 
virtual void SetState (const TPZPlasticState< REAL > &state) override
 Update the damage values. More...
 
virtual void SetUp (const TPZTensor< REAL > &epsTotal)
 Overwrite the current total strain only. More...
 
virtual TPZPlasticState< REAL > GetState () const override
 Retrieve the plastic state variables. More...
 
virtual int IntegrationSteps () const override
 Return the number of plastic steps in the last load step. Zero indicates elastic loading. More...
 
virtual void SetIntegrTol (REAL integrTol)
 Sets the tolerance allowed in the pde integration. More...
 
virtual void SetMinStepSize (REAL minStepSize)
 Sets the minimum loading substep size in the plastic integration. More...
 
virtual REAL IntegrationOverview (TPZVec< REAL > &plastifLen)
 Similar to IntegrationSteps, it returns the plastic parcel of the last loading. 1.0 means that the whole step was plastic, 0.0 means the whole step was elastic. More...
 
virtual TPZPlasticState< REAL > GetState_Internal () const
 Retrieves the plastic state variables - makes no interface sign checks. More...
 
void SetMaterialElasticOrPlastic (int choice=1)
 
void SetResidualTolerance (STATE tol)
 
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...
 
int NumCases ()
 Number of types of residuals. More...
 
void LoadState (TPZFMatrix< REAL > &state)
 LoadState will keep a given state as static variable of the class. More...
 
void ComputeTangent (TPZFMatrix< REAL > &tangent, TPZVec< REAL > &coefs, int icase)
 
void Residual (TPZFMatrix< REAL > &res, int icase)
 
template<>
void SetElasticResponse (TPZElasticResponse &ER)
 
template<>
TPZElasticResponse GetElasticResponse () const
 
- Public Member Functions inherited from TPZPlasticBase
virtual ~TPZPlasticBase ()
 
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...
 
TF_t fTFA
 Object representing the thermodynamical force. More...
 
ER_t fER
 Object representing the elastic response. More...
 
REAL fIntegrTol
 Tolerance desired in the Plastic integration processes. More...
 
int fMaxNewton
 Maximum number of Newton interations allowed in the nonlinear solvers. More...
 
REAL fMinLambda
 Minimum multiplicaton in the Plastic Loop line search. 1.0 avoids line searching; Very Small values do not allow the code to skip out of local minima. More...
 
REAL fMinStepSize
 Minimum fraction of the full load substep proposed accepted in the plastic integration. Too low values may lead to extremely slow integration in some cases while values as high as 1.0 may prevent the plastic integrator error control from adjusting the advisable plastic substeps. Values between 1.e-3 and 1.e-2 are advisable. More...
 

Static Public Attributes

static TPZTensor< REAL > gRefDeform
 

Protected Member Functions

void ApplyStrain_Internal (const TPZTensor< REAL > &epsTotal)
 Imposes the specified strain tensor, evaluating the plastic integration if necessary.
Internal Method. More...
 
void ApplyStrainComputeDep_Internal (const TPZTensor< REAL > &epsTotal, TPZTensor< REAL > &sigma, TPZFMatrix< REAL > &Dep)
 Imposes the specified strain tensor and returns the corresp. stress state and tangent stiffness matrix. Internal Method. More...
 
void ApplyStrainComputeSigma_Internal (const TPZTensor< REAL > &epsTotal, TPZTensor< REAL > &sigma)
 Imposes the specified strain tensor and returns the correspondent stress state. Internal Method. More...
 
void ApplyLoad_Internal (const TPZTensor< REAL > &sigma, TPZTensor< REAL > &epsTotal)
 Attempts to compute an epsTotal value in order to reach an imposed stress state sigma. This methid 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. Internal Method. More...
 
virtual void SetState_Internal (const TPZPlasticState< REAL > &state)
 Updates the damage values - makes no interface sign checks. More...
 
virtual void ProcessStrain (const TPZTensor< REAL > &epsTotal, const EElastoPlastic ep=EAuto)
 Imposes the specified strain tensor and performs plastic integration when necessary. This function creates a new plastic integration history epserimenting the proposed epsTotal. It does not update the current plastic state. More...
 
virtual void ProcessStrainNoSubIncrement (const TPZTensor< REAL > &epsTotal, const EElastoPlastic ep=EAuto)
 Imposes the specified strain tensor and performs plastic integration when necessary. This function DO NOT calls PlasticIntegrate. More...
 
virtual void ProcessLoad (const TPZTensor< REAL > &sigma, const EElastoPlastic ep=EAuto)
 Imposes the specified stress tensor and performs plastic integration when necessary. This function evaluates a newton's method on ProcessStrain until the stress state matches. It does not update the current plastic state. More...
 
virtual void ComputeDep (TPZTensor< REAL > &sigma, TPZFMatrix< REAL > &Dep)
 Evaluates the constitutive matrix (DSigma/DEpsT) based on the data from the plastic integration history without modifying it. More...
 
template<class T >
void ComputePlasticVars (const TPZPlasticState< T > &state_T, TPZTensor< T > &sigma_T, T &A_T) const
 Evaluates the sigma stress tensor and the thermoForceA for use in several pieces of this code. The output stress is elastic, admitting that no plastification occurs. More...
 
REAL FindPointAtYield (const TPZTensor< REAL > &epsTotalNp1, TPZPlasticState< REAL > &stateAtYield) const
 Finds the strain point in the linear path from epsTotalN and towards epsTotalNp1 that matches the yield criterium at at least one plastic surface. Returns as its value the deltaEpsT multiplier. More...
 
template<class T1 , class T2 >
void PlasticResidual (const TPZPlasticState< T1 > &N_T1, TPZPlasticState< T2 > &Np1_T2, const TPZVec< T2 > &delGamma_T2, TPZVec< T2 > &res_T2, REAL &normEpsPErr, int silent=0) const
 
template<class T1 , class T2 >
void PlasticResidualRK (const TPZPlasticState< T1 > &N_T1, TPZPlasticState< T2 > &Np1_T2, const TPZVec< T2 > &delGamma_T2, TPZVec< T2 > &res_T2, REAL &normEpsPErr, int silent=0) const
 Evaluates the residual vector for the plasticity problem RK. More...
 
template<class T1 , class T2 , class TVECTOR >
REAL UpdatePlasticVars (const TPZPlasticState< T1 > &N_T1, TPZPlasticState< T2 > &Np1_T2, TPZVec< T2 > &delGamma_T2, TPZVec< T2 > &res_T2, TVECTOR &Sol_TVECTOR, TPZVec< int > &validEqs, int updateVars=1) const
 Updates the N+1 plastic state variables based on the solution of a Newton's scheme. A very simple line search is performed in order to attempt to guarantee residual drop. More...
 
template<class T >
void InitializePlasticFAD (const TPZPlasticState< REAL > &state, const TPZVec< REAL > &delGamma, TPZPlasticState< T > &state_T, TPZVec< T > &delGamma_T, const int nVars=7+YC_t::NYield) const
 This method copies the REAL variables into FAD variables and intializes the derivatives The nVars variable is usually the number of plastic independent variables. When more independent variables become necessary, set this value accordingly. More...
 
template<class T >
int InitializeValidEqs (TPZVec< T > &res_T, TPZVec< int > &validEqs)
 Initializes the fValidEqs booleans indication whether to consider the plastic surfaces. More...
 
template<class T >
int RemoveInvalidEqs (TPZVec< T > &delGamma_T, TPZVec< T > &res_T, TPZVec< int > &validEqs)
 After a complete plasticLoop, plsatic surface equations related to negative plastic multipliers are discarded. More...
 
void InitialGuess (const TPZPlasticState< REAL > &N, TPZPlasticState< REAL > &Np1, TPZVec< REAL > &delGamma, TPZVec< int > &validEqs)
 Proposes an update to the plastic variables and estimates the relative error comitted in this update. Neither internal variable are used nor changed. In the Np1 variables, EpsT is imposed [in] and the Alpha and EpsP are evaluated. It returns 1 if suceeded of 0 if tolerance not achieved. More...
 
int PlasticLoop (const TPZPlasticState< REAL > &N, TPZPlasticState< REAL > &Np1, TPZVec< REAL > &delGamma, REAL &normEpsPErr, REAL &lambda, TPZVec< int > &validEqs)
 Proposes an update to the plastic variables and estimates the relative error comitted in this update. Neither internal variable are used nor changed. In the Np1 variables, EpsT is imposed [in] and the Alpha and EpsP are evaluated. It returns 1 if suceeded of 0 if tolerance not achieved. More...
 
int PlasticIntegrate (const TPZPlasticState< REAL > &N, TPZPlasticState< REAL > &Np1, const REAL &TolEpsPErr)
 Proposes an update to the plastic variables respecting an integration with error control. Neither internal variable are used nor changed. In the Np1 variables, EpsT is imposed [input] and the Alpha and EpsP are evaluated. More...
 
template<class T1 , class T_VECTOR , class T_MATRIX >
void ExtractTangent (const TPZVec< T1 > &epsRes_FAD, T_VECTOR &ResVal, REAL &resnorm, T_MATRIX &tangent, TPZVec< int > &validEqs, TPZVec< REAL > &pivots, const int precond=1, const int resetInvalidEqs=1)
 Extracts the tangent matrix and residual vector from the FAD variables and according to the preconditioning and fValidEqs booleans. More...
 
template<int N>
void PushPlasticMem (const TPZPlasticState< REAL > &state, const REAL &k, const REAL &lambda, const TPZManVector< REAL, N > &delGamma, const TPZVec< int > &validEqs, const int forceYield)
 Stores the whole content of a plastic integration step in order to allow its further reevaluation. More...
 
template<>
void InitialGuess (const TPZPlasticState< REAL > &N, TPZPlasticState< REAL > &Np1, TPZVec< REAL > &delGamma, TPZVec< int > &validEqs)
 Proposes an update to the plastic variables and estimates the relative error comitted in this update. Neither internal variable are used nor changed. In the Np1 variables, EpsT is imposed [in] and the Alpha and EpsP are evaluated. It returns 1 if suceeded of 0 if tolerance not achieved. More...
 
template<>
void InitialGuess (const TPZPlasticState< REAL > &N, TPZPlasticState< REAL > &Np1, TPZVec< REAL > &delGamma, TPZVec< int > &validEqs)
 
template<>
void InitialGuess (const TPZPlasticState< REAL > &N, TPZPlasticState< REAL > &Np1, TPZVec< REAL > &delGamma, TPZVec< int > &validEqs)
 

Protected Attributes

REAL fResTol
 Residual tolerance accepted in the plastic loop processes. More...
 
TPZPlasticState< REAL > fN
 Plastic State Variables (EpsT, EpsP, Alpha) at the current time step. More...
 
TPZStack< TPZPlasticIntegrMem< REAL, YC_t::NYield > > fPlasticMem
 Stores the plastic evolution in the last evaluated PlasticIntegration call, It includes the N-1 data, the elastic step until yield when it exists, the plastic substeppings and the N step. More...
 
int fMaterialTensionSign
 The tension sign in the convention used in the implementation of the material. More...
 
int fInterfaceTensionSign
 The tension sign in the convention defined by the external user. 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 TF_t, class ER_t>
class TPZPlasticStep< YC_t, TF_t, ER_t >

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

Definition at line 32 of file TPZPlasticStep.h.

Member Typedef Documentation

◆ fNYields

template<class YC_t, class TF_t, class ER_t>
typedef YC_t TPZPlasticStep< YC_t, TF_t, ER_t >::fNYields

Definition at line 115 of file TPZPlasticStep.h.

Constructor & Destructor Documentation

◆ TPZPlasticStep() [1/2]

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

Initialize the plastic material damage variable only

Parameters
[in]alphadamage variable

Definition at line 43 of file TPZPlasticStep.h.

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

◆ TPZPlasticStep() [2/2]

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

Member Function Documentation

◆ ApplyLoad()

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_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 160 of file TPZPlasticStep.cpp.

◆ ApplyLoad_Internal()

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyLoad_Internal ( const TPZTensor< REAL > &  sigma,
TPZTensor< REAL > &  epsTotal 
)
protected

Attempts to compute an epsTotal value in order to reach an imposed stress state sigma. This methid 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. Internal Method.

Parameters
[in]sigmastress tensor
[out]epsTotaldeformation tensor

Definition at line 2660 of file TPZPlasticStep.cpp.

References EForceElastic, EForcePlastic, LOGPZ_DEBUG, and TPZPlasticStep< YC_t, TF_t, ER_t >::SetState_Internal().

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyStrainComputeSigma_Internal().

◆ ApplyStrain()

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_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 117 of file TPZPlasticStep.cpp.

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

◆ ApplyStrain_Internal()

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyStrain_Internal ( const TPZTensor< REAL > &  epsTotal)
protected

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

Parameters
[in]epsTotalImposed total strain tensor

Definition at line 257 of file TPZPlasticStep.cpp.

References LOGPZ_DEBUG, and TPZPlasticStep< YC_t, TF_t, ER_t >::SetState_Internal().

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyStrainComputeSigma_Internal(), and TPZPlasticStep< YC_t, TF_t, ER_t >::GetYC().

◆ ApplyStrainComputeDep()

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_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 151 of file TPZPlasticStep.cpp.

◆ ApplyStrainComputeDep_Internal()

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyStrainComputeDep_Internal ( const TPZTensor< REAL > &  epsTotal,
TPZTensor< REAL > &  sigma,
TPZFMatrix< REAL > &  Dep 
)
protected

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

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

Definition at line 505 of file TPZPlasticStep.cpp.

References LOGPZ_DEBUG.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::GetYC().

◆ ApplyStrainComputeSigma()

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_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

Implements TPZPlasticBase.

Definition at line 124 of file TPZPlasticStep.cpp.

References TPZMatrix< TVar >::Cols(), DebugStop, and TPZMatrix< TVar >::Rows().

◆ ApplyStrainComputeSigma_Internal()

template<class YC_t, class TF_t, class ER_t>
void TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyStrainComputeSigma_Internal ( const TPZTensor< REAL > &  epsTotal,
TPZTensor< REAL > &  sigma 
)
inlineprotected

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

Note
The method ApplyStrainComputeSigma calls Apply Strain followed by an evaluation of the Elastic Response. This method is of very low efficiency because it evaluates the whole ApplyStrain, evaluating sigma internally and discarding it. It evaluates ComputePlasticVars in order to retrieve the value of sigma. This method should be used for test purposes only or pieces of code where efficiency is not important. The methods ApplyStrain and ApplyStrainComputeDep shoud be the most useful implementations.
Parameters
[in]epsTotalImposed total strain tensor
[out]sigmaResultant stress

Definition at line 205 of file TPZPlasticStep.h.

References TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyLoad_Internal(), TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyStrain_Internal(), TPZPlasticStep< YC_t, TF_t, ER_t >::ComputePlasticVars(), TPZPlasticStep< YC_t, TF_t, ER_t >::fPlasticMem, TPZPlasticStep< YC_t, TF_t, ER_t >::GetElasticResponse(), TPZPlasticStep< YC_t, TF_t, ER_t >::GetState(), TPZPlasticStep< YC_t, TF_t, ER_t >::IntegrationSteps(), TPZPlasticStep< YC_t, TF_t, ER_t >::IsStrainElastic(), TPZVec< T >::NElements(), TPZPlasticStep< YC_t, TF_t, ER_t >::Phi(), TPZPlasticStep< YC_t, TF_t, ER_t >::Phi_Internal(), TPZPlasticStep< YC_t, TF_t, ER_t >::SetElasticResponse(), TPZPlasticStep< YC_t, TF_t, ER_t >::SetState(), and TPZPlasticStep< YC_t, TF_t, ER_t >::SetUp().

◆ ClassId()

template<class YC_t , class TF_t , class ER_t >
int TPZPlasticStep< YC_t, TF_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 707 of file TPZPlasticStep.h.

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

◆ ComputeDep()

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_t, ER_t >::ComputeDep ( TPZTensor< REAL > &  sigma,
TPZFMatrix< REAL > &  Dep 
)
protectedvirtual

Evaluates the constitutive matrix (DSigma/DEpsT) based on the data from the plastic integration history without modifying it.

Parameters
[out]sigmaresultant stress tensor
[out]DepIncremental constitutive relation

Definition at line 872 of file TPZPlasticStep.cpp.

References TPZPlasticState< T >::CopyTo(), TPZTensor< T >::CopyTo(), EIncompDim, EOk, EZeroPivot, fastAccessDx(), TPZTensor< T >::fData, LOGPZ_DEBUG, LOGPZ_ERROR, TPZPlasticState< T >::m_eps_t, substruct_tst14.test::status, and TPZDiffMatrix< T >::Substitution().

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ComputeTangent(), TPZPlasticStep< YC_t, TF_t, ER_t >::Residual(), and TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ ComputePlasticVars()

template<class YC_t , class TF_t , class ER_t >
template<class T >
template void TPZPlasticStep< YC_t, TF_t, ER_t >::ComputePlasticVars< REAL > ( const TPZPlasticState< T > &  state_T,
TPZTensor< T > &  sigma_T,
T &  A_T 
) const
protected

Evaluates the sigma stress tensor and the thermoForceA for use in several pieces of this code. The output stress is elastic, admitting that no plastification occurs.

Parameters
[in]state_TPlastic variables state
[out]sigma_Tresultant predicted elastic strain tensor
[out]A_Tresultant thermoForce A

Definition at line 189 of file TPZPlasticStep.cpp.

References TPZTensor< T >::Add(), TPZPlasticState< T >::EpsP(), TPZPlasticState< T >::EpsT(), and TPZPlasticState< T >::VolHardening().

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyStrainComputeSigma_Internal(), and TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ ComputeTangent()

template<class YC_t, class TF_t, class ER_t>
void TPZPlasticStep< YC_t, TF_t, ER_t >::ComputeTangent ( TPZFMatrix< REAL > &  tangent,
TPZVec< REAL > &  coefs,
int  icase 
)
inline

◆ ExtractTangent()

template<class YC_t , class TF_t , class ER_t >
template<class T1 , class T_VECTOR , class T_MATRIX >
void TPZPlasticStep< YC_t, TF_t, ER_t >::ExtractTangent ( const TPZVec< T1 > &  epsRes_FAD,
T_VECTOR &  ResVal,
REAL &  resnorm,
T_MATRIX &  tangent,
TPZVec< int > &  validEqs,
TPZVec< REAL > &  pivots,
const int  precond = 1,
const int  resetInvalidEqs = 1 
)
protected

Extracts the tangent matrix and residual vector from the FAD variables and according to the preconditioning and fValidEqs booleans.

Parameters
[in]epsRes_FADResidual of plastic eqs in FAD fashion
[out]ResValResidual of plastic eqs in vector fashion, preconditioned if requested
[out]resnormL2 norm of unpreconditioned ResVal
[out]tangentResidual Jacobian in matrix fashion, preconditioned if requested
[in]validEqsboolean indicating the valid plastic flow eqs
[in]precondBoolean indicating whether or not to precondition the matrix/residual vector
[in]resetInvalidEqsResets the plastic surfaces assigned to be discarded

Definition at line 1956 of file TPZPlasticStep.cpp.

References DebugStop, fabs, LOGPZ_DEBUG, pow(), TPZVec< T >::size(), sqrt, and TPZExtractVal::val().

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ FindPointAtYield()

template<class YC_t , class TF_t , class ER_t >
REAL TPZPlasticStep< YC_t, TF_t, ER_t >::FindPointAtYield ( const TPZTensor< REAL > &  epsTotalNp1,
TPZPlasticState< REAL > &  stateAtYield 
) const
protected

Finds the strain point in the linear path from epsTotalN and towards epsTotalNp1 that matches the yield criterium at at least one plastic surface. Returns as its value the deltaEpsT multiplier.

Parameters
[in]epsTotalNp1Proposed total strain
[out]stateAtYieldPlastic state at yield of at least one plastic surface.

Definition at line 1281 of file TPZPlasticStep.cpp.

References TPZTensor< T >::Add(), TPZPlasticState< T >::CopyTo(), TPZTensor< T >::CopyTo(), DebugStop, fabs, LOGPZ_DEBUG, LOGPZ_WARN, TPZPlasticState< T >::m_eps_t, TPZExtractVal::val(), and val().

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ GetElasticResponse() [1/2]

template<class YC_t , class TF_t , class ER_t >
TPZElasticResponse TPZPlasticStep< YC_t, TF_t, ER_t >::GetElasticResponse ( ) const
overridevirtual

◆ GetElasticResponse() [2/2]

Implements TPZPlasticBase.

Definition at line 2807 of file TPZPlasticStep.cpp.

References DebugStop.

◆ GetState()

template<class YC_t , class TF_t , class ER_t >
TPZPlasticState< REAL > TPZPlasticStep< YC_t, TF_t, ER_t >::GetState ( ) const
overridevirtual

Retrieve the plastic state variables.

Implements TPZPlasticBase.

Definition at line 93 of file TPZPlasticStep.cpp.

References TPZPlasticState< T >::m_eps_p, and TPZPlasticState< T >::m_eps_t.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyStrainComputeSigma_Internal().

◆ GetState_Internal()

template<class YC_t , class TF_t , class ER_t >
TPZPlasticState< REAL > TPZPlasticStep< YC_t, TF_t, ER_t >::GetState_Internal ( ) const
virtual

Retrieves the plastic state variables - makes no interface sign checks.

Definition at line 69 of file TPZPlasticStep.cpp.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ GetYC()

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

◆ InitialGuess() [1/4]

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_t, ER_t >::InitialGuess ( const TPZPlasticState< REAL > &  N,
TPZPlasticState< REAL > &  Np1,
TPZVec< REAL > &  delGamma,
TPZVec< int > &  valideqs 
)
protected

Proposes an update to the plastic variables and estimates the relative error comitted in this update. Neither internal variable are used nor changed. In the Np1 variables, EpsT is imposed [in] and the Alpha and EpsP are evaluated. It returns 1 if suceeded of 0 if tolerance not achieved.

Parameters
N[in] Plastic state variables at time N
Np1[in/out] Plastic state variables at time N+1
delGamma[in/out] plastic multipliers

Definition at line 1484 of file TPZPlasticStep.cpp.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ InitialGuess() [2/4]

template<>
void TPZPlasticStep< TPZYCSandlerDimaggio, TPZSandlerDimaggioThermoForceA, TPZElasticResponse >::InitialGuess ( const TPZPlasticState< REAL > &  N,
TPZPlasticState< REAL > &  Np1,
TPZVec< REAL > &  delGamma,
TPZVec< int > &  validEqs 
)
protected

Proposes an update to the plastic variables and estimates the relative error comitted in this update. Neither internal variable are used nor changed. In the Np1 variables, EpsT is imposed [in] and the Alpha and EpsP are evaluated. It returns 1 if suceeded of 0 if tolerance not achieved.

Parameters
N[in] Plastic state variables at time N
Np1[in/out] Plastic state variables at time N+1
delGamma[in/out] plastic multipliers

Definition at line 2879 of file TPZPlasticStep.cpp.

References TPZTensor< T >::Add(), TPZVec< T >::Fill(), LOGPZ_DEBUG, TPZPlasticState< T >::m_eps_p, TPZPlasticState< T >::m_eps_t, and TPZPlasticState< T >::m_hardening.

◆ InitialGuess() [3/4]

template<>
void TPZPlasticStep< TPZYCSandlerDimaggioL, TPZSandlerDimaggioThermoForceA, TPZElasticResponse >::InitialGuess ( const TPZPlasticState< REAL > &  N,
TPZPlasticState< REAL > &  Np1,
TPZVec< REAL > &  delGamma,
TPZVec< int > &  validEqs 
)
protected

◆ InitialGuess() [4/4]

template<>
void TPZPlasticStep< TPZYCSandlerDimaggioL2, TPZSandlerDimaggioThermoForceA, TPZElasticResponse >::InitialGuess ( const TPZPlasticState< REAL > &  N,
TPZPlasticState< REAL > &  Np1,
TPZVec< REAL > &  delGamma,
TPZVec< int > &  validEqs 
)
protected

◆ InitializePlasticFAD()

template<class YC_t , class TF_t , class ER_t >
template<class T >
void TPZPlasticStep< YC_t, TF_t, ER_t >::InitializePlasticFAD ( const TPZPlasticState< REAL > &  state,
const TPZVec< REAL > &  delGamma,
TPZPlasticState< T > &  state_T,
TPZVec< T > &  delGamma_T,
const int  nVars = 7 + YC_t::NYield 
) const
protected

This method copies the REAL variables into FAD variables and intializes the derivatives The nVars variable is usually the number of plastic independent variables. When more independent variables become necessary, set this value accordingly.

Parameters
[in]statePlastic state variables
[in]delGammaPlastic multiplier
[out]state_TPlastic state variables
[out]delGamma_TPlastic multiplier
[in]nVarsnumber of independent variables

Definition at line 2400 of file TPZPlasticStep.cpp.

References TPZPlasticState< T >::CopyTo(), TPZPlasticState< T >::m_eps_p, and TPZPlasticState< T >::m_hardening.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ InitializeValidEqs()

template<class YC_t , class TF_t , class ER_t >
template<class T >
int TPZPlasticStep< YC_t, TF_t, ER_t >::InitializeValidEqs ( TPZVec< T > &  res_T,
TPZVec< int > &  validEqs 
)
protected

Initializes the fValidEqs booleans indication whether to consider the plastic surfaces.

Parameters
[in]res_TValid equations are only those leading to negative phi's
[out]validEqsValidated equations

Definition at line 1862 of file TPZPlasticStep.cpp.

References LOGPZ_DEBUG, TPZVec< T >::NElements(), TPZVec< T >::Resize(), and TPZExtractVal::val().

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ IntegrationOverview()

template<class YC_t , class TF_t , class ER_t >
REAL TPZPlasticStep< YC_t, TF_t, ER_t >::IntegrationOverview ( TPZVec< REAL > &  plastifLen)
virtual

Similar to IntegrationSteps, it returns the plastic parcel of the last loading. 1.0 means that the whole step was plastic, 0.0 means the whole step was elastic.

Parameters
plastifLen[out] returns the plastified lenght relative to the whole load length in which each yield function took part. 1.0 means that that specific yield function was ruling the plastification process in the whole loading step and 0.0 that that yield function did not take part in the plastification process. Each result of plastifLen may vary in the range 0.0 ~ 1.0 and the summation of all elements may vary in the range 0.0 ~ number_of_yield_functions, because more than one yield function may plastify simultaneously in the case of a subdifferentiation in non-smooth yield function grouping.

Definition at line 2736 of file TPZPlasticStep.cpp.

References TPZVec< T >::Fill().

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ IntegrationSteps()

template<class YC_t , class TF_t , class ER_t >
int TPZPlasticStep< YC_t, TF_t, ER_t >::IntegrationSteps ( ) const
overridevirtual

Return the number of plastic steps in the last load step. Zero indicates elastic loading.

Reimplemented from TPZPlasticBase.

Definition at line 49 of file TPZPlasticStep.cpp.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyStrainComputeSigma_Internal().

◆ IsStrainElastic()

template<class YC_t , class TF_t , class ER_t >
bool TPZPlasticStep< YC_t, TF_t, ER_t >::IsStrainElastic ( const TPZPlasticState< REAL > &  state) const

Verifies if the proposed epsTotalNp1 is still in the elastic range.

Parameters
[in]statePlastic state proposed

Definition at line 203 of file TPZPlasticStep.cpp.

References TPZPlasticState< T >::EpsT(), and LOGPZ_DEBUG.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyStrainComputeSigma_Internal().

◆ LoadState()

template<class YC_t, class TF_t, class ER_t>
void TPZPlasticStep< YC_t, TF_t, ER_t >::LoadState ( TPZFMatrix< REAL > &  state)
inline

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

Definition at line 640 of file TPZPlasticStep.h.

◆ Name()

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

Implements TPZPlasticBase.

Definition at line 82 of file TPZPlasticStep.h.

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

◆ NumCases()

template<class YC_t, class TF_t, class ER_t>
int TPZPlasticStep< YC_t, TF_t, ER_t >::NumCases ( )
inline

Number of types of residuals.

Definition at line 632 of file TPZPlasticStep.h.

◆ operator=()

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

◆ Phi()

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_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 168 of file TPZPlasticStep.cpp.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyStrainComputeSigma_Internal().

◆ Phi_Internal()

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_t, ER_t >::Phi_Internal ( const TPZTensor< REAL > &  epsTotal,
TPZVec< REAL > &  phi 
) const
virtual

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

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

return the value of the yield function for the given strain

Definition at line 2631 of file TPZPlasticStep.cpp.

References TPZPlasticState< T >::m_eps_t.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyStrainComputeSigma_Internal().

◆ PlasticIntegrate()

template<class YC_t , class TF_t , class ER_t >
int TPZPlasticStep< YC_t, TF_t, ER_t >::PlasticIntegrate ( const TPZPlasticState< REAL > &  N,
TPZPlasticState< REAL > &  Np1,
const REAL &  TolEpsPErr 
)
protected

Proposes an update to the plastic variables respecting an integration with error control. Neither internal variable are used nor changed. In the Np1 variables, EpsT is imposed [input] and the Alpha and EpsP are evaluated.

Parameters
N[in] Plastic state variables at time N
Np1[in/out] Plastic state variables at time N+1
TolEpsPErr[in] relative error deltaEpsP/deltaEpsTotal norm to respect

Definition at line 1760 of file TPZPlasticStep.cpp.

References TPZTensor< T >::Add(), TPZPlasticState< T >::EpsT(), LOGPZ_DEBUG, TPZPlasticState< T >::m_eps_p, TPZPlasticState< T >::m_eps_t, TPZPlasticState< T >::m_hardening, and pow().

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ PlasticLoop()

template<class YC_t , class TF_t , class ER_t >
int TPZPlasticStep< YC_t, TF_t, ER_t >::PlasticLoop ( const TPZPlasticState< REAL > &  N,
TPZPlasticState< REAL > &  Np1,
TPZVec< REAL > &  delGamma,
REAL &  normEpsPErr,
REAL &  lambda,
TPZVec< int > &  validEqs 
)
protected

Proposes an update to the plastic variables and estimates the relative error comitted in this update. Neither internal variable are used nor changed. In the Np1 variables, EpsT is imposed [in] and the Alpha and EpsP are evaluated. It returns 1 if suceeded of 0 if tolerance not achieved.

Parameters
N[in] Plastic state variables at time N
Np1[in/out] Plastic state variables at time N+1
delGamma[in/out] plastic multipliers
normEpsPErr[out] estimated norm of the relative error deltaEpsP/deltaEpsTotal
lambda[out] Line search multiplier
validEqs[out] Valid set of plastic flow eqs

Definition at line 1494 of file TPZPlasticStep.cpp.

References TPZTensor< T >::Add(), TPZPlasticState< T >::CopyTo(), ELU, EMathematicaInput, LOGPZ_DEBUG, LOGPZ_WARN, TPZPlasticState< T >::m_eps_p, TPZPlasticState< T >::m_eps_t, TPZPlasticState< T >::m_hardening, TPZMatrix< TVar >::Print(), TPZTensor< T >::Print(), TPZStepSolver< TVar >::SetDirect(), TPZVec< T >::size(), TPZStepSolver< TVar >::Solve(), and val().

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ PlasticResidual()

template<class YC_t , class TF_t , class ER_t >
template<class T1 , class T2 >
template void TPZPlasticStep< YC_t, TF_t, ER_t >::PlasticResidual< REAL, TFad< 14, REAL > > ( const TPZPlasticState< T1 > &  N_T1,
TPZPlasticState< T2 > &  Np1_T2,
const TPZVec< T2 > &  delGamma_T2,
TPZVec< T2 > &  res_T2,
REAL &  normEpsPErr,
int  silent = 0 
) const
protected

Evaluates the residual vector for the plasticity problem

Parameters
[in]N_T1Plastic state variables at the time N
[in]Np1_T2Plastic state variables at the time N+1
[in]delGamma_T2plastic multipliers, one for each yield function
[out]res_T2computed residual
[out]normEpsPErrnorm of the estimation of the relative plastic strain error
[in]silentindicates whether or not to generate Log4cxx logs The template parameter will be either REAL or a FAD parameter

Definition at line 2062 of file TPZPlasticStep.cpp.

References TPZTensor< T >::Add(), TPZTensor< T >::fData, TPZTensor< T >::Norm(), and TPZExtractVal::val().

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ PlasticResidualRK()

template<class YC_t , class TF_t , class ER_t >
template<class T1 , class T2 >
void TPZPlasticStep< YC_t, TF_t, ER_t >::PlasticResidualRK ( const TPZPlasticState< T1 > &  N_T1,
TPZPlasticState< T2 > &  Np1_T2,
const TPZVec< T2 > &  delGamma_T2,
TPZVec< T2 > &  res_T2,
REAL &  normEpsPErr,
int  silent = 0 
) const
protected

Evaluates the residual vector for the plasticity problem RK.

Parameters
[in]N_T1Plastic state variables at the time N
[in]Np1_T2Plastic state variables at the time N+1
[in]delGamma_T2plastic multipliers, one for each yield function
[out]res_T2computed residual
[out]normEpsPErrnorm of the estimation of the relative plastic strain error
[in]silentindicates whether or not to generate Log4cxx logs The template parameter will be either REAL or a FAD parameter

Definition at line 2184 of file TPZPlasticStep.cpp.

References TPZTensor< T >::Add(), TPZTensor< T >::fData, LOGPZ_DEBUG, TPZTensor< T >::Norm(), and TPZExtractVal::val().

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ Print()

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

◆ ProcessLoad()

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_t, ER_t >::ProcessLoad ( const TPZTensor< REAL > &  sigma,
const EElastoPlastic  ep = EAuto 
)
protectedvirtual

Imposes the specified stress tensor and performs plastic integration when necessary. This function evaluates a newton's method on ProcessStrain until the stress state matches. It does not update the current plastic state.

Parameters
sigmaImposed total strain tensor
epType indicating if it is elastic or plastic

DEBUG DEBUG

Definition at line 2425 of file TPZPlasticStep.cpp.

References EAuto, ELU, TPZTensor< T >::fData, LOGPZ_DEBUG, LOGPZ_WARN, pow(), TPZMatrix< TVar >::Print(), and sqrt.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ ProcessStrain()

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_t, ER_t >::ProcessStrain ( const TPZTensor< REAL > &  epsTotal,
const EElastoPlastic  ep = EAuto 
)
protectedvirtual

Imposes the specified strain tensor and performs plastic integration when necessary. This function creates a new plastic integration history epserimenting the proposed epsTotal. It does not update the current plastic state.

Parameters
epType indicating if it is elastic or plastic
epsTotalImposed total strain tensor

Definition at line 419 of file TPZPlasticStep.cpp.

References TPZTensor< T >::Add(), EAuto, EForceElastic, EForcePlastic, TPZPlasticState< T >::EpsT(), LOGPZ_DEBUG, TPZPlasticState< T >::m_eps_p, and TPZPlasticState< T >::m_eps_t.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ComputeTangent(), TPZPlasticStep< YC_t, TF_t, ER_t >::Residual(), and TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ ProcessStrainNoSubIncrement()

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_t, ER_t >::ProcessStrainNoSubIncrement ( const TPZTensor< REAL > &  epsTotal,
const EElastoPlastic  ep = EAuto 
)
protectedvirtual

Imposes the specified strain tensor and performs plastic integration when necessary. This function DO NOT calls PlasticIntegrate.

Parameters
epsTotalImposed total strain tensor
epType indicating if it is elastic or plastic

Definition at line 293 of file TPZPlasticStep.cpp.

References TPZTensor< T >::Add(), EAuto, EForceElastic, EForcePlastic, TPZPlasticState< T >::EpsT(), TPZTensor< T >::fData, LOGPZ_DEBUG, TPZPlasticState< T >::m_eps_p, TPZPlasticState< T >::m_eps_t, pow(), test::res, and sqrt.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ PushPlasticMem()

template<class YC_t , class TF_t , class ER_t >
template<int N>
void TPZPlasticStep< YC_t, TF_t, ER_t >::PushPlasticMem ( const TPZPlasticState< REAL > &  state,
const REAL &  k,
const REAL &  lambda,
const TPZManVector< REAL, N > &  delGamma,
const TPZVec< int > &  validEqs,
const int  forceYield 
)
protected

Stores the whole content of a plastic integration step in order to allow its further reevaluation.

Parameters
state[in] plastic state variables
k[in] deltaEpsTotal multiplier
lambda[in] line search multiplier in the newton's method within plasticloop
delGamma[in] Plastic flow multiplier
validEqs[in] valid equations involved in one step of the integration process
forceYieldforce id

Definition at line 2647 of file TPZPlasticStep.cpp.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ Read()

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

read objects from the stream

Implements TPZPlasticBase.

Definition at line 2772 of file TPZPlasticStep.cpp.

References DebugStop, and TPZStream::Read().

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetResidualTolerance().

◆ RemoveInvalidEqs()

template<class YC_t , class TF_t , class ER_t >
template<class T >
int TPZPlasticStep< YC_t, TF_t, ER_t >::RemoveInvalidEqs ( TPZVec< T > &  delGamma_T,
TPZVec< T > &  res_T,
TPZVec< int > &  validEqs 
)
protected

After a complete plasticLoop, plsatic surface equations related to negative plastic multipliers are discarded.

Parameters
delGamma_Tplastic multiplier
res_TValid equations are only those leading to negative phi's
validEqsValidated equations

Definition at line 1894 of file TPZPlasticStep.cpp.

References LOGPZ_DEBUG, TPZVec< T >::Resize(), and TPZExtractVal::val().

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ ResetPlasticMem()

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

◆ Residual()

template<class YC_t, class TF_t, class ER_t>
void TPZPlasticStep< YC_t, TF_t, ER_t >::Residual ( TPZFMatrix< REAL > &  res,
int  icase 
)
inline

◆ SetElasticResponse() [1/2]

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

modify the elastic response. Needs to be reimplemented for each instantiation

Implements TPZPlasticBase.

Definition at line 2792 of file TPZPlasticStep.cpp.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyStrainComputeSigma_Internal().

◆ SetElasticResponse() [2/2]

template<>
void TPZPlasticStep< TPZYCLadeKim, TPZLadeKimThermoForceA, TPZLadeNelsonElasticResponse >::SetElasticResponse ( TPZElasticResponse ER)
virtual

Implements TPZPlasticBase.

Definition at line 2797 of file TPZPlasticStep.cpp.

References DebugStop.

◆ SetIntegrTol()

template<class YC_t, class TF_t, class ER_t>
virtual void TPZPlasticStep< YC_t, TF_t, ER_t >::SetIntegrTol ( REAL  integrTol)
inlinevirtual

Sets the tolerance allowed in the pde integration.

Definition at line 277 of file TPZPlasticStep.h.

References TPZPlasticStep< YC_t, TF_t, ER_t >::fIntegrTol.

◆ SetMaterialElasticOrPlastic()

template<class YC_t, class TF_t, class ER_t>
void TPZPlasticStep< YC_t, TF_t, ER_t >::SetMaterialElasticOrPlastic ( int  choice = 1)

◆ SetMinStepSize()

template<class YC_t, class TF_t, class ER_t>
virtual void TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize ( REAL  minStepSize)
inlinevirtual

◆ SetOutFile()

template<class YC_t, class TF_t, class ER_t>
void TPZPlasticStep< YC_t, TF_t, ER_t >::SetOutFile ( string  outfile)

◆ SetResidualTolerance()

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

◆ SetState()

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

Update the damage values.

Parameters
[in]statePlastic state proposed

Implements TPZPlasticBase.

Definition at line 74 of file TPZPlasticStep.cpp.

References LOGPZ_DEBUG, and TPZPlasticState< T >::m_eps_p.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyStrainComputeSigma_Internal().

◆ SetState_Internal()

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_t, ER_t >::SetState_Internal ( const TPZPlasticState< REAL > &  state)
protectedvirtual

Updates the damage values - makes no interface sign checks.

Parameters
[in]statePlastic state proposed

Definition at line 54 of file TPZPlasticStep.cpp.

References LOGPZ_DEBUG, and TPZPlasticState< T >::m_eps_p.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyLoad_Internal(), TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyStrain_Internal(), and TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ SetTensionSign()

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_t, ER_t >::SetTensionSign ( int  s)

Defines whether the tension/extension sign is desired by the external user.

Parameters
s[in] sign (1 or -1)

Definition at line 178 of file TPZPlasticStep.cpp.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ResetPlasticMem().

◆ SetUp()

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_t, ER_t >::SetUp ( const TPZTensor< REAL > &  epsTotal)
virtual

Overwrite the current total strain only.

Parameters
[in]epsTotalStrain

Definition at line 103 of file TPZPlasticStep.cpp.

References LOGPZ_DEBUG.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyStrainComputeSigma_Internal().

◆ SignCorrection()

template<class YC_t , class TF_t , class ER_t >
int TPZPlasticStep< YC_t, TF_t, ER_t >::SignCorrection ( ) const

Indicates whether or not to correct Stress/Strain sign.

Definition at line 183 of file TPZPlasticStep.cpp.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ResetPlasticMem().

◆ UpdatePlasticVars()

template<class YC_t , class TF_t , class ER_t >
template<class T1 , class T2 , class TVECTOR >
REAL TPZPlasticStep< YC_t, TF_t, ER_t >::UpdatePlasticVars ( const TPZPlasticState< T1 > &  N_T1,
TPZPlasticState< T2 > &  Np1_T2,
TPZVec< T2 > &  delGamma_T2,
TPZVec< T2 > &  res_T2,
TVECTOR &  Sol_TVECTOR,
TPZVec< int > &  validEqs,
int  updateVars = 1 
) const
protected

Updates the N+1 plastic state variables based on the solution of a Newton's scheme. A very simple line search is performed in order to attempt to guarantee residual drop.

Parameters
[in]N_T1Plastic state variables at time N
[out]Np1_T2Proposed plastic state variables at time Np1
[in]delGamma_T2plastic multipliers, one for each yield function
[in]res_T2computed residual
[in]Sol_TVECTOROpposite (in sign) direction of residual drop - results from Newton's scheme
[in]validEqsIndicates the equations not to use in residual norm computations
[in]updateVarswhen 1, the Np1_T2 variables return updated, otherwise untouched. It is important to set it to 0 when the sol vector contains derivatives

Definition at line 2322 of file TPZPlasticStep.cpp.

References TPZPlasticState< T >::CopyTo(), TPZTensor< T >::fData, LOGPZ_DEBUG, TPZPlasticState< T >::m_eps_p, TPZPlasticState< T >::m_hardening, pow(), test::res, sdot(), and TPZExtractVal::val().

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize().

◆ Write()

template<class YC_t , class TF_t , class ER_t >
void TPZPlasticStep< YC_t, TF_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 2754 of file TPZPlasticStep.cpp.

References DebugStop, and TPZStream::Write().

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::SetResidualTolerance().

Member Data Documentation

◆ fER

template<class YC_t, class TF_t, class ER_t>
ER_t TPZPlasticStep< YC_t, TF_t, ER_t >::fER

◆ fIntegrTol

template<class YC_t, class TF_t, class ER_t>
REAL TPZPlasticStep< YC_t, TF_t, ER_t >::fIntegrTol

◆ fInterfaceTensionSign

template<class YC_t, class TF_t, class ER_t>
int TPZPlasticStep< YC_t, TF_t, ER_t >::fInterfaceTensionSign
protected

The tension sign in the convention defined by the external user.

Definition at line 621 of file TPZPlasticStep.h.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::operator=(), and TPZPlasticStep< YC_t, TF_t, ER_t >::TPZPlasticStep().

◆ fMaterialTensionSign

template<class YC_t, class TF_t, class ER_t>
int TPZPlasticStep< YC_t, TF_t, ER_t >::fMaterialTensionSign
protected

The tension sign in the convention used in the implementation of the material.

Definition at line 618 of file TPZPlasticStep.h.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::operator=(), and TPZPlasticStep< YC_t, TF_t, ER_t >::TPZPlasticStep().

◆ fMaxNewton

template<class YC_t, class TF_t, class ER_t>
int TPZPlasticStep< YC_t, TF_t, ER_t >::fMaxNewton

Maximum number of Newton interations allowed in the nonlinear solvers.

Definition at line 588 of file TPZPlasticStep.h.

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

◆ fMinLambda

template<class YC_t, class TF_t, class ER_t>
REAL TPZPlasticStep< YC_t, TF_t, ER_t >::fMinLambda

Minimum multiplicaton in the Plastic Loop line search. 1.0 avoids line searching; Very Small values do not allow the code to skip out of local minima.

Definition at line 594 of file TPZPlasticStep.h.

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

◆ fMinStepSize

template<class YC_t, class TF_t, class ER_t>
REAL TPZPlasticStep< YC_t, TF_t, ER_t >::fMinStepSize

Minimum fraction of the full load substep proposed accepted in the plastic integration. Too low values may lead to extremely slow integration in some cases while values as high as 1.0 may prevent the plastic integrator error control from adjusting the advisable plastic substeps. Values between 1.e-3 and 1.e-2 are advisable.

Definition at line 603 of file TPZPlasticStep.h.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::operator=(), TPZPlasticStep< YC_t, TF_t, ER_t >::SetMinStepSize(), and TPZPlasticStep< YC_t, TF_t, ER_t >::TPZPlasticStep().

◆ fN

template<class YC_t, class TF_t, class ER_t>
TPZPlasticState<REAL> TPZPlasticStep< YC_t, TF_t, ER_t >::fN
protected

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

Definition at line 608 of file TPZPlasticStep.h.

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

◆ fPlasticMem

template<class YC_t, class TF_t, class ER_t>
TPZStack< TPZPlasticIntegrMem<REAL, YC_t::NYield> > TPZPlasticStep< YC_t, TF_t, ER_t >::fPlasticMem
protected

Stores the plastic evolution in the last evaluated PlasticIntegration call, It includes the N-1 data, the elastic step until yield when it exists, the plastic substeppings and the N step.

Definition at line 615 of file TPZPlasticStep.h.

Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ApplyStrainComputeSigma_Internal(), TPZPlasticStep< YC_t, TF_t, ER_t >::operator=(), TPZPlasticStep< YC_t, TF_t, ER_t >::Print(), TPZPlasticStep< YC_t, TF_t, ER_t >::ResetPlasticMem(), and TPZPlasticStep< YC_t, TF_t, ER_t >::TPZPlasticStep().

◆ fResTol

template<class YC_t, class TF_t, class ER_t>
REAL TPZPlasticStep< YC_t, TF_t, ER_t >::fResTol
protected

◆ fTFA

template<class YC_t, class TF_t, class ER_t>
TF_t TPZPlasticStep< YC_t, TF_t, ER_t >::fTFA

◆ fYC

template<class YC_t, class TF_t, class ER_t>
YC_t TPZPlasticStep< YC_t, TF_t, ER_t >::fYC

◆ gRefDeform

template<class YC_t, class TF_t, class ER_t>
TPZTensor< REAL > TPZPlasticStep< YC_t, TF_t, ER_t >::gRefDeform
static

Definition at line 637 of file TPZPlasticStep.h.


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