NeoPZ
Public Types | Public Member Functions | Protected Attributes | List of all members
TPZMatPorous< T, TMEM > Class Template Reference

Implements an porous media material to be used together with elastic elastoplastic mechanical counterparts. More...

#include <TPZMatPorous.h>

Inheritance diagram for TPZMatPorous< T, TMEM >:
[legend]
Collaboration diagram for TPZMatPorous< T, TMEM >:
[legend]

Public Types

enum  SOLUTIONVARS { ENone, EPorePressure }
 
- Public Types inherited from TPZMaterialData
enum  MShapeFunctionType { EEmpty, EScalarShape, EVecandShape, EVecShape }
 
- Public Types inherited from TPZMatElastoPlastic< T, TMEM >
enum  ESolutionVar {
  ENone, EDisplacementDoF, EDisplacement, EStrain,
  EStress, EStrainElastic, EStrainPlastic, EYield,
  EVolHardening, EStrainPValues, EStressPValues, EStrainElasticPValues,
  EStrainPlasticPValues, EStrainI1, EStressI1, EStrainElasticI1,
  EStrainPlasticI1, EStrainJ2, EStressJ2, EStrainElasticJ2,
  EStrainPlasticJ2, EFailureType
}
 

Public Member Functions

 TPZMatPorous ()
 
 TPZMatPorous (int id)
 
 TPZMatPorous (const TPZMatPorous< T, TMEM > &mat)
 
virtual ~TPZMatPorous ()
 Default destructor. More...
 
virtual std::string Name () override
 
void SetUp (const REAL &k, const REAL &Mu, const REAL &StorageEps, const REAL &Alpha, const REAL &Rhof)
 Initializes the poroelastic material coefficients. More...
 
virtual int Dimension () const override
 
virtual int NStateVariables () const override
 
virtual void Print (std::ostream &out=std::cout, const int memory=0) override
 
virtual int VariableIndex (const std::string &name) override
 
virtual int NSolutionVariables (int var) override
 
virtual void Solution (TPZMaterialData &data, int var, TPZVec< REAL > &Solout) override
 
virtual int NFluxes () override
 
virtual void Flux (TPZVec< REAL > &x, TPZVec< REAL > &Sol, TPZFMatrix< REAL > &DSol, TPZFMatrix< REAL > &axes, TPZVec< REAL > &flux) override
 
virtual void Errors (TPZVec< REAL > &x, TPZVec< REAL > &u, TPZFMatrix< REAL > &dudx, TPZFMatrix< REAL > &axes, TPZVec< REAL > &flux, TPZVec< REAL > &u_exact, TPZFMatrix< REAL > &du_exact, TPZVec< REAL > &values) override
 
virtual int NEvalErrors () override
 
virtual void Contribute (TPZMaterialData &data, REAL weight, TPZFMatrix< REAL > &ek, TPZFMatrix< REAL > &ef) override
 
virtual void ContributeBC (TPZMaterialData &data, REAL weight, TPZFMatrix< REAL > &ek, TPZFMatrix< REAL > &ef, TPZBndCond &bc) override
 
virtual void Contribute (TPZMaterialData &data, REAL weight, TPZFMatrix< REAL > &ef) override
 
virtual void ContributeBC (TPZMaterialData &data, REAL weight, TPZFMatrix< REAL > &ef, TPZBndCond &bc) override
 
virtual TPZMaterialNewMaterial () override
 
virtual int ClassId () const override
 
virtual void Write (TPZStream &buf, int withclassid) const override
 
virtual void Read (TPZStream &buf, void *context) override
 
virtual void FillDataRequirements (TPZMaterialData &data) override
 
void ComputePorePressure (TPZMaterialData &data, REAL &Pp, TPZVec< REAL > &dPp)
 
void UpdatePorePressure (TPZMaterialData &data)
 
void SetPorePressure (const REAL Pp)
 
- Public Member Functions inherited from TPZMatTemporal
 TPZMatTemporal ()
 
virtual ~TPZMatTemporal ()
 
virtual void SetDeltaT (const REAL deltaT)
 
virtual void SetContributionTime (TPZContributeTime time)
 
int ClassId () const override
 
- Public Member Functions inherited from TPZMaterialData
 TPZMaterialData ()
 Default constructor. More...
 
 TPZMaterialData (const TPZMaterialData &cp)
 Copy constructor. More...
 
 ~TPZMaterialData ()
 Default destructor. More...
 
void SetAllRequirements (bool set)
 Set all flags at once. More...
 
TPZMaterialDataoperator= (const TPZMaterialData &cp)
 
void Print (std::ostream &out) const
 Prints the data. More...
 
void PrintMathematica (std::ostream &out) const
 Prints the data in a format suitable for Mathematica. More...
 
virtual bool Compare (TPZSavable *copy, bool override=false) override
 Compares the object for identity with the object pointed to, eventually copy the object. More...
 
virtual bool Compare (TPZSavable *copy, bool override=false) const override
 Compares the object for identity with the object pointed to, eventually copy the object. More...
 
void ComputeFluxValues (TPZFMatrix< REAL > &fluxes)
 Computes the flux values based on a Material of Hdiv approx space. More...
 
void ComputeFunctionDivergence ()
 Computes the flux divergence values based on a Material of Hdiv approx space. 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
 
- Public Member Functions inherited from TPZRegisterClassId
template<typename T >
 TPZRegisterClassId (int(T::*)() const)
 
 TPZRegisterClassId ()=default
 
- Public Member Functions inherited from TPZMatElastoPlastic< T, TMEM >
 TPZMatElastoPlastic ()
 
 TPZMatElastoPlastic (int id)
 
 TPZMatElastoPlastic (const TPZMatElastoPlastic &other)
 
virtual ~TPZMatElastoPlastic ()
 
virtual void SetPlasticityModel (T &plasticity)
 
virtual void UpdateMaterialCoeficients (TPZVec< REAL > &x, T &plasticity)
 
virtual void SetBulkDensity (REAL &RhoB)
 
virtual void Print (std::ostream &out) override
 
void ComputeStrainVector (TPZMaterialData &data, TPZFMatrix< REAL > &Strain)
 
void ComputeDeltaStrainVector (TPZMaterialData &data, TPZFMatrix< REAL > &DeltaStrain)
 
void ComputeStressVector (TPZMaterialData &data, TPZFMatrix< REAL > &Stress)
 
void CheckConvergence (TPZMaterialData &data, TPZFMatrix< REAL > &DeltaStrain)
 
void ApplyDeltaStrainComputeDep (TPZMaterialData &data, TPZFMatrix< REAL > &DeltaStrain, TPZFMatrix< REAL > &Stress, TPZFMatrix< REAL > &Dep)
 
void ApplyDeltaStrain (TPZMaterialData &data, TPZFMatrix< REAL > &DeltaStrain, TPZFMatrix< REAL > &Stress)
 
void ApplyDirection (TPZFMatrix< REAL > &vectorTensor, TPZVec< REAL > &Out)
 
void vectorToTensor (const TPZFMatrix< REAL > &vectorTensor, TPZFMatrix< REAL > &Tensor)
 
void EigenValues (TPZFMatrix< REAL > &vectorTensor, TPZVec< REAL > &ev)
 
void EigenVectors (TPZFMatrix< REAL > &vectorTensor, TPZVec< REAL > &Solout, int direction)
 
virtual void SetTol (const REAL &tol)
 
virtual void SetBulkDensity (const REAL &bulk)
 
virtual void SetPorousElasticity (TPZPorousElasticResponse &PER)
 
void SetPlasticModel (T &plasticity_model)
 
virtual T & GetPlasticModel ()
 
virtual TPZPorousElasticResponseGetPorousElasticity (TPZPorousElasticResponse &PER)
 
virtual void FillBoundaryConditionDataRequirement (int type, TPZMaterialData &data) override
 
- Public Member Functions inherited from TPZMatWithMem< TMEM >
 TPZMatWithMem ()
 Default constructor. More...
 
 TPZMatWithMem (int id)
 Creates a material object and inserts it in the vector of material pointers of the mesh. More...
 
 TPZMatWithMem (const TPZMatWithMem< TMEM, TPZMaterial > &mat)
 Creates a material object based on the referred object and inserts it in the vector of material pointers of the mesh. More...
 
virtual ~TPZMatWithMem ()
 
virtual void PrintMem (std::ostream &out=std::cout, const int memory=0)
 Prints out the data associated with the material. More...
 
virtual TMEM & MemItem (const int i) const
 
int ClassId () const override
 Unique identifier for serialization purposes. More...
 
void Write (TPZStream &buf, int withclassid) const override
 
void Read (TPZStream &buf, void *context) override
 
std::shared_ptr< TPZAdmChunkVector< TMEM > > & GetMemory ()
 
void SetMemory (std::shared_ptr< TPZAdmChunkVector< TMEM >> &memory)
 
virtual int PushMemItem (int sourceIndex=-1) override
 Pushes a new entry in the context of materials with memory. More...
 
virtual void FreeMemItem (int index) override
 Frees an entry in the material with memory internal history storage. More...
 
void ResetMemItem (int index)
 
void ResetMemory ()
 Reset all memory items. More...
 
virtual void SetDefaultMem (TMEM &defaultMem)
 Sets the default memory settings for initialization. More...
 
virtual TMEM & GetDefaultMemory ()
 Access the default memory settings for initislization. More...
 
virtual void SetUpdateMem (bool update=1)
 Sets/Unsets the internal memory data to be updated in the next assemble/contribute call. More...
 
virtual bool GetUpdateMem ()
 Gets the internal memory data to be updated in the next assemble/contribute call. 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 (int elPMaxOrder) const
 Gets the order of the integration rule necessary to integrate an element with polinomial order p. 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 Errors (TPZVec< REAL > &x, TPZVec< STATE > &sol, TPZFMatrix< STATE > &dsol, TPZFMatrix< REAL > &axes, TPZVec< STATE > &flux, TPZVec< STATE > &uexact, TPZFMatrix< STATE > &duexact, TPZVec< REAL > &val)
 Computes the error due to the difference between the interpolated flux
and the flux computed based on the derivative of the solution. More...
 
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...
 
void SetLinearContext (bool IsLinear)
 Sets fLinearContext attribute. More...
 
bool GetLinearContext () const
 Returns fLinearContext attribute. More...
 
virtual void Contribute (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef)=0
 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)
 It computes a contribution to the residual vector at one integration point. 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 (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc)=0
 It computes a contribution to the stiffness matrix and load vector at one BC integration point. 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...
 
virtual void ContributeBC (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ef, TPZBndCond &bc)
 It computes a contribution to the stiffness matrix and load vector at one BC integration point. More...
 
virtual void Solution (TPZMaterialData &data, int var, TPZVec< STATE > &Solout)
 Returns the solution associated with the var index based on the finite element approximation. 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...
 
virtual void Flux (TPZVec< REAL > &x, TPZVec< STATE > &Sol, TPZFMatrix< STATE > &DSol, TPZFMatrix< REAL > &axes, TPZVec< STATE > &flux)
 Computes the value of the flux function to be used by ZZ error estimator. More...
 

Protected Attributes

REAL fk
 
REAL fMu
 
REAL fStorageEps
 
REAL m_hardening
 
REAL fRhof
 
- Protected Attributes inherited from TPZMatTemporal
REAL fDeltaT
 
TPZContributeTime fTime
 
- Protected Attributes inherited from TPZMatElastoPlastic< T, TMEM >
TPZManVector< REAL, 3 > m_force
 
REAL m_rho_bulk
 
TPZManVector< REAL, 3 > m_PostProcessDirection
 
m_plasticity_model
 
REAL m_tol
 
bool m_use_non_linear_elasticity_Q
 
TPZPorousElasticResponse m_PER
 
- Protected Attributes inherited from TPZMatWithMem< TMEM >
std::shared_ptr< TPZAdmChunkVector< TMEM > > fMemory
 Shared pointer to material memory. More...
 
TMEM fDefaultMem
 Default memory settings. More...
 
bool fUpdateMem
 Flag to indicate whether the memory data are to be updated in an assemble loop. More...
 
- 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...
 

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)
 
- Public Attributes inherited from TPZMaterialData
MShapeFunctionType fShapeType
 
int intLocPtIndex
 Index of the current integration point being evaluated. More...
 
int intGlobPtIndex
 global point index More...
 
int NintPts
 amount of points in the integrstion rule More...
 
bool fNeedsSol
 
bool fNeedsNeighborSol
 
bool fNeedsHSize
 
bool fNeedsNeighborCenter
 
bool fNeedsNormalVecFad
 
bool fNeedsNormal
 
bool fActiveApproxSpace
 
TPZFNMatrix< 220, REAL > phi
 vector of shapefunctions (format is dependent on the value of shapetype) More...
 
TPZFNMatrix< 660, REAL > dphi
 values of the derivative of the shape functions over the master element More...
 
TPZFNMatrix< 660, REAL > dphix
 values of the derivative of the shape functions More...
 
TPZFNMatrix< 220, REAL > divphi
 values of the divergence of the shapefunctions in the mapped element (only applicable to H(div)) spaces More...
 
TPZFNMatrix< 9, REAL > axes
 axes indicating the directions of the derivatives of the shapefunctions More...
 
TPZFNMatrix< 9, REAL > jacobian
 value of the jacobian at the integration point More...
 
TPZFNMatrix< 9, REAL > jacinv
 value of the inverse of the jacobian at the integration point More...
 
TPZManVector< REAL, 3 > normal
 normal to the element at the integration point More...
 
TPZManVector< REAL, 3 > x
 value of the coordinate at the integration point More...
 
TPZManVector< REAL, 3 > xParametric
 value of the coordinate at the integration point corresponding to the x-parametric coordinate (master element) More...
 
int p
 maximum polinomial order of the shape functions More...
 
TPZSolVec sol
 vector of the solutions at the integration point More...
 
TPZGradSolVec dsol
 vector of the derivatives of the solution at the integration point More...
 
TPZSolVec divsol
 vector of the divergence of the solution at the integration point (only of hdiv spaces) More...
 
REAL HSize
 measure of the size of the element More...
 
REAL detjac
 determinant of the jacobian More...
 
TPZManVector< REAL, 3 > XCenter
 value of the coordinate at the center of the element More...
 
TPZFNMatrix< 180 > fDirectionsOnMaster
 Directions on the master element. More...
 
int numberdualfunctions
 number of dual function (e.g. pressure in HDiv approximations) More...
 
int gelElId
 
TPZManVector< std::pair< int, int64_t > > fVecShapeIndex
 correspondence between normal vector index and index of the shape functions More...
 
TPZFNMatrix< 180 > fNormalVec
 list of normal vectors More...
 
- Static Public Attributes inherited from TPZMaterial
static REAL gBigNumber
 Big number to penalization method, used for Dirichlet conditions. More...
 
- Protected Member Functions inherited from TPZMaterial
virtual void Solution (TPZVec< STATE > &Sol, TPZFMatrix< STATE > &DSol, TPZFMatrix< REAL > &axes, int var, TPZVec< STATE > &Solout)
 

Detailed Description

template<class T, class TMEM = TPZPoroElastoPlasticMem>
class TPZMatPorous< T, TMEM >

Implements an porous media material to be used together with elastic elastoplastic mechanical counterparts.

Definition at line 22 of file TPZMatPorous.h.

Member Enumeration Documentation

◆ SOLUTIONVARS

template<class T, class TMEM = TPZPoroElastoPlasticMem>
enum TPZMatPorous::SOLUTIONVARS
Enumerator
ENone 
EPorePressure 

Definition at line 26 of file TPZMatPorous.h.

Constructor & Destructor Documentation

◆ TPZMatPorous() [1/3]

template<class T , class TMEM >
TPZMatPorous< T, TMEM >::TPZMatPorous ( )

Default constructor

Definition at line 18 of file TPZMatPorous_impl.h.

References Advanced_CT, TPZMatTemporal::fDeltaT, TPZMatTemporal::fTime, and LOGPZ_INFO.

◆ TPZMatPorous() [2/3]

template<class T , class TMEM >
TPZMatPorous< T, TMEM >::TPZMatPorous ( int  id)

Creates a material object and inserts it in the vector of material pointers of the mesh. Upon return vectorindex contains the index of the material object within the vector

Definition at line 33 of file TPZMatPorous_impl.h.

References Advanced_CT, TPZMatTemporal::fDeltaT, TPZMatTemporal::fTime, and LOGPZ_INFO.

◆ TPZMatPorous() [3/3]

template<class T , class TMEM >
TPZMatPorous< T, TMEM >::TPZMatPorous ( const TPZMatPorous< T, TMEM > &  mat)

Creates a material object based on the referred object and inserts it in the vector of material pointers of the mesh. Upon return vectorindex contains the index of the material object within the vector

Definition at line 48 of file TPZMatPorous_impl.h.

References TPZMatTemporal::fDeltaT, TPZMatTemporal::fTime, and LOGPZ_INFO.

◆ ~TPZMatPorous()

template<class T , class TMEM >
TPZMatPorous< T, TMEM >::~TPZMatPorous ( )
virtual

Default destructor.

Definition at line 65 of file TPZMatPorous_impl.h.

Member Function Documentation

◆ ClassId()

template<class T , class TMEM >
int TPZMatPorous< T, TMEM >::ClassId ( ) const
overridevirtual

Unique identifier for serialization purposes

Reimplemented from TPZMatElastoPlastic< T, TMEM >.

Definition at line 198 of file TPZMatPorous.h.

References TPZMatTemporal::ClassId(), TPZMatElastoPlastic< T, TMEM >::ClassId(), and Hash().

Referenced by TPZMatPorous< T, TMEM >::NEvalErrors().

◆ ComputePorePressure()

template<class T , class TMEM >
void TPZMatPorous< T, TMEM >::ComputePorePressure ( TPZMaterialData data,
REAL &  Pp,
TPZVec< REAL > &  dPp 
)

◆ Contribute() [1/2]

template<class T , class TMEM >
void TPZMatPorous< T, TMEM >::Contribute ( TPZMaterialData data,
REAL  weight,
TPZFMatrix< REAL > &  ek,
TPZFMatrix< REAL > &  ef 
)
overridevirtual

◆ Contribute() [2/2]

template<class T , class TMEM >
void TPZMatPorous< T, TMEM >::Contribute ( TPZMaterialData data,
REAL  weight,
TPZFMatrix< REAL > &  ef 
)
overridevirtual

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

Reimplemented from TPZMatElastoPlastic< T, TMEM >.

Definition at line 324 of file TPZMatPorous_impl.h.

References TPZMaterial::Contribute().

◆ ContributeBC() [1/2]

template<class T , class TMEM >
void TPZMatPorous< T, TMEM >::ContributeBC ( TPZMaterialData data,
REAL  weight,
TPZFMatrix< REAL > &  ek,
TPZFMatrix< REAL > &  ef,
TPZBndCond bc 
)
overridevirtual

It computes a contribution to the stiffness matrix and load vector at one BC 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
bc[in] is the boundary condition material

Reimplemented from TPZMatElastoPlastic< T, TMEM >.

Definition at line 262 of file TPZMatPorous_impl.h.

References TPZMatPorous< T, TMEM >::Dimension(), LOGPZ_DEBUG, TPZMatPorous< T, TMEM >::NStateVariables(), TPZMaterialData::phi, TBASEPOROUS, TPZBndCond::Type(), TPZBndCond::Val1(), and TPZBndCond::Val2().

Referenced by TPZMatPorous< T, TMEM >::NEvalErrors().

◆ ContributeBC() [2/2]

template<class T , class TMEM >
void TPZMatPorous< T, TMEM >::ContributeBC ( TPZMaterialData data,
REAL  weight,
TPZFMatrix< REAL > &  ef,
TPZBndCond bc 
)
overridevirtual

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

Parameters
data[in] stores all input data
weight[in] is the weight of the integration rule
ef[out] is the load vector
bc[in] is the boundary condition material

Reimplemented from TPZMatElastoPlastic< T, TMEM >.

Definition at line 330 of file TPZMatPorous_impl.h.

References TPZMaterial::ContributeBC().

◆ Dimension()

template<class T, class TMEM = TPZPoroElastoPlasticMem>
virtual int TPZMatPorous< T, TMEM >::Dimension ( ) const
inlineoverridevirtual

◆ Errors()

template<class T , class TMEM >
void TPZMatPorous< T, TMEM >::Errors ( TPZVec< REAL > &  x,
TPZVec< REAL > &  u,
TPZFMatrix< REAL > &  dudx,
TPZFMatrix< REAL > &  axes,
TPZVec< REAL > &  flux,
TPZVec< REAL > &  u_exact,
TPZFMatrix< REAL > &  du_exact,
TPZVec< REAL > &  values 
)
overridevirtual

Evaluate error between approximate (FEM) and exact solutions. Method not implemented

Reimplemented from TPZMatElastoPlastic< T, TMEM >.

Definition at line 339 of file TPZMatPorous_impl.h.

References TBASEPOROUS.

Referenced by TPZMatPorous< T, TMEM >::Flux().

◆ FillDataRequirements()

template<class T , class TMEM >
void TPZMatPorous< T, TMEM >::FillDataRequirements ( TPZMaterialData data)
overridevirtual

Defining what parameters the material needs. In particular this material needs the evaluation of normal vector for the sake of boundary conditions

Reimplemented from TPZMatElastoPlastic< T, TMEM >.

Definition at line 400 of file TPZMatPorous_impl.h.

References TBASEPOROUS.

Referenced by TPZMatPorous< T, TMEM >::NEvalErrors().

◆ Flux()

template<class T, class TMEM = TPZPoroElastoPlasticMem>
virtual void TPZMatPorous< T, TMEM >::Flux ( TPZVec< REAL > &  x,
TPZVec< REAL > &  Sol,
TPZFMatrix< REAL > &  DSol,
TPZFMatrix< REAL > &  axes,
TPZVec< REAL > &  flux 
)
inlineoverridevirtual

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

Reimplemented from TPZMatElastoPlastic< T, TMEM >.

Definition at line 96 of file TPZMatPorous.h.

References TPZMaterialData::axes, TPZMatPorous< T, TMEM >::Errors(), PZError, rdt::values, and TPZMaterialData::x.

◆ Name()

template<class T , class TMEM >
std::string TPZMatPorous< T, TMEM >::Name ( )
overridevirtual

returns the name of the material

Reimplemented from TPZMatElastoPlastic< T, TMEM >.

Definition at line 355 of file TPZMatPorous_impl.h.

Referenced by TPZMatPorous< T, TMEM >::Print().

◆ NEvalErrors()

template<class T, class TMEM = TPZPoroElastoPlasticMem>
virtual int TPZMatPorous< T, TMEM >::NEvalErrors ( )
inlineoverridevirtual

◆ NewMaterial()

template<class T , class TMEM >
TPZMaterial * TPZMatPorous< T, TMEM >::NewMaterial ( )
overridevirtual

To create another material of the same type

Reimplemented from TPZMatElastoPlastic< T, TMEM >.

Definition at line 349 of file TPZMatPorous_impl.h.

Referenced by TPZMatPorous< T, TMEM >::NEvalErrors().

◆ NFluxes()

template<class T, class TMEM = TPZPoroElastoPlasticMem>
virtual int TPZMatPorous< T, TMEM >::NFluxes ( )
inlineoverridevirtual

Return the number of components which form the flux function Method not implemented.

Reimplemented from TPZMatElastoPlastic< T, TMEM >.

Definition at line 87 of file TPZMatPorous.h.

References PZError.

◆ NSolutionVariables()

template<class T , class TMEM >
int TPZMatPorous< T, TMEM >::NSolutionVariables ( int  var)
overridevirtual

returns the number of variables associated with the variable indexed by var. var is obtained by calling VariableIndex

Reimplemented from TPZMatElastoPlastic< T, TMEM >.

Definition at line 92 of file TPZMatPorous_impl.h.

References TBASEPOROUS.

Referenced by TPZMatPorous< T, TMEM >::NStateVariables().

◆ NStateVariables()

template<class T, class TMEM = TPZPoroElastoPlasticMem>
virtual int TPZMatPorous< T, TMEM >::NStateVariables ( ) const
inlineoverridevirtual

◆ Print()

template<class T , class TMEM >
void TPZMatPorous< T, TMEM >::Print ( std::ostream &  out = std::cout,
const int  memory = 0 
)
overridevirtual

◆ Read()

template<class T , class TMEM >
void TPZMatPorous< T, TMEM >::Read ( TPZStream buf,
void *  context 
)
overridevirtual

◆ SetPorePressure()

template<class T , class TMEM >
void TPZMatPorous< T, TMEM >::SetPorePressure ( const REAL  Pp)

Initializes the default memory pore pressure.

Definition at line 438 of file TPZMatPorous_impl.h.

References TPZMatWithMem< TMEM >::fDefaultMem, and TBASEPOROUS.

Referenced by TPZMatPorous< T, TMEM >::NEvalErrors().

◆ SetUp()

template<class T , class TMEM >
void TPZMatPorous< T, TMEM >::SetUp ( const REAL &  k,
const REAL &  Mu,
const REAL &  StorageEps,
const REAL &  Alpha,
const REAL &  Rhof 
)

Initializes the poroelastic material coefficients.

Parameters
[in]kpermeability of porous medium
[in]MuFluid viscosity
[in]StorageEpsporoelastic Storage Coeff at constant strain
[in]AlphaBiot-Willis ceofficient
[in]RhofFluid density

Definition at line 387 of file TPZMatPorous_impl.h.

References TPZMatPorous< T, TMEM >::fk, TPZMatPorous< T, TMEM >::fMu, TPZMatPorous< T, TMEM >::fRhof, TPZMatPorous< T, TMEM >::fStorageEps, and TPZMatPorous< T, TMEM >::m_hardening.

◆ Solution()

template<class T , class TMEM >
void TPZMatPorous< T, TMEM >::Solution ( TPZMaterialData data,
int  var,
TPZVec< REAL > &  Solout 
)
overridevirtual

returns the solution associated with the var index based on the finite element approximation

Reimplemented from TPZMatElastoPlastic< T, TMEM >.

Definition at line 100 of file TPZMatPorous_impl.h.

References TPZMatPorous< T, TMEM >::ComputePorePressure(), and TBASEPOROUS.

Referenced by TPZMatPorous< T, TMEM >::NStateVariables().

◆ UpdatePorePressure()

template<class T , class TMEM >
void TPZMatPorous< T, TMEM >::UpdatePorePressure ( TPZMaterialData data)

◆ VariableIndex()

template<class T , class TMEM >
int TPZMatPorous< T, TMEM >::VariableIndex ( const std::string &  name)
overridevirtual

returns the variable index associated with the name

Reimplemented from TPZMatElastoPlastic< T, TMEM >.

Definition at line 85 of file TPZMatPorous_impl.h.

References TBASEPOROUS.

Referenced by TPZMatPorous< T, TMEM >::NStateVariables().

◆ Write()

template<class T , class TMEM >
void TPZMatPorous< T, TMEM >::Write ( TPZStream buf,
int  withclassid 
) const
overridevirtual

Member Data Documentation

◆ fk

template<class T, class TMEM = TPZPoroElastoPlasticMem>
REAL TPZMatPorous< T, TMEM >::fk
protected

◆ fMu

template<class T, class TMEM = TPZPoroElastoPlasticMem>
REAL TPZMatPorous< T, TMEM >::fMu
protected

◆ fRhof

template<class T, class TMEM = TPZPoroElastoPlasticMem>
REAL TPZMatPorous< T, TMEM >::fRhof
protected

fluid density

Definition at line 193 of file TPZMatPorous.h.

Referenced by TPZMatPorous< T, TMEM >::Contribute(), and TPZMatPorous< T, TMEM >::SetUp().

◆ fStorageEps

template<class T, class TMEM = TPZPoroElastoPlasticMem>
REAL TPZMatPorous< T, TMEM >::fStorageEps
protected

◆ m_hardening

template<class T, class TMEM = TPZPoroElastoPlasticMem>
REAL TPZMatPorous< T, TMEM >::m_hardening
protected

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