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

This class implements a 3D isotropic elasticity material. More...

#include <pzelast3d.h>

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

Public Types

enum  SOLUTIONVARS {
  ENone, EDisplacement, EDisplacementX, EDisplacementY,
  EDisplacementZ, EPrincipalStress, EPrincipalStrain, EPrincipalDirection1,
  EPrincipalDirection2, EPrincipalDirection3, EVonMisesStress, EStress,
  EStrain, EStrain1, EStress1, ENormalStress,
  ENormalStrain, EStressX, EStressY, EStressZ,
  EI1, EI2, EI3, EPlasticFunction
}
 

Public Member Functions

 TPZElasticity3D (int nummat, STATE E, STATE poisson, TPZVec< STATE > &force, STATE preStressXX=0., STATE preStressYY=0., STATE preStressZZ=0.)
 Class constructor. More...
 
 TPZElasticity3D (int nummat)
 Constructor. More...
 
 TPZElasticity3D ()
 Default constructor. More...
 
 TPZElasticity3D (const TPZElasticity3D &cp)
 Copy constructor. More...
 
virtual ~TPZElasticity3D ()
 Default destructor. More...
 
int Dimension () const override
 Returns model dimension. More...
 
int NStateVariables () const override
 Number of state variables. More...
 
virtual int IntegrationRuleOrder (int elPMaxOrder) const override
 Gets the order of the integration rule necessary to integrate an element with polinomial order p. More...
 
virtual void Print (std::ostream &out) override
 Print material report. More...
 
void SetPostProcessingDirection (TPZVec< REAL > &Direction)
 Direction to post process stress and strain.
Result of post processing is (Stress.Direction) or (Strain.Direction) More...
 
void SetVonMises (REAL fy)
 
void SetMohrCoulomb (REAL fc, REAL ft)
 
virtual std::string Name () override
 Material name. More...
 
virtual void Contribute (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef) override
 It computes a contribution to the stiffness matrix and load vector at one integration point. More...
 
virtual void Contribute (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ef) override
 It computes a contribution to the residual vector at one integration point. More...
 
virtual void ContributeVecShape (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef)
 
virtual void ContributeBC (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc) override
 Implements Dirichlet and Neumann boundary conditions. More...
 
virtual void ContributeVecShapeBC (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc)
 
virtual void ContributeBC (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ef, TPZBndCond &bc) override
 Implements Dirichlet and Neumann boundary conditions. More...
 
virtual int VariableIndex (const std::string &name) override
 Returns index of post-processing variable. More...
 
virtual int NSolutionVariables (int var) override
 Number of data of variable var. More...
 
virtual void Solution (TPZMaterialData &data, int var, TPZVec< STATE > &Solout) override
 Returns the solution associated with the var index based on the finite element approximation. More...
 
virtual int NFluxes () override
 Return the number of components which form the flux function. More...
 
virtual void Flux (TPZVec< REAL > &x, TPZVec< STATE > &Sol, TPZFMatrix< STATE > &DSol, TPZFMatrix< REAL > &axes, TPZVec< STATE > &flux) override
 Compute the value of the flux function to be used by ZZ error estimator. More...
 
virtual void Errors (TPZVec< REAL > &x, TPZVec< STATE > &u, TPZFMatrix< STATE > &dudx, TPZFMatrix< REAL > &axes, TPZVec< STATE > &flux, TPZVec< STATE > &u_exact, TPZFMatrix< STATE > &du_exact, TPZVec< REAL > &values) override
 Evaluate error between approximate (FEM) and exact solutions. More...
 
virtual int NEvalErrors () override
 Returns the number of norm errors: 3 (Semi H1, L2 and H1) More...
 
void FillDataRequirements (TPZMaterialData &data) override
 Fill material data parameter with necessary requirements for the Contribute method. More...
 
virtual void FillBoundaryConditionDataRequirement (int type, TPZMaterialData &data) override
 This method defines which parameters need to be initialized in order to compute the contribution of the boundary condition. More...
 
void SetMaterialDataHook (REAL Ela, REAL poisson)
 
void SetMaterialDataLame (REAL lambda, REAL mu)
 
void SetC ()
 
void SetForce (TPZVec< STATE > force)
 
STATE GetE ()
 
STATE GetPoisson ()
 
STATE GetLambda ()
 
STATE GetMU ()
 
STATE GetPrestress (int index)
 
virtual void ComputeStressVector (TPZFMatrix< STATE > &Stress, TPZFMatrix< STATE > &DSol) const
 
void ComputeStrainVector (TPZFMatrix< STATE > &Strain, TPZFMatrix< STATE > &DSol) const
 
virtual void ComputeStressTensor (TPZFMatrix< STATE > &Stress, TPZMaterialData &data) const
 
void ComputeStressTensor (TPZFMatrix< STATE > &Stress, TPZFMatrix< STATE > &DSol) const
 
void ComputeStrainTensor (TPZFMatrix< STATE > &Strain, TPZFMatrix< STATE > &DSol) const
 
void ApplyDirection (TPZFMatrix< STATE > &StrVec, TPZVec< STATE > &Out) const
 
void PrincipalDirection (TPZFMatrix< STATE > &DSol, TPZVec< STATE > &Solout, int direction) const
 
virtual void Write (TPZStream &buf, int withclassid) const override
 Saves the element data to a stream. More...
 
virtual void Read (TPZStream &buf, void *context) override
 Reads the element data from a stream. More...
 
virtual int ClassId () const override
 Define the class id associated with the class. More...
 
virtual TPZMaterialNewMaterial () override
 Creates a new material from the current object ?? More...
 
- Public Member Functions inherited from TPZMaterial
 TPZMaterial (int id)
 Creates a material object and inserts it in the vector of material pointers of the mesh. More...
 
 TPZMaterial ()
 Default constructor. More...
 
 TPZMaterial (const TPZMaterial &mat)
 Creates a material object based on the referred object and inserts it in the vector of material pointers of the mesh. More...
 
TPZMaterialoperator= (const TPZMaterial &copy)
 operator = More...
 
virtual ~TPZMaterial ()
 Default destructor. More...
 
virtual void FillDataRequirements (TPZVec< TPZMaterialData > &datavec)
 Fill material data parameter with necessary requirements for the Contribute method. Here, in base class, all requirements are considered as necessary. Each derived class may optimize performance by selecting only the necessary data. More...
 
virtual void FillBoundaryConditionDataRequirement (int type, TPZVec< TPZMaterialData > &datavec)
 This method defines which parameters need to be initialized in order to compute the contribution of the boundary condition. More...
 
virtual void FillDataRequirementsInterface (TPZMaterialData &data)
 This method defines which parameters need to be initialized in order to compute the contribution of interface elements. More...
 
virtual void FillDataRequirementsInterface (TPZMaterialData &data, TPZVec< TPZMaterialData > &datavec_left, TPZVec< TPZMaterialData > &datavec_right)
 This method defines which parameters need to be initialized in order to compute the contribution of interface elements. More...
 
int Id () const
 
void SetId (int id)
 
int NumLoadCases ()
 returns the number of load cases for this material object More...
 
virtual int MinimumNumberofLoadCases ()
 returns the minimum number of load cases for this material More...
 
void SetNumLoadCases (int numloadcases)
 changes the number of load cases for this material More...
 
void SetPostProcessIndex (int index)
 indicates which variable should be post processed More...
 
virtual TPZBndCondCreateBC (TPZMaterial *reference, int id, int typ, TPZFMatrix< STATE > &val1, TPZFMatrix< STATE > &val2)
 Creates an object TPZBndCond derived of TPZMaterial. More...
 
void SetForcingFunction (TPZAutoPointer< TPZFunction< STATE > > fp)
 Sets a procedure as source function for the material. More...
 
void SetForcingFunction (void(*fp)(const TPZVec< REAL > &loc, TPZVec< STATE > &result), int porder)
 
void SetForcingFunction (void(*fp)(const TPZVec< REAL > &loc, TPZVec< STATE > &result, TPZFMatrix< STATE > &gradu), int porder)
 
TPZAutoPointer< TPZFunction< STATE > > & ForcingFunction ()
 Returns a procedure as source function for the material. More...
 
void SetForcingFunctionExact (TPZAutoPointer< TPZFunction< STATE > > fp)
 Sets a procedure as exact solution for the problem. More...
 
TPZAutoPointer< TPZFunction< STATE > > & ForcingFunctionExact ()
 Returns a procedure as exact solution for the problem. More...
 
void SetTimeDependentForcingFunction (TPZAutoPointer< TPZFunction< STATE > > fp)
 Sets a procedure as time dependent source function for the material. More...
 
TPZAutoPointer< TPZFunction< STATE > > & TimeDependentForcingFunction ()
 Returns a procedure as time dependent source function for the material. More...
 
void SetTimeDependentFunctionExact (TPZAutoPointer< TPZFunction< STATE > > fp)
 Sets a procedure as time dependent exact solution for the problem. More...
 
TPZAutoPointer< TPZFunction< STATE > > & TimedependentFunctionExact ()
 Returns a procedure as time dependent exact solution for the problem. More...
 
void SetBCForcingFunction (TPZAutoPointer< TPZFunction< STATE > > fp)
 Sets a procedure as variable boundary condition. More...
 
TPZAutoPointer< TPZFunction< STATE > > & BCForcingFunction ()
 Returns a procedure as variable boundary condition. More...
 
void SetTimedependentBCForcingFunction (TPZAutoPointer< TPZFunction< STATE > > fp)
 Sets a procedure as time variable boundary condition. More...
 
TPZAutoPointer< TPZFunction< STATE > > & TimedependentBCForcingFunction ()
 Returns a procedure as time variable boundary condition. More...
 
virtual int HasForcingFunction ()
 Directive that gives true if the material has a forcing function. More...
 
virtual int HasForcingFunctionExact ()
 Directive that gives true if the material has a function exact. More...
 
virtual int HasBCForcingFunction ()
 Directive that gives true if the material has a bc forcing function exact. More...
 
virtual int HasTimedependentFunctionExact ()
 Directive that gives true if the material has a time dependent function exact. More...
 
virtual int HasTimedependentForcingFunction ()
 Directive that gives true if the material has a time dependent forcing function. More...
 
virtual int HasTimedependentBCForcingFunction ()
 Directive that gives true if the material has a time dependent bc forcing function. More...
 
virtual int IntegrationRuleOrder (TPZVec< int > &elPMaxOrder) const
 Gets the order of the integration rule necessary to integrate an element multiphysic. More...
 
virtual void Errors (TPZMaterialData &data, TPZVec< STATE > &u_exact, TPZFMatrix< STATE > &du_exact, TPZVec< REAL > &errors)
 
virtual void Errors (TPZVec< TPZMaterialData > &data, TPZVec< STATE > &u_exact, TPZFMatrix< STATE > &du_exact, TPZVec< REAL > &errors)
 
virtual void ErrorsHdiv (TPZMaterialData &data, TPZVec< STATE > &u_exact, TPZFMatrix< STATE > &du_exact, TPZVec< REAL > &values)
 
virtual void SetData (std::istream &data)
 Reads data of the material from a istream (file data) More...
 
virtual void Clone (std::map< int, TPZMaterial * > &matvec)
 Creates a copy of the material object and put it in the vector which is passed on. More...
 
virtual int FluxType ()
 To return a numerical flux type to apply over the interfaces of the elements. More...
 
virtual void ContributeErrors (TPZMaterialData &data, REAL weight, TPZVec< REAL > &nk, int &errorid)
 
virtual REAL ComputeSquareResidual (TPZVec< REAL > &X, TPZVec< STATE > &sol, TPZFMatrix< STATE > &dsol)
 Computes square of residual of the differential equation at one integration point. More...
 
virtual int PushMemItem (int sourceIndex=-1)
 Pushes a new entry in the context of materials with memory, returning its index at the internal storage stack. More...
 
virtual void FreeMemItem (int index)
 Frees an entry in the material with memory internal history storage. More...
 
void SetLinearContext (bool IsLinear)
 Sets fLinearContext attribute. More...
 
bool GetLinearContext () const
 Returns fLinearContext attribute. More...
 
virtual void Contribute (TPZVec< TPZMaterialData > &datavec, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef)
 It computes a contribution to the stiffness matrix and load vector at one integration point to multiphysics simulation. More...
 
virtual void Contribute (TPZVec< TPZMaterialData > &datavec, REAL weight, TPZFMatrix< STATE > &ef)
 It computes a contribution to the stiffness matrix and load vector at one integration point to multiphysics simulation. More...
 
virtual void ContributeBC (TPZVec< TPZMaterialData > &datavec, REAL weight, TPZFMatrix< STATE > &ef, TPZBndCond &bc)
 It computes a contribution to the stiffness matrix and load vector at one BC integration point to multiphysics simulation. More...
 
virtual void ContributeBC (TPZVec< TPZMaterialData > &datavec, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc)
 It computes a contribution to the stiffness matrix and load vector at one BC integration point to multiphysics simulation. More...
 
int ClassId () const override
 Unique identifier for serialization purposes. More...
 
void Write (TPZStream &buf, int withclassid) const override
 Saves the element data to a stream. More...
 
void Read (TPZStream &buf, void *context) override
 Reads the element data from a stream. More...
 
virtual void Solution (TPZVec< TPZMaterialData > &datavec, int var, TPZVec< STATE > &Solout)
 Returns the solution associated with the var index based on the finite element approximation. More...
 
virtual void Solution (TPZMaterialData &data, TPZVec< TPZMaterialData > &dataleftvec, TPZVec< TPZMaterialData > &datarightvec, int var, TPZVec< STATE > &Solout)
 Returns the solution associated with the var index based on the finite element approximation around one interface element. More...
 
virtual void Solution (TPZMaterialData &data, TPZVec< TPZMaterialData > &dataleftvec, TPZVec< TPZMaterialData > &datarightvec, int var, TPZVec< STATE > &Solout, TPZCompEl *left, TPZCompEl *ritgh)
 Returns the solution associated with the var index based on the finite element approximation around one interface element. More...
 
- 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
 

Static Public Attributes

static STATE gTolerance
 
- Static Public Attributes inherited from TPZMaterial
static REAL gBigNumber
 Big number to penalization method, used for Dirichlet conditions. More...
 

Protected Member Functions

virtual void Solution (TPZVec< STATE > &Sol, TPZFMatrix< STATE > &DSol, TPZFMatrix< REAL > &axes, int var, TPZVec< STATE > &Solout) override
 Post-processing method. Based on solution Sol and its derivatives DSol, it computes the post-processed variable var. More...
 
- Protected Member Functions inherited from TPZMaterial

Protected Attributes

STATE fE
 Young's modulus. More...
 
STATE fPoisson
 Poisson's ratio. More...
 
REAL C1
 
REAL C2
 
REAL C3
 
TPZManVector< STATE, 3 > fForce
 External forces. More...
 
TPZManVector< REAL, 3 > fPostProcessDirection
 Direction to compute stress and strain. More...
 
REAL fFy
 Yeilding stress for von mises post processing. More...
 
REAL fFrictionAngle
 Mohr-Coulomb parameters. More...
 
REAL fCohesion
 
PLASTICPOSTPROC fPlasticPostProc
 Plastic model for post-processing. More...
 
TPZManVector< REAL > fPreStress
 
- Protected Attributes inherited from TPZMaterial
TPZAutoPointer< TPZFunction< STATE > > fForcingFunction
 Pointer to forcing function, it is the right member at differential equation. More...
 
TPZAutoPointer< TPZFunction< STATE > > fForcingFunctionExact
 Pointer to exact solution function, needed to calculate exact error. More...
 
TPZAutoPointer< TPZFunction< STATE > > fTimeDependentForcingFunction
 Pointer to time dependent forcing function, it is the right member at differential equation. More...
 
TPZAutoPointer< TPZFunction< STATE > > fTimedependentFunctionExact
 Pointer to time dependent exact solution function, needed to calculate exact error. More...
 
TPZAutoPointer< TPZFunction< STATE > > fBCForcingFunction
 Pointer to bc forcing function, it is a variable boundary condition at differential equation. More...
 
TPZAutoPointer< TPZFunction< STATE > > fTimedependentBCForcingFunction
 Pointer to time dependent bc forcing function, it is a variable boundary condition at differential equation. More...
 
bool fLinearContext
 Defines whether the equation context is linear solver or non linear. More...
 
int fNumLoadCases
 Defines the number of load cases generated by this material. More...
 
int fPostProcIndex
 indicates which solution should be used for post processing More...
 

Private Types

enum  PLASTICPOSTPROC { ENonePlasticProc, EVonMises, EMohrCoulomb }
 

Private Member Functions

STATE VonMisesPlasticFunction (TPZFMatrix< STATE > &StressTensor) const
 
STATE MohrCoulombPlasticFunction (TPZFMatrix< STATE > &StressTensor) const
 
void Invariants (TPZFMatrix< STATE > &A, STATE &I1, STATE &I2, STATE &I3) const
 
void StressDecomposition (TPZFMatrix< STATE > &StressTensor, TPZFMatrix< STATE > &Deviator, STATE &p) const
 

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

This class implements a 3D isotropic elasticity material.

Since
Aug 31, 2005.

Definition at line 21 of file pzelast3d.h.

Member Enumeration Documentation

◆ PLASTICPOSTPROC

Enumerator
ENonePlasticProc 
EVonMises 
EMohrCoulomb 

Definition at line 25 of file pzelast3d.h.

◆ SOLUTIONVARS

Enumerator
ENone 
EDisplacement 
EDisplacementX 
EDisplacementY 
EDisplacementZ 
EPrincipalStress 
EPrincipalStrain 
EPrincipalDirection1 
EPrincipalDirection2 
EPrincipalDirection3 
EVonMisesStress 
EStress 
EStrain 
EStrain1 
EStress1 
ENormalStress 
ENormalStrain 
EStressX 
EStressY 
EStressZ 
EI1 
EI2 
EI3 
EPlasticFunction 

Definition at line 37 of file pzelast3d.h.

Constructor & Destructor Documentation

◆ TPZElasticity3D() [1/4]

TPZElasticity3D::TPZElasticity3D ( int  nummat,
STATE  E,
STATE  poisson,
TPZVec< STATE > &  force,
STATE  preStressXX = 0.,
STATE  preStressYY = 0.,
STATE  preStressZZ = 0. 
)

Class constructor.

Parameters
nummat- material ID.
E- Young's modulus.
poisson- poisson's ratio
force- external forces

Definition at line 21 of file pzelast3d.cpp.

References fE, fForce, TPZVec< T >::Fill(), fPoisson, fPostProcessDirection, fPreStress, TPZVec< T >::NElements(), PZError, TPZManVector< T, NumExtAlloc >::Resize(), and SetC().

◆ TPZElasticity3D() [2/4]

TPZElasticity3D::TPZElasticity3D ( int  nummat)

Constructor.

Parameters
nummat- material ID.

Definition at line 47 of file pzelast3d.cpp.

References SetC().

◆ TPZElasticity3D() [3/4]

TPZElasticity3D::TPZElasticity3D ( )

Default constructor.

Definition at line 57 of file pzelast3d.cpp.

Referenced by NewMaterial().

◆ TPZElasticity3D() [4/4]

TPZElasticity3D::TPZElasticity3D ( const TPZElasticity3D cp)

Copy constructor.

Definition at line 66 of file pzelast3d.cpp.

References SetC().

◆ ~TPZElasticity3D()

TPZElasticity3D::~TPZElasticity3D ( )
virtual

Default destructor.

Definition at line 64 of file pzelast3d.cpp.

Member Function Documentation

◆ ApplyDirection()

void TPZElasticity3D::ApplyDirection ( TPZFMatrix< STATE > &  StrVec,
TPZVec< STATE > &  Out 
) const

Definition at line 1174 of file pzelast3d.cpp.

References fPostProcessDirection, and TPZVec< T >::Resize().

Referenced by Solution().

◆ ClassId()

int TPZElasticity3D::ClassId ( ) const
overridevirtual

Define the class id associated with the class.

This id has to be unique for all classes A non unique id is flagged at the startup of the program

Implements TPZSavable.

Reimplemented in TPZThermicElast3D, TPZViscoelastic, TPZMatWithMem< TPZFMatrix< STATE >, TPZElasticity3D >, TPZMatWithMem< TPZFMatrix< REAL >, TPZElasticity3D >, and TPZElast3Dnlinear.

Definition at line 1272 of file pzelast3d.cpp.

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

Referenced by TPZElast3Dnlinear::ClassId(), and TPZThermicElast3D::ClassId().

◆ ComputeStrainTensor()

void TPZElasticity3D::ComputeStrainTensor ( TPZFMatrix< STATE > &  Strain,
TPZFMatrix< STATE > &  DSol 
) const

Definition at line 1115 of file pzelast3d.cpp.

References TPZFMatrix< TVar >::Redim().

Referenced by PrincipalDirection(), TPZViscoelastic::Solution(), and Solution().

◆ ComputeStrainVector()

void TPZElasticity3D::ComputeStrainVector ( TPZFMatrix< STATE > &  Strain,
TPZFMatrix< STATE > &  DSol 
) const

Definition at line 1148 of file pzelast3d.cpp.

References TPZFMatrix< TVar >::Redim().

Referenced by Solution().

◆ ComputeStressTensor() [1/2]

void TPZElasticity3D::ComputeStressTensor ( TPZFMatrix< STATE > &  Stress,
TPZMaterialData data 
) const
virtual

Reimplemented in TPZViscoelastic.

Definition at line 1128 of file pzelast3d.cpp.

References TPZMaterialData::dsol.

Referenced by Errors(), and Solution().

◆ ComputeStressTensor() [2/2]

void TPZElasticity3D::ComputeStressTensor ( TPZFMatrix< STATE > &  Stress,
TPZFMatrix< STATE > &  DSol 
) const

Definition at line 1132 of file pzelast3d.cpp.

References ComputeStressVector(), and TPZFMatrix< TVar >::Redim().

◆ ComputeStressVector()

void TPZElasticity3D::ComputeStressVector ( TPZFMatrix< STATE > &  Stress,
TPZFMatrix< STATE > &  DSol 
) const
virtual

Definition at line 1158 of file pzelast3d.cpp.

References fE, fPoisson, fPreStress, and TPZFMatrix< TVar >::Redim().

Referenced by ComputeStressTensor(), and Solution().

◆ Contribute() [1/2]

void TPZElasticity3D::Contribute ( TPZMaterialData data,
REAL  weight,
TPZFMatrix< STATE > &  ek,
TPZFMatrix< STATE > &  ef 
)
overridevirtual

It computes a contribution to the stiffness matrix and load vector at one integration point.

Parameters
data[in] stores all input data
weight[in] is the weight of the integration rule
ek[out] is the stiffness matrix
ef[out] is the load vector
Since
April 16, 2007

Implements TPZMaterial.

Reimplemented in TPZThermicElast3D, TPZViscoelastic, and TPZElast3Dnlinear.

Definition at line 88 of file pzelast3d.cpp.

References TPZMaterialData::axes, TPZAxesTools< TVar >::Axes2XYZ(), C1, C2, C3, TPZMatrix< TVar >::Cols(), ContributeVecShape(), DebugStop, TPZMaterialData::dphix, TPZMaterialData::EVecShape, TPZFunction< TVar >::Execute(), fE, fForce, TPZMaterial::fForcingFunction, fPoisson, fPreStress, TPZMaterialData::fShapeType, TPZMaterialData::phi, PZError, TPZMatrix< TVar >::Rows(), val(), TPZMatrix< TVar >::VerifySymmetry(), and TPZMaterialData::x.

Referenced by TPZThermicElast3D::Contribute(), and Name().

◆ Contribute() [2/2]

virtual void TPZElasticity3D::Contribute ( TPZMaterialData data,
REAL  weight,
TPZFMatrix< STATE > &  ef 
)
inlineoverridevirtual

It computes a contribution to the residual vector at one integration point.

Parameters
data[in] stores all input data
weight[in] is the weight of the integration rule
ef[out] is the residual vector
Since
April 16, 2007

Reimplemented from TPZMaterial.

Reimplemented in TPZThermicElast3D, and TPZElast3Dnlinear.

Definition at line 121 of file pzelast3d.h.

References bc, TPZMaterial::Contribute(), ContributeBC(), ContributeVecShape(), and ContributeVecShapeBC().

◆ ContributeBC() [1/2]

void TPZElasticity3D::ContributeBC ( TPZMaterialData data,
REAL  weight,
TPZFMatrix< STATE > &  ek,
TPZFMatrix< STATE > &  ef,
TPZBndCond bc 
)
overridevirtual

◆ ContributeBC() [2/2]

virtual void TPZElasticity3D::ContributeBC ( TPZMaterialData data,
REAL  weight,
TPZFMatrix< STATE > &  ef,
TPZBndCond bc 
)
inlineoverridevirtual

Implements Dirichlet and Neumann boundary conditions.

Reimplemented from TPZMaterial.

Definition at line 141 of file pzelast3d.h.

References TPZMaterial::ContributeBC(), NSolutionVariables(), Solution(), and VariableIndex().

◆ ContributeVecShape()

void TPZElasticity3D::ContributeVecShape ( TPZMaterialData data,
REAL  weight,
TPZFMatrix< STATE > &  ek,
TPZFMatrix< STATE > &  ef 
)
virtual

◆ ContributeVecShapeBC()

void TPZElasticity3D::ContributeVecShapeBC ( TPZMaterialData data,
REAL  weight,
TPZFMatrix< STATE > &  ek,
TPZFMatrix< STATE > &  ef,
TPZBndCond bc 
)
virtual

◆ Dimension()

int TPZElasticity3D::Dimension ( ) const
inlineoverridevirtual

Returns model dimension.

Implements TPZMaterial.

Definition at line 70 of file pzelast3d.h.

◆ Errors()

void TPZElasticity3D::Errors ( TPZVec< REAL > &  x,
TPZVec< STATE > &  u,
TPZFMatrix< STATE > &  dudx,
TPZFMatrix< REAL > &  axes,
TPZVec< STATE > &  flux,
TPZVec< STATE > &  u_exact,
TPZFMatrix< STATE > &  du_exact,
TPZVec< REAL > &  values 
)
overridevirtual

Evaluate error between approximate (FEM) and exact solutions.

L2 norm

H1 semi-norm

H1 norm

Reimplemented from TPZMaterial.

Definition at line 1074 of file pzelast3d.cpp.

References TPZAxesTools< TVar >::Axes2XYZ(), and ComputeStressTensor().

Referenced by Flux().

◆ FillBoundaryConditionDataRequirement()

virtual void TPZElasticity3D::FillBoundaryConditionDataRequirement ( int  type,
TPZMaterialData data 
)
inlineoverridevirtual

This method defines which parameters need to be initialized in order to compute the contribution of the boundary condition.

Reimplemented from TPZMaterial.

Definition at line 192 of file pzelast3d.h.

References TPZMaterialData::fNeedsNormal, and TPZMaterialData::fNeedsSol.

◆ FillDataRequirements()

void TPZElasticity3D::FillDataRequirements ( TPZMaterialData data)
overridevirtual

Fill material data parameter with necessary requirements for the Contribute method.

Reimplemented from TPZMaterial.

Reimplemented in TPZViscoelastic, and TPZElast3Dnlinear.

Definition at line 1276 of file pzelast3d.cpp.

References TPZMaterial::FillDataRequirements(), and TPZMaterialData::fNeedsSol.

Referenced by NEvalErrors().

◆ Flux()

virtual void TPZElasticity3D::Flux ( TPZVec< REAL > &  x,
TPZVec< STATE > &  Sol,
TPZFMatrix< STATE > &  DSol,
TPZFMatrix< REAL > &  axes,
TPZVec< STATE > &  flux 
)
inlineoverridevirtual

Compute the value of the flux function to be used by ZZ error estimator.

Note
Method not implemented.

Reimplemented from TPZMaterial.

Definition at line 177 of file pzelast3d.h.

References Errors(), PZError, and rdt::values.

◆ GetE()

STATE TPZElasticity3D::GetE ( )
inline

Definition at line 228 of file pzelast3d.h.

References fE.

◆ GetLambda()

STATE TPZElasticity3D::GetLambda ( )
inline

Definition at line 238 of file pzelast3d.h.

References fE, and fPoisson.

◆ GetMU()

STATE TPZElasticity3D::GetMU ( )
inline

Definition at line 244 of file pzelast3d.h.

References fE, and fPoisson.

◆ GetPoisson()

STATE TPZElasticity3D::GetPoisson ( )
inline

Definition at line 233 of file pzelast3d.h.

References fPoisson.

◆ GetPrestress()

STATE TPZElasticity3D::GetPrestress ( int  index)
inline

Definition at line 250 of file pzelast3d.h.

References fPreStress.

◆ IntegrationRuleOrder()

virtual int TPZElasticity3D::IntegrationRuleOrder ( int  elPMaxOrder) const
inlineoverridevirtual

Gets the order of the integration rule necessary to integrate an element with polinomial order p.

Reimplemented from TPZMaterial.

Definition at line 79 of file pzelast3d.h.

References Print().

◆ Invariants()

void TPZElasticity3D::Invariants ( TPZFMatrix< STATE > &  A,
STATE &  I1,
STATE &  I2,
STATE &  I3 
) const
private

Definition at line 1202 of file pzelast3d.cpp.

Referenced by MohrCoulombPlasticFunction(), and VonMisesPlasticFunction().

◆ MohrCoulombPlasticFunction()

STATE TPZElasticity3D::MohrCoulombPlasticFunction ( TPZFMatrix< STATE > &  StressTensor) const
private

Definition at line 1227 of file pzelast3d.cpp.

References asin, cos(), fabs, fCohesion, fFrictionAngle, Invariants(), pow(), sin, sqrt, StressDecomposition(), and val().

Referenced by Solution().

◆ Name()

virtual std::string TPZElasticity3D::Name ( )
inlineoverridevirtual

Material name.

Reimplemented from TPZMaterial.

Reimplemented in TPZMatWithMem< TPZFMatrix< STATE >, TPZElasticity3D >, and TPZMatWithMem< TPZFMatrix< REAL >, TPZElasticity3D >.

Definition at line 114 of file pzelast3d.h.

References Contribute().

◆ NEvalErrors()

virtual int TPZElasticity3D::NEvalErrors ( )
inlineoverridevirtual

Returns the number of norm errors: 3 (Semi H1, L2 and H1)

Reimplemented from TPZMaterial.

Definition at line 186 of file pzelast3d.h.

References FillDataRequirements().

◆ NewMaterial()

virtual TPZMaterial* TPZElasticity3D::NewMaterial ( )
inlineoverridevirtual

Creates a new material from the current object ??

Reimplemented from TPZMaterial.

Reimplemented in TPZElast3Dnlinear.

Definition at line 302 of file pzelast3d.h.

References TPZElasticity3D().

◆ NFluxes()

virtual int TPZElasticity3D::NFluxes ( )
inlineoverridevirtual

Return the number of components which form the flux function.

Note
Method not implemented.

Reimplemented from TPZMaterial.

Definition at line 168 of file pzelast3d.h.

References PZError.

◆ NSolutionVariables()

int TPZElasticity3D::NSolutionVariables ( int  var)
overridevirtual

◆ NStateVariables()

int TPZElasticity3D::NStateVariables ( ) const
inlineoverridevirtual

Number of state variables.

Implements TPZMaterial.

Definition at line 73 of file pzelast3d.h.

Referenced by TPZViscoelastic::Contribute().

◆ PrincipalDirection()

void TPZElasticity3D::PrincipalDirection ( TPZFMatrix< STATE > &  DSol,
TPZVec< STATE > &  Solout,
int  direction 
) const

◆ Print()

void TPZElasticity3D::Print ( std::ostream &  out)
overridevirtual

Print material report.

Reimplemented from TPZMaterial.

Reimplemented in TPZMatWithMem< TPZFMatrix< STATE >, TPZElasticity3D >, and TPZMatWithMem< TPZFMatrix< REAL >, TPZElasticity3D >.

Definition at line 77 of file pzelast3d.cpp.

References fE, fForce, fPoisson, and TPZMaterial::Print().

Referenced by IntegrationRuleOrder().

◆ Read()

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

Reads the element data from a stream.

Read the element data from a stream

Reimplemented from TPZSavable.

Reimplemented in TPZViscoelastic, TPZMatWithMem< TPZFMatrix< STATE >, TPZElasticity3D >, and TPZMatWithMem< TPZFMatrix< REAL >, TPZElasticity3D >.

Definition at line 1258 of file pzelast3d.cpp.

References DebugStop, fE, fForce, fFy, fPoisson, fPostProcessDirection, TPZStream::Read(), TPZMaterial::Read(), TPZManVector< T, NumExtAlloc >::Resize(), and SetC().

◆ SetC()

void TPZElasticity3D::SetC ( )
inline

Definition at line 216 of file pzelast3d.h.

References C1, C2, C3, fE, and fPoisson.

Referenced by Read(), SetMaterialDataHook(), SetMaterialDataLame(), and TPZElasticity3D().

◆ SetForce()

void TPZElasticity3D::SetForce ( TPZVec< STATE >  force)
inline

Definition at line 223 of file pzelast3d.h.

References fForce.

Referenced by TPZViscoelastic::SetMaterialDataHooke(), and TPZViscoelastic::TPZViscoelastic().

◆ SetMaterialDataHook()

void TPZElasticity3D::SetMaterialDataHook ( REAL  Ela,
REAL  poisson 
)
inline

◆ SetMaterialDataLame()

void TPZElasticity3D::SetMaterialDataLame ( REAL  lambda,
REAL  mu 
)
inline

Definition at line 209 of file pzelast3d.h.

References fE, fPoisson, and SetC().

◆ SetMohrCoulomb()

void TPZElasticity3D::SetMohrCoulomb ( REAL  fc,
REAL  ft 
)
inline

Definition at line 106 of file pzelast3d.h.

References asin, EMohrCoulomb, fCohesion, fFrictionAngle, fFy, fPlasticPostProc, and tan.

◆ SetPostProcessingDirection()

void TPZElasticity3D::SetPostProcessingDirection ( TPZVec< REAL > &  Direction)
inline

Direction to post process stress and strain.
Result of post processing is (Stress.Direction) or (Strain.Direction)

Definition at line 91 of file pzelast3d.h.

References fPostProcessDirection, TPZVec< T >::NElements(), PZError, and TPZManVector< T, NumExtAlloc >::Resize().

◆ SetVonMises()

void TPZElasticity3D::SetVonMises ( REAL  fy)
inline

Definition at line 99 of file pzelast3d.h.

References EVonMises, fCohesion, fFrictionAngle, fFy, and fPlasticPostProc.

◆ Solution() [1/2]

void TPZElasticity3D::Solution ( TPZVec< STATE > &  Sol,
TPZFMatrix< STATE > &  DSol,
TPZFMatrix< REAL > &  axes,
int  var,
TPZVec< STATE > &  Solout 
)
overrideprotectedvirtual

◆ Solution() [2/2]

virtual void TPZElasticity3D::Solution ( TPZMaterialData data,
int  var,
TPZVec< STATE > &  Solout 
)
inlineoverridevirtual

Returns the solution associated with the var index based on the finite element approximation.

Reimplemented from TPZMaterial.

Reimplemented in TPZThermicElast3D, and TPZViscoelastic.

Definition at line 159 of file pzelast3d.h.

References TPZMaterial::Solution().

◆ StressDecomposition()

void TPZElasticity3D::StressDecomposition ( TPZFMatrix< STATE > &  StressTensor,
TPZFMatrix< STATE > &  Deviator,
STATE &  p 
) const
private

Definition at line 1209 of file pzelast3d.cpp.

Referenced by MohrCoulombPlasticFunction(), and VonMisesPlasticFunction().

◆ VariableIndex()

int TPZElasticity3D::VariableIndex ( const std::string &  name)
overridevirtual

◆ VonMisesPlasticFunction()

STATE TPZElasticity3D::VonMisesPlasticFunction ( TPZFMatrix< STATE > &  StressTensor) const
private

Definition at line 1216 of file pzelast3d.cpp.

References fabs, fFy, Invariants(), sqrt, and StressDecomposition().

Referenced by Solution().

◆ Write()

void TPZElasticity3D::Write ( TPZStream buf,
int  withclassid 
) const
overridevirtual

Saves the element data to a stream.

Save the element data to a stream

Reimplemented from TPZSavable.

Reimplemented in TPZViscoelastic, TPZMatWithMem< TPZFMatrix< STATE >, TPZElasticity3D >, and TPZMatWithMem< TPZFMatrix< REAL >, TPZElasticity3D >.

Definition at line 1245 of file pzelast3d.cpp.

References DebugStop, fE, fForce, fFy, fPoisson, fPostProcessDirection, TPZStream::Write(), and TPZMaterial::Write().

Member Data Documentation

◆ C1

REAL TPZElasticity3D::C1
protected

$ C1 = E / (2.+ 2.*nu) $

Definition at line 263 of file pzelast3d.h.

Referenced by Contribute(), and SetC().

◆ C2

REAL TPZElasticity3D::C2
protected

$ C2 = E * nu / (-1. + nu + 2.*nu*nu) $

Definition at line 264 of file pzelast3d.h.

Referenced by Contribute(), and SetC().

◆ C3

REAL TPZElasticity3D::C3
protected

$ C3 = E * (nu - 1.) / (-1. + nu +2. * nu * nu) $

Definition at line 265 of file pzelast3d.h.

Referenced by Contribute(), and SetC().

◆ fCohesion

REAL TPZElasticity3D::fCohesion
protected

Definition at line 276 of file pzelast3d.h.

Referenced by MohrCoulombPlasticFunction(), SetMohrCoulomb(), and SetVonMises().

◆ fE

STATE TPZElasticity3D::fE
protected

◆ fForce

TPZManVector<STATE,3> TPZElasticity3D::fForce
protected

◆ fFrictionAngle

REAL TPZElasticity3D::fFrictionAngle
protected

Mohr-Coulomb parameters.

Definition at line 276 of file pzelast3d.h.

Referenced by MohrCoulombPlasticFunction(), SetMohrCoulomb(), and SetVonMises().

◆ fFy

REAL TPZElasticity3D::fFy
protected

Yeilding stress for von mises post processing.

Definition at line 273 of file pzelast3d.h.

Referenced by Read(), SetMohrCoulomb(), SetVonMises(), Solution(), VonMisesPlasticFunction(), and Write().

◆ fPlasticPostProc

PLASTICPOSTPROC TPZElasticity3D::fPlasticPostProc
protected

Plastic model for post-processing.

Definition at line 279 of file pzelast3d.h.

Referenced by SetMohrCoulomb(), SetVonMises(), and Solution().

◆ fPoisson

STATE TPZElasticity3D::fPoisson
protected

◆ fPostProcessDirection

TPZManVector<REAL,3> TPZElasticity3D::fPostProcessDirection
protected

Direction to compute stress and strain.

Definition at line 270 of file pzelast3d.h.

Referenced by ApplyDirection(), Read(), SetPostProcessingDirection(), TPZElasticity3D(), and Write().

◆ fPreStress

TPZManVector<REAL> TPZElasticity3D::fPreStress
protected

◆ gTolerance

STATE TPZElasticity3D::gTolerance
static

Definition at line 304 of file pzelast3d.h.

Referenced by PrincipalDirection(), TPZViscoelastic::Solution(), and Solution().


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