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

#include <TPZLadeKim.h>

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

Public Types

enum  { NYield }
 

Public Member Functions

 TPZLadeKim ()
 
 TPZLadeKim (const TPZLadeKim &source)
 
TPZLadeKimoperator= (const TPZLadeKim &source)
 
virtual const char * Name () const override
 
void SetUp (REAL poisson, REAL M, REAL lambda, REAL a, REAL m, REAL neta1, REAL ksi2, REAL mu, REAL C, REAL p, REAL h, REAL alpha, REAL pa)
 
virtual void SetUp (const TPZTensor< REAL > &epsTotal) override
 
virtual void Print (std::ostream &out) const override
 
int ClassId () const override
 
void Write (TPZStream &buf, int withclassid) const override
 
void Read (TPZStream &buf, void *context) override
 
virtual void SetState (const TPZPlasticState< REAL > &state) override
 
virtual TPZPlasticState< REAL > GetState () const override
 
virtual void ApplyLoad (const TPZTensor< REAL > &sigma, TPZTensor< REAL > &epsTotal) override
 
virtual void ApplyStrain (const TPZTensor< REAL > &epsTotal) override
 
virtual void ApplyStrainComputeDep (const TPZTensor< REAL > &epsTotal, TPZTensor< REAL > &sigma, TPZFMatrix< REAL > &Dep) override
 
virtual void ApplyStrainComputeSigma (const TPZTensor< REAL > &epsTotal, TPZTensor< REAL > &sigma, TPZFMatrix< REAL > *tangent=NULL) override
 
virtual void Phi (const TPZTensor< REAL > &epsTotal, TPZVec< REAL > &phi) const override
 
int NumCases ()
 
void LoadState (TPZFMatrix< REAL > &state)
 
void ComputeTangent (TPZFMatrix< REAL > &tangent, TPZVec< REAL > &, int icase)
 
void Residual (TPZFMatrix< REAL > &res, int icase)
 
virtual int GetNYield () const
 

Static Public Member Functions

static void PlainConcrete (TPZLadeKim &material)
 
static void PlainConcreteMPa (TPZLadeKim &material)
 
static void LooseSacrRiverSand (TPZLadeKim &material)
 
static void DenseSacrRiverSand (TPZLadeKim &material)
 
static void FineSilicaSand (TPZLadeKim &material)
 
static void FineSilicaSandPaperIII (TPZLadeKim &material)
 
static void LooseSantaMonicaBeachSand (TPZLadeKim &material)
 
static void CheckConv ()
 

Static Public Attributes

static TPZManVector< REAL, 6+6+1+TPZYCLadeKim::NYieldgRefResidual
 

Private Attributes

REAL faPa
 
TPZPlasticState< REAL > fInitialEps
 

Detailed Description

This class implements the LADE KIM constitutive model comprised of a LadeKim Plastic flow rule and yield criterium and of a LadeNelson elastic response. The initialization takes care of ensuring that the starting plastic state is consistent with the starting stress state (unstressed) Because of some numerical instabilities presented by this model, the first steps in loading a material may lead to unexpected problems, generally leading to invalid numerical evaluations and NotANumbers. To avoid this, it is suggested that the material be loaded with low stress state (let's say, 0.001 strain hydrostatic) with error tolerances of the same magnitude. Greater values for these variales may lead to undesired integration deviations and values lower night cause the integration to crash. after this first step any integration tolerance and strain increment sizes might be used. This problem is likely to be related to the fact that the elastic response and the plastic flow rules are singular at null stresses.

Definition at line 39 of file TPZLadeKim.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
NYield 

Definition at line 43 of file TPZLadeKim.h.

Constructor & Destructor Documentation

◆ TPZLadeKim() [1/2]

TPZLadeKim::TPZLadeKim ( )
inline

Definition at line 48 of file TPZLadeKim.h.

◆ TPZLadeKim() [2/2]

TPZLadeKim::TPZLadeKim ( const TPZLadeKim source)
inline

Definition at line 54 of file TPZLadeKim.h.

References faPa, and fInitialEps.

Member Function Documentation

◆ ApplyLoad()

virtual void TPZLadeKim::ApplyLoad ( const TPZTensor< REAL > &  sigma,
TPZTensor< REAL > &  epsTotal 
)
inlineoverridevirtual

Computes the strain tensor as a function of the stress state. This function returns the inverse of function void Sigma(...) using a Newton's scheme. It first performs the Stress translation to remove the effect of apparent cohesion, making it possible to use the cohesionless Lade Kim model simulating the cohesion effect.

Parameters
[in]sigmastress tensor
[out]epsTotaldeformation tensor

Definition at line 187 of file TPZLadeKim.h.

References TPZTensor< T >::Add(), faPa, fInitialEps, TPZTensor< T >::Identity(), and TPZPlasticState< T >::m_eps_t.

Referenced by LadeKimTriaxialLooseSand(), LKBiaxialTest(), LKFineSilicaLoadTest(), LKIsotropicCompression(), LKKoCompressionLoadTest(), LKLoadingTest(), and SetUp().

◆ ApplyStrain()

virtual void TPZLadeKim::ApplyStrain ( const TPZTensor< REAL > &  epsTotal)
inlineoverridevirtual

Load the converged solution, updating the damage variables

Definition at line 203 of file TPZLadeKim.h.

References TPZTensor< T >::Add(), fInitialEps, and TPZPlasticState< T >::m_eps_t.

◆ ApplyStrainComputeDep()

virtual void TPZLadeKim::ApplyStrainComputeDep ( const TPZTensor< REAL > &  epsTotal,
TPZTensor< REAL > &  sigma,
TPZFMatrix< REAL > &  Dep 
)
inlineoverridevirtual

Load the converged solution, updating the damage variables

Definition at line 214 of file TPZLadeKim.h.

References TPZTensor< T >::Add(), faPa, fInitialEps, TPZTensor< T >::Identity(), and TPZPlasticState< T >::m_eps_t.

Referenced by LKBiaxialTest(), LKKoCompressionLoadTest(), LKLoadingTest(), and TPZPlasticTest::UndocumentedTest2().

◆ ApplyStrainComputeSigma()

virtual void TPZLadeKim::ApplyStrainComputeSigma ( const TPZTensor< REAL > &  epsTotal,
TPZTensor< REAL > &  sigma,
TPZFMatrix< REAL > *  tangent = NULL 
)
inlineoverridevirtual

◆ CheckConv()

static void TPZLadeKim::CheckConv ( )
inlinestatic

◆ ClassId()

int TPZLadeKim::ClassId ( ) const
override

Definition at line 4 of file TPZLadeKim.cpp.

References Hash().

Referenced by Print().

◆ ComputeTangent()

void TPZLadeKim::ComputeTangent ( TPZFMatrix< REAL > &  tangent,
TPZVec< REAL > &  ,
int  icase 
)
inline

◆ DenseSacrRiverSand()

static void TPZLadeKim::DenseSacrRiverSand ( TPZLadeKim material)
inlinestatic

Definition at line 383 of file TPZLadeKim.h.

References h, m, and SetUp().

Referenced by TPZPlasticTest::CreatePlasticModel(), LKBiaxialTest(), and TPZPlasticTest::UndocumentedTest2().

◆ FineSilicaSand()

static void TPZLadeKim::FineSilicaSand ( TPZLadeKim material)
inlinestatic

◆ FineSilicaSandPaperIII()

static void TPZLadeKim::FineSilicaSandPaperIII ( TPZLadeKim material)
inlinestatic

Definition at line 439 of file TPZLadeKim.h.

References h, m, and SetUp().

◆ GetNYield()

virtual int TPZLadeKim::GetNYield ( ) const
inlinevirtual

Definition at line 556 of file TPZLadeKim.h.

References as_integer(), and NYield.

◆ GetState()

virtual TPZPlasticState<REAL> TPZLadeKim::GetState ( ) const
inlineoverridevirtual

Retrieve the plastic state variables

Definition at line 172 of file TPZLadeKim.h.

References fInitialEps.

◆ LoadState()

void TPZLadeKim::LoadState ( TPZFMatrix< REAL > &  state)
inline

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

Definition at line 570 of file TPZLadeKim.h.

References gRefResidual, and TPZYCLadeKim::NYield.

◆ LooseSacrRiverSand()

static void TPZLadeKim::LooseSacrRiverSand ( TPZLadeKim material)
inlinestatic

Definition at line 355 of file TPZLadeKim.h.

References h, m, and SetUp().

Referenced by TPZPlasticTest::CreatePlasticModel(), and LKBiaxialTest().

◆ LooseSantaMonicaBeachSand()

static void TPZLadeKim::LooseSantaMonicaBeachSand ( TPZLadeKim material)
inlinestatic

Definition at line 467 of file TPZLadeKim.h.

References h, m, NumCases(), and SetUp().

Referenced by LadeKimTriaxialLooseSand().

◆ Name()

virtual const char* TPZLadeKim::Name ( ) const
inlineoverridevirtual

Definition at line 69 of file TPZLadeKim.h.

Referenced by Print().

◆ NumCases()

int TPZLadeKim::NumCases ( )
inline

number of types of residuals

Definition at line 565 of file TPZLadeKim.h.

Referenced by LooseSantaMonicaBeachSand().

◆ operator=()

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

Definition at line 60 of file TPZLadeKim.h.

References faPa, and fInitialEps.

◆ Phi()

virtual void TPZLadeKim::Phi ( const TPZTensor< REAL > &  epsTotal,
TPZVec< REAL > &  phi 
) const
inlineoverridevirtual

return the value of the yield functions for the given deformation

Parameters
epsTotal[in] deformation tensor (total deformation
phi[out] vector of yield functions

Definition at line 263 of file TPZLadeKim.h.

References TPZTensor< T >::Add(), fInitialEps, and TPZPlasticState< T >::m_eps_t.

◆ PlainConcrete()

static void TPZLadeKim::PlainConcrete ( TPZLadeKim material)
inlinestatic

◆ PlainConcreteMPa()

static void TPZLadeKim::PlainConcreteMPa ( TPZLadeKim material)
inlinestatic

Definition at line 326 of file TPZLadeKim.h.

References h, m, and SetUp().

◆ Print()

virtual void TPZLadeKim::Print ( std::ostream &  out) const
inlineoverridevirtual

Definition at line 111 of file TPZLadeKim.h.

References ClassId(), faPa, fInitialEps, and Name().

◆ Read()

void TPZLadeKim::Read ( TPZStream buf,
void *  context 
)
inlineoverride

◆ Residual()

void TPZLadeKim::Residual ( TPZFMatrix< REAL > &  res,
int  icase 
)
inline

◆ SetState()

virtual void TPZLadeKim::SetState ( const TPZPlasticState< REAL > &  state)
inlineoverridevirtual

Set the plastic state variables

Definition at line 162 of file TPZLadeKim.h.

References fInitialEps.

Referenced by TPZPlasticTest::UndocumentedTest2().

◆ SetUp() [1/2]

void TPZLadeKim::SetUp ( REAL  poisson,
REAL  M,
REAL  lambda,
REAL  a,
REAL  m,
REAL  neta1,
REAL  ksi2,
REAL  mu,
REAL  C,
REAL  p,
REAL  h,
REAL  alpha,
REAL  pa 
)
inline

SetUp feeds all the parameters necessary to the method, distributing its values inside the aggregation hierarchy and computing the correct initial plasticity parameter to ensure the irreversibility effect of plastic deformations. Elastic Mudulus: poisson, M, lambda Failure Criterion: a, m, neta1 Plastic Potential: ksi2, mu Hardening Function: C, p Yield Function: h, alpha Atmospheric pression pa - to dimensionalize/adim. the stresses

Definition at line 85 of file TPZLadeKim.h.

References ApplyLoad(), fabs, faPa, fInitialEps, and pow().

Referenced by DenseSacrRiverSand(), FineSilicaSand(), FineSilicaSandPaperIII(), LKBiaxialTest(), LooseSacrRiverSand(), LooseSantaMonicaBeachSand(), PlainConcrete(), and PlainConcreteMPa().

◆ SetUp() [2/2]

virtual void TPZLadeKim::SetUp ( const TPZTensor< REAL > &  epsTotal)
inlineoverridevirtual

Definition at line 107 of file TPZLadeKim.h.

◆ Write()

void TPZLadeKim::Write ( TPZStream buf,
int  withclassid 
) const
inlineoverride

Member Data Documentation

◆ faPa

REAL TPZLadeKim::faPa
private

variable related to the stress translation to simulate material cohesion Already contains dimensional factor

Definition at line 278 of file TPZLadeKim.h.

Referenced by ApplyLoad(), ApplyStrainComputeDep(), ApplyStrainComputeSigma(), operator=(), Print(), Read(), SetUp(), TPZLadeKim(), and Write().

◆ fInitialEps

TPZPlasticState<REAL> TPZLadeKim::fInitialEps
private

variable to store the plastic state related to the unstressed state in a framework of a cohesion material. Since LadeKim models the cohesion material with the stress axis translated from a value of a, it is important to keep the related elastic deformation in this variable to subtract it from the epstotal answers. It is done because, intuitively, the initially nonstressed state should relate to an initially undeformed state.

Definition at line 289 of file TPZLadeKim.h.

Referenced by ApplyLoad(), ApplyStrain(), ApplyStrainComputeDep(), ApplyStrainComputeSigma(), GetState(), operator=(), Phi(), Print(), Read(), SetState(), SetUp(), TPZLadeKim(), and Write().

◆ gRefResidual

TPZManVector<REAL,6+6+1+TPZYCLadeKim::NYield> TPZLadeKim::gRefResidual
static

Definition at line 504 of file TPZLadeKim.h.

Referenced by ComputeTangent(), LoadState(), and Residual().


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