NeoPZ
|
#include <TPZElast3Dnlinear.h>
Public Member Functions | |
TPZElast3Dnlinear () | |
TPZElast3Dnlinear (int nummat, STATE E, STATE poisson, TPZVec< STATE > &force, STATE preStressXX=0., STATE preStressYY=0., STATE preStressZZ=0.) | |
Class constructor. More... | |
~TPZElast3Dnlinear () | |
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 | 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 | ContributeBC (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc) override |
Implements Dirichlet and Neumann boundary conditions. More... | |
int | ClassId () const override |
Define the class id associated with the class. More... | |
virtual void | FillDataRequirements (TPZMaterialData &data) override |
Fill material data parameter with necessary requirements for the Contribute method. More... | |
virtual TPZMaterial * | NewMaterial () override |
Creates a new material from the current object. More... | |
Public Member Functions inherited from TPZElasticity3D | |
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 | ContributeVecShape (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef) |
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... | |
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... | |
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... | |
TPZMaterial & | operator= (const TPZMaterial ©) |
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 TPZBndCond * | CreateBC (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 | |
Protected Member Functions | |
void | ContributeVecShapeAux (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef) |
void | ContributeVecShapeBCAux (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc) |
Protected Member Functions inherited from TPZElasticity3D | |
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 |
Additional Inherited Members | |
Public Types inherited from TPZElasticity3D | |
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 } |
Static Public Member Functions inherited from TPZSavable | |
static std::set< TPZRestoreClassBase * > & | RestoreClassSet () |
This static function guarantees that the gMap object is available when needed. More... | |
static std::map< int, TPZRestore_t > & | ClassIdMap () |
This static function guarantees that the gMap object is available when needed. More... | |
static std::pair< std::string, uint64_t > | NeoPZVersion () |
static void | Register (TPZRestoreClassBase *restore) |
static void | RegisterClassId (int classid, TPZRestore_t fun) |
static TPZSavable * | CreateInstance (const int &classId) |
Static Public Attributes inherited from TPZElasticity3D | |
static STATE | gTolerance |
Static Public Attributes inherited from TPZMaterial | |
static REAL | gBigNumber |
Big number to penalization method, used for Dirichlet conditions. More... | |
Protected Attributes inherited from TPZElasticity3D | |
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... | |
Definition at line 18 of file TPZElast3Dnlinear.h.
TPZElast3Dnlinear::TPZElast3Dnlinear | ( | ) |
Definition at line 12 of file TPZElast3Dnlinear.cpp.
Referenced by NewMaterial().
TPZElast3Dnlinear::TPZElast3Dnlinear | ( | int | nummat, |
STATE | E, | ||
STATE | poisson, | ||
TPZVec< STATE > & | force, | ||
STATE | preStressXX = 0. , |
||
STATE | preStressYY = 0. , |
||
STATE | preStressZZ = 0. |
||
) |
Class constructor.
nummat | - material ID. |
E | - Young's modulus. |
poisson | - poisson's ratio |
force | - external forces |
Definition at line 18 of file TPZElast3Dnlinear.cpp.
TPZElast3Dnlinear::~TPZElast3Dnlinear | ( | ) |
Definition at line 26 of file TPZElast3Dnlinear.cpp.
|
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 TPZElasticity3D.
Definition at line 87 of file TPZElast3Dnlinear.cpp.
References TPZElasticity3D::ClassId(), and Hash().
|
overridevirtual |
It computes a contribution to the residual vector at one integration point.
data | [in] stores all input data |
weight | [in] is the weight of the integration rule |
ef | [out] is the residual vector |
Reimplemented from TPZElasticity3D.
Definition at line 31 of file TPZElast3Dnlinear.cpp.
References DebugStop.
|
overridevirtual |
It computes a contribution to the stiffness matrix and load vector at one integration point.
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 |
Reimplemented from TPZElasticity3D.
Definition at line 38 of file TPZElast3Dnlinear.cpp.
References TPZMatrix< TVar >::Cols(), ContributeVecShapeAux(), DebugStop, TPZMaterial::fNumLoadCases, and TPZMatrix< TVar >::Rows().
|
overridevirtual |
Implements Dirichlet and Neumann boundary conditions.
Reimplemented from TPZElasticity3D.
Definition at line 62 of file TPZElast3Dnlinear.cpp.
References TPZMatrix< TVar >::Cols(), ContributeVecShapeBCAux(), DebugStop, TPZMaterial::fNumLoadCases, and TPZMatrix< TVar >::Rows().
|
protected |
Definition at line 101 of file TPZElast3Dnlinear.cpp.
References TPZMatrix< TVar >::Cols(), DebugStop, TPZMaterialData::dphix, TPZMaterialData::dsol, TPZMaterialData::EVecShape, TPZFunction< TVar >::Execute(), TPZElasticity3D::fE, TPZElasticity3D::fForce, TPZMaterial::fForcingFunction, TPZElasticity3D::fPoisson, TPZElasticity3D::fPreStress, TPZMaterialData::fShapeType, TPZMaterialData::phi, test::res, and TPZMaterialData::x.
Referenced by Contribute(), and NewMaterial().
|
protected |
Definition at line 232 of file TPZElast3Dnlinear.cpp.
References TPZMatrix< TVar >::Cols(), DebugStop, TPZMaterialData::EVecShape, TPZMaterial::fNumLoadCases, TPZMaterialData::fShapeType, TPZMaterial::gBigNumber, TPZMaterialData::phi, PZError, TPZMaterialData::sol, TPZBndCond::Type(), TPZBndCond::Val1(), and TPZBndCond::Val2().
Referenced by ContributeBC(), and NewMaterial().
|
overridevirtual |
Fill material data parameter with necessary requirements for the Contribute method.
Reimplemented from TPZElasticity3D.
Definition at line 91 of file TPZElast3Dnlinear.cpp.
References TPZMaterial::FillDataRequirements(), and TPZMaterialData::fNeedsSol.
|
inlineoverridevirtual |
Creates a new material from the current object.
Reimplemented from TPZElasticity3D.
Definition at line 57 of file TPZElast3Dnlinear.h.
References ContributeVecShapeAux(), ContributeVecShapeBCAux(), and TPZElast3Dnlinear().