NeoPZ
Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
TPZMatLaplacian Class Reference

$ -fK Laplac(u) = fXf $ More...

#include <TPZMatLaplacian.h>

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

Public Member Functions

void SetNoPenalty ()
 Defines no penalty terms in ContributeInterface. More...
 
void SetFluxPenalty ()
 Defines flux penalty terms in ContributeInterface. More...
 
void SetSolutionPenalty ()
 Defines solution penalty terms in ContributeInterface. More...
 
void SetBothPenalty ()
 Defines solution and flux penalty terms in ContributeInterface. More...
 
 TPZMatLaplacian (int matid, int dim)
 
 TPZMatLaplacian (int matid)
 
 TPZMatLaplacian ()
 
 TPZMatLaplacian (const TPZMatLaplacian &copy)
 
virtual ~TPZMatLaplacian ()
 
TPZMatLaplacianoperator= (const TPZMatLaplacian &copy)
 
void SetSymmetric ()
 Set material elliptic term as the global element method, i.e. the symmetrical formulation. More...
 
void SetNonSymmetric ()
 Set material elliptic term as the Baumann's formulation, i.e. the non-symmetrical formulation. More...
 
bool IsSymetric ()
 
virtual TPZMaterialNewMaterial () override
 To create another material of the same type. More...
 
virtual void FillDataRequirements (TPZMaterialData &data) override
 Fill material data parameter with necessary requirements for the. More...
 
virtual void FillDataRequirementsInterface (TPZMaterialData &data) override
 Fill material data parameter with necessary requirements for the ContributeInterface 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...
 
virtual int Dimension () const override
 Returns the integrable dimension of the material. More...
 
virtual int NStateVariables () const override
 Returns the number of state variables associated with the material. More...
 
void SetParameters (STATE diff, STATE f)
 Set a uniform diffusion constant and external flux. More...
 
void GetParameters (STATE &diff, STATE &f) const
 Return the values of constant diffusion and external flux. More...
 
void SetPermeability (REAL perm)
 
void SetValPenaltyConstant (REAL penalty)
 
void SetPermeabilityFunction (TPZAutoPointer< TPZFunction< STATE > > fp)
 
void SetDimension (int dim)
 
virtual void Print (std::ostream &out) override
 Prints out the data associated with the material. More...
 
virtual std::string Name () override
 Returns the name of the material. More...
 
virtual int VariableIndex (const std::string &name) override
 
virtual int NSolutionVariables (int var) override
 Returns the number of variables associated with the variable indexed by var. More...
 
virtual int NFluxes () override
 Returns the number of components which form the flux function. 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 void Solution (TPZVec< TPZMaterialData > &datavec, int var, TPZVec< STATE > &Solout) override
 Returns the solution associated with the var index based on the finite element approximation. More...
 
virtual void Flux (TPZVec< REAL > &x, TPZVec< STATE > &Sol, TPZFMatrix< STATE > &DSol, TPZFMatrix< REAL > &axes, TPZVec< STATE > &flux) override
 Computes 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
 Computes the error due to the difference between the interpolated flux
and the flux computed based on the derivative of the solution. More...
 
void ErrorsHdiv (TPZMaterialData &data, TPZVec< STATE > &u_exact, TPZFMatrix< STATE > &du_exact, TPZVec< REAL > &values) override
 
virtual int NEvalErrors () override
 Returns the number of norm errors. Default is 3: energy, L2 and H1. More...
 
virtual REAL ComputeSquareResidual (TPZVec< REAL > &X, TPZVec< STATE > &sol, TPZFMatrix< STATE > &dsol) override
 Compute square of residual of the differential equation at one integration point. More...
 
void InterfaceErrors (TPZVec< REAL > &, TPZVec< STATE > &leftu, TPZFMatrix< STATE > &leftdudx, TPZVec< STATE > &rightu, TPZFMatrix< STATE > &rightdudx, TPZVec< STATE > &, TPZVec< STATE > &u_exact, TPZFMatrix< STATE > &du_exact, TPZVec< REAL > &values, TPZVec< STATE > normal, STATE elsize)
 
virtual void BCInterfaceJump (TPZVec< REAL > &x, TPZSolVec &leftu, TPZBndCond &bc, TPZSolVec &jump) override
 Computes interface jump from element to Dirichlet boundary condition. More...
 
virtual int IsInterfaceConservative () override
 Dicontinuous galerkin materials implement contribution of discontinuous elements and interfaces. More...
 
virtual int ClassId () const override
 Unique identifier for serialization purposes. More...
 
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...
 
Contribute methods (weak formulation)
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 Contribute (TPZVec< TPZMaterialData > &datavec, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef) override
 It computes a contribution to the stiffness matrix and load vector at one integration point to multiphysics simulation. More...
 
virtual void ContributeBCHDiv (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc)
 
virtual void ContributeHDiv (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef)
 Compute the contribution at an integration point to the stiffness matrix of the HDiv formulation. More...
 
virtual void ContributeBC (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc) override
 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 > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc) override
 It computes a contribution to the stiffness matrix and load vector at one BC integration point to multiphysics simulation. More...
 
virtual void ContributeBCInterface (TPZMaterialData &data, TPZMaterialData &dataleft, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc) override
 
virtual void ContributeInterface (TPZMaterialData &data, TPZMaterialData &dataleft, TPZMaterialData &dataright, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef) override
 It computes a contribution to stiffness matrix and load vector at one integration point. More...
 
- Public Member Functions inherited from TPZDiscontinuousGalerkin
 TPZDiscontinuousGalerkin ()
 Simple constructor. More...
 
 TPZDiscontinuousGalerkin (int nummat)
 Constructor with the index of the material object within the vector. More...
 
 TPZDiscontinuousGalerkin (const TPZDiscontinuousGalerkin &copy)
 Copy constructor. More...
 
virtual ~TPZDiscontinuousGalerkin ()
 Destructor. More...
 
virtual int GetIntegrationOrder (TPZVec< int > &porder_left, TPZVec< int > &porder_right) const
 return the integration order as a function of interpolation orders of the left and right elements More...
 
virtual void InterfaceJump (TPZVec< REAL > &x, TPZSolVec &leftu, TPZSolVec &rightu, TPZSolVec &jump)
 Computes interface jump = leftu - rightu. More...
 
virtual void ContributeInterfaceErrors (TPZMaterialData &data, TPZMaterialData &dataleft, TPZMaterialData &dataright, REAL weight, TPZVec< STATE > &nkL, TPZVec< STATE > &nkR, int &errorid)
 
virtual void ContributeInterfaceBCErrors (TPZMaterialData &data, TPZMaterialData &dataleft, REAL weight, TPZVec< STATE > &nk, TPZBndCond &bc, int &errorid)
 
virtual void Errors (TPZMaterialData &data, TPZVec< STATE > &u_exact, TPZFMatrix< STATE > &du_exact, TPZVec< REAL > &errors) override
 
virtual void Errors (TPZVec< TPZMaterialData > &data, TPZVec< STATE > &u_exact, TPZFMatrix< STATE > &du_exact, TPZVec< REAL > &errors) override
 
virtual void Contribute (TPZVec< TPZMaterialData > &datavec, REAL weight, TPZFMatrix< STATE > &ef) override
 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 > &ef, TPZBndCond &bc) override
 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) override
 It computes a contribution to the stiffness matrix and load vector at one BC integration point to multiphysics simulation. More...
 
virtual void ContributeInterface (TPZVec< TPZMaterialData > &datavec, TPZVec< TPZMaterialData > &dataleftvec, TPZVec< TPZMaterialData > &datarightvec, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef)
 
virtual void ContributeInterface (TPZMaterialData &data, TPZVec< TPZMaterialData > &dataleft, TPZVec< TPZMaterialData > &dataright, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef)
 Computes a contribution to the stiffness matrix and load vector at one integration point to multiphysics simulation. More...
 
virtual void ContributeInterface (TPZMaterialData &data, TPZMaterialData &dataleft, TPZMaterialData &dataright, REAL weight, TPZFMatrix< STATE > &ef)
 It computes a contribution to residual vector at one integration point. More...
 
virtual void ContributeInterface (TPZMaterialData &data, TPZVec< TPZMaterialData > &dataleft, TPZVec< TPZMaterialData > &dataright, REAL weight, TPZFMatrix< STATE > &ef)
 Computes a contribution to residual vector at one integration point. More...
 
virtual void ContributeBCInterface (TPZMaterialData &data, TPZVec< TPZMaterialData > &dataleft, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc)
 It computes a contribution to stiffness matrix and load vector at one BC integration point to multiphysics simulation. More...
 
virtual void ContributeBCInterface (TPZMaterialData &data, TPZMaterialData &dataleft, REAL weight, TPZFMatrix< STATE > &ef, TPZBndCond &bc)
 It computes a contribution to residual vector at one BC integration point. More...
 
void SolutionDisc (TPZMaterialData &data, TPZMaterialData &dataleft, TPZMaterialData &dataright, int var, TPZVec< STATE > &Solout)
 Returns the solution associated with the var index based on the finite element approximation. 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, 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 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 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 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
 

Public Attributes

REAL fPenaltyConstant
 Constant multiplier of penalty term, when required is set. More...
 

Protected Types

enum  EPenaltyType { ENoPenalty, EFluxPenalty, ESolutionPenalty, EBoth }
 Enumerate for penalty term definitions. More...
 

Protected Member Functions

virtual void Solution (TPZVec< STATE > &Sol, TPZFMatrix< STATE > &DSol, TPZFMatrix< REAL > &axes, int var, TPZVec< STATE > &Solout) override
 
- Protected Member Functions inherited from TPZMaterial

Protected Attributes

STATE fXf
 Forcing function value. More...
 
int fDim
 Problem dimension. More...
 
STATE fK
 Coeficient which multiplies the Laplacian operator. More...
 
TPZFNMatrix< 9, STATE > fTensorK
 Tensor de permeabilidade. More...
 
TPZFNMatrix< 9, STATE > fInvK
 
REAL fSymmetry
 Symmetry coefficient of elliptic term. More...
 
EPenaltyType fPenaltyType
 Penalty term definition. More...
 
TPZAutoPointer< TPZFunction< STATE > > fPermeabilityFunction
 Pointer to forcing function, it is the Permeability and its inverse. 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)
 
- Static Public Attributes inherited from TPZMaterial
static REAL gBigNumber
 Big number to penalization method, used for Dirichlet conditions. More...
 

Detailed Description

$ -fK Laplac(u) = fXf $

$ -fK Laplac(u) = fXf $

Definition at line 20 of file TPZMatLaplacian.h.

Member Enumeration Documentation

◆ EPenaltyType

Enumerate for penalty term definitions.

Enumerator
ENoPenalty 
EFluxPenalty 
ESolutionPenalty 
EBoth 

Definition at line 44 of file TPZMatLaplacian.h.

Constructor & Destructor Documentation

◆ TPZMatLaplacian() [1/4]

TPZMatLaplacian::TPZMatLaplacian ( int  matid,
int  dim 
)

Definition at line 27 of file TPZMatLaplacian.cpp.

References fInvK, fK, fPenaltyConstant, fTensorK, SetNonSymmetric(), and SetNoPenalty().

◆ TPZMatLaplacian() [2/4]

TPZMatLaplacian::TPZMatLaplacian ( int  matid)
inline

Definition at line 71 of file TPZMatLaplacian.h.

References operator=(), TPZMatLaplacian(), and ~TPZMatLaplacian().

◆ TPZMatLaplacian() [3/4]

TPZMatLaplacian::TPZMatLaplacian ( )

Definition at line 40 of file TPZMatLaplacian.cpp.

References fK, fPenaltyConstant, SetNonSymmetric(), and SetNoPenalty().

Referenced by NewMaterial(), SetBothPenalty(), and TPZMatLaplacian().

◆ TPZMatLaplacian() [4/4]

TPZMatLaplacian::TPZMatLaplacian ( const TPZMatLaplacian copy)

Definition at line 48 of file TPZMatLaplacian.cpp.

References operator=().

◆ ~TPZMatLaplacian()

TPZMatLaplacian::~TPZMatLaplacian ( )
virtual

Definition at line 84 of file TPZMatLaplacian.cpp.

Referenced by TPZMatLaplacian().

Member Function Documentation

◆ BCInterfaceJump()

void TPZMatLaplacian::BCInterfaceJump ( TPZVec< REAL > &  x,
TPZSolVec leftu,
TPZBndCond bc,
TPZSolVec jump 
)
overridevirtual

Computes interface jump from element to Dirichlet boundary condition.

Returns
Returns sol-u_dirichlet
Since
Mar 08, 2006

Reimplemented from TPZDiscontinuousGalerkin.

Definition at line 782 of file TPZMatLaplacian.cpp.

References test::f, TPZVec< T >::Fill(), TPZManVector< T, NumExtAlloc >::Resize(), TPZVec< T >::size(), TPZBndCond::Type(), and TPZBndCond::Val2().

Referenced by NEvalErrors().

◆ ClassId()

int TPZMatLaplacian::ClassId ( ) const
overridevirtual

Unique identifier for serialization purposes.

Reimplemented from TPZDiscontinuousGalerkin.

Definition at line 1156 of file TPZMatLaplacian.cpp.

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

Referenced by IsInterfaceConservative().

◆ ComputeSquareResidual()

REAL TPZMatLaplacian::ComputeSquareResidual ( TPZVec< REAL > &  X,
TPZVec< STATE > &  sol,
TPZFMatrix< STATE > &  dsol 
)
overridevirtual

Compute square of residual of the differential equation at one integration point.

Parameters
Xis the point coordinate (x,y,z)
solis the solution vector
dsolis the solution derivative with respect to x,y,z as computed in TPZShapeDisc::Shape2DFull

Reimplemented from TPZMaterial.

Definition at line 1117 of file TPZMatLaplacian.cpp.

References abs(), Dimension(), TPZFunction< TVar >::Execute(), TPZMaterial::fForcingFunction, fK, fXf, and test::res.

Referenced by NEvalErrors().

◆ Contribute() [1/3]

void TPZMatLaplacian::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 TPZDiscontinuousGalerkin.

Definition at line 101 of file TPZMatLaplacian.cpp.

References ContributeHDiv(), TPZMaterialData::dphix, TPZFunction< TVar >::Execute(), fDim, TPZMaterial::fForcingFunction, fK, fPermeabilityFunction, fXf, IsSymetric(), TPZMaterialData::numberdualfunctions, TPZMaterialData::phi, test::res, TPZMatrix< TVar >::Rows(), TPZMatrix< TVar >::VerifySymmetry(), and TPZMaterialData::x.

Referenced by Name().

◆ Contribute() [2/3]

void TPZMatLaplacian::Contribute ( TPZMaterialData data,
REAL  weight,
TPZFMatrix< STATE > &  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
Since
April 16, 2007

Reimplemented from TPZDiscontinuousGalerkin.

Definition at line 155 of file TPZMatLaplacian.cpp.

References DebugStop, TPZMaterialData::dphix, TPZMaterialData::dsol, TPZFunction< TVar >::Execute(), fDim, TPZMaterial::fForcingFunction, fK, fXf, TPZMaterialData::numberdualfunctions, TPZMaterialData::phi, test::res, TPZMatrix< TVar >::Rows(), and TPZMaterialData::x.

◆ Contribute() [3/3]

virtual void TPZMatLaplacian::Contribute ( TPZVec< TPZMaterialData > &  datavec,
REAL  weight,
TPZFMatrix< STATE > &  ek,
TPZFMatrix< STATE > &  ef 
)
inlineoverridevirtual

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

Parameters
datavec[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 TPZDiscontinuousGalerkin.

Definition at line 200 of file TPZMatLaplacian.h.

References bc, TPZDiscontinuousGalerkin::Contribute(), ContributeBC(), ContributeBCHDiv(), ContributeBCInterface(), ContributeHDiv(), ContributeInterface(), NSolutionVariables(), and VariableIndex().

◆ ContributeBC() [1/2]

void TPZMatLaplacian::ContributeBC ( TPZMaterialData data,
REAL  weight,
TPZFMatrix< STATE > &  ek,
TPZFMatrix< STATE > &  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
Since
October 07, 2011

Implements TPZDiscontinuousGalerkin.

Definition at line 321 of file TPZMatLaplacian.cpp.

References ContributeBCHDiv(), TPZMaterialData::EVecandShape, TPZMaterialData::EVecShape, TPZFunction< TVar >::Execute(), TPZMaterial::ForcingFunction(), TPZMaterialData::fShapeType, TPZMaterial::gBigNumber, TPZMaterial::HasForcingFunction(), IsSymetric(), TPZMaterialData::phi, test::res, TPZMatrix< TVar >::Rows(), TPZBndCond::Type(), TPZBndCond::Val1(), TPZBndCond::Val2(), TPZMatrix< TVar >::VerifySymmetry(), and TPZMaterialData::x.

Referenced by Contribute(), and ContributeBC().

◆ ContributeBC() [2/2]

void TPZMatLaplacian::ContributeBC ( TPZVec< TPZMaterialData > &  datavec,
REAL  weight,
TPZFMatrix< STATE > &  ek,
TPZFMatrix< STATE > &  ef,
TPZBndCond bc 
)
overridevirtual

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

Parameters
datavec[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
Since
October 18, 2011

Reimplemented from TPZDiscontinuousGalerkin.

Definition at line 316 of file TPZMatLaplacian.cpp.

References ContributeBC().

◆ ContributeBCHDiv()

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

◆ ContributeBCInterface()

void TPZMatLaplacian::ContributeBCInterface ( TPZMaterialData data,
TPZMaterialData dataleft,
REAL  weight,
TPZFMatrix< STATE > &  ek,
TPZFMatrix< STATE > &  ef,
TPZBndCond bc 
)
overridevirtual

◆ ContributeHDiv()

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

◆ ContributeInterface()

void TPZMatLaplacian::ContributeInterface ( TPZMaterialData data,
TPZMaterialData dataleft,
TPZMaterialData dataright,
REAL  weight,
TPZFMatrix< STATE > &  ek,
TPZFMatrix< STATE > &  ef 
)
overridevirtual

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

Parameters
data[in]
dataleft[in]
dataright[in]
weight[in]
ek[out] is the stiffness matrix
ef[out] is the load vector
Since
April 16, 2007

Reimplemented from TPZDiscontinuousGalerkin.

Definition at line 797 of file TPZMatLaplacian.cpp.

References abs(), TPZMaterialData::axes, TPZAxesTools< TVar >::Axes2XYZ(), TPZMaterialData::dphix, EBoth, EFluxPenalty, ESolutionPenalty, fDim, fK, fPenaltyConstant, fPenaltyType, fSymmetry, TPZMaterialData::HSize, IsSymetric(), TPZMaterialData::normal, TPZMaterialData::p, TPZMaterialData::phi, TPZMatrix< TVar >::Rows(), and TPZMatrix< TVar >::VerifySymmetry().

Referenced by Contribute().

◆ Dimension()

virtual int TPZMatLaplacian::Dimension ( ) const
inlineoverridevirtual

Returns the integrable dimension of the material.

Implements TPZMaterial.

Definition at line 134 of file TPZMatLaplacian.h.

References test::f, fDim, NStateVariables(), and SetParameters().

Referenced by ComputeSquareResidual().

◆ Errors()

void TPZMatLaplacian::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 
)
overridevirtual

Computes the error due to the difference between the interpolated flux
and the flux computed based on the derivative of the solution.

L2 norm

semi norma de H1

H1 norm

Reimplemented from TPZDiscontinuousGalerkin.

Definition at line 738 of file TPZMatLaplacian.cpp.

References TPZAxesTools< TVar >::Axes2XYZ(), TPZFunction< TVar >::Execute(), fDim, TPZVec< T >::Fill(), fInvK, fPermeabilityFunction, fTensorK, TPZVec< T >::Resize(), TPZMatrix< TVar >::Rows(), TPZExtractVal::val(), and val().

Referenced by Solution().

◆ ErrorsHdiv()

void TPZMatLaplacian::ErrorsHdiv ( TPZMaterialData data,
TPZVec< STATE > &  u_exact,
TPZFMatrix< STATE > &  du_exact,
TPZVec< REAL > &  values 
)
overridevirtual

◆ FillBoundaryConditionDataRequirement()

virtual void TPZMatLaplacian::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 122 of file TPZMatLaplacian.h.

References TPZMaterialData::fNeedsNormal, TPZMaterialData::fNeedsSol, and TPZMaterialData::SetAllRequirements().

◆ FillDataRequirements()

void TPZMatLaplacian::FillDataRequirements ( TPZMaterialData data)
overridevirtual

Fill material data parameter with necessary requirements for the.

Since
April 10, 2007 Contribute method. Here, in base class, all requirements are considered as necessary. Each derived class may optimize performance by selecting only the necessary data.

Reimplemented from TPZMaterial.

Definition at line 1099 of file TPZMatLaplacian.cpp.

References TPZMaterialData::fNeedsNeighborCenter, TPZMaterialData::fNeedsNeighborSol, TPZMaterialData::fNeedsNormal, TPZMaterialData::fNeedsSol, and TPZMaterialData::SetAllRequirements().

Referenced by NewMaterial().

◆ FillDataRequirementsInterface()

void TPZMatLaplacian::FillDataRequirementsInterface ( TPZMaterialData data)
overridevirtual

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

Since
April 10, 2007 Here, in base class, all requirements are considered as necessary.
Each derived class may optimize performance by selecting only the necessary data.

Reimplemented from TPZDiscontinuousGalerkin.

Definition at line 1108 of file TPZMatLaplacian.cpp.

References TPZMaterialData::fNeedsHSize, TPZMaterialData::fNeedsNeighborCenter, TPZMaterialData::fNeedsNeighborSol, TPZMaterialData::fNeedsNormal, and TPZMaterialData::SetAllRequirements().

Referenced by NewMaterial().

◆ Flux()

void TPZMatLaplacian::Flux ( TPZVec< REAL > &  x,
TPZVec< STATE > &  Sol,
TPZFMatrix< STATE > &  DSol,
TPZFMatrix< REAL > &  axes,
TPZVec< STATE > &  flux 
)
overridevirtual

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

Reimplemented from TPZMaterial.

Definition at line 664 of file TPZMatLaplacian.cpp.

Referenced by Solution().

◆ GetParameters()

void TPZMatLaplacian::GetParameters ( STATE &  diff,
STATE &  f 
) const
inline

Return the values of constant diffusion and external flux.

Definition at line 142 of file TPZMatLaplacian.h.

References fK, and fXf.

◆ InterfaceErrors()

void TPZMatLaplacian::InterfaceErrors ( TPZVec< REAL > &  ,
TPZVec< STATE > &  leftu,
TPZFMatrix< STATE > &  leftdudx,
TPZVec< STATE > &  rightu,
TPZFMatrix< STATE > &  rightdudx,
TPZVec< STATE > &  ,
TPZVec< STATE > &  u_exact,
TPZFMatrix< STATE > &  du_exact,
TPZVec< REAL > &  values,
TPZVec< STATE >  normal,
STATE  elsize 
)

Referenced by NEvalErrors().

◆ IsInterfaceConservative()

virtual int TPZMatLaplacian::IsInterfaceConservative ( )
inlineoverridevirtual

Dicontinuous galerkin materials implement contribution of discontinuous elements and interfaces.

Since
Feb 05, 2004 Interfaces may be conservative or not conservative. It is important to agglomeration techniques when using multigrid pre-conditioner.
Conservative interfaces into agglomerate elements do not need to be computed. However non-conservative interfaces must be computed in all multigrid levels.
Default is non-conservative, because of the computation of a conservative interface into an agglomerate does not ruin the solution.

Reimplemented from TPZDiscontinuousGalerkin.

Definition at line 273 of file TPZMatLaplacian.h.

References ClassId(), Read(), and Write().

◆ IsSymetric()

bool TPZMatLaplacian::IsSymetric ( )
inline

◆ Name()

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

Returns the name of the material.

Reimplemented from TPZDiscontinuousGalerkin.

Definition at line 189 of file TPZMatLaplacian.h.

References Contribute().

Referenced by Print().

◆ NEvalErrors()

virtual int TPZMatLaplacian::NEvalErrors ( )
inlineoverridevirtual

Returns the number of norm errors. Default is 3: energy, L2 and H1.

Reimplemented from TPZMaterial.

Definition at line 248 of file TPZMatLaplacian.h.

References BCInterfaceJump(), ComputeSquareResidual(), and InterfaceErrors().

◆ NewMaterial()

virtual TPZMaterial* TPZMatLaplacian::NewMaterial ( )
inlineoverridevirtual

To create another material of the same type.

Reimplemented from TPZMaterial.

Definition at line 105 of file TPZMatLaplacian.h.

References FillDataRequirements(), FillDataRequirementsInterface(), and TPZMatLaplacian().

◆ NFluxes()

virtual int TPZMatLaplacian::NFluxes ( )
inlineoverridevirtual

Returns the number of components which form the flux function.

Reimplemented from TPZMaterial.

Definition at line 226 of file TPZMatLaplacian.h.

References Solution().

◆ NSolutionVariables()

int TPZMatLaplacian::NSolutionVariables ( int  var)
overridevirtual

Returns the number of variables associated with the variable indexed by var.

Parameters
varIndex variable into the solution, is obtained by calling VariableIndex

Reimplemented from TPZMaterial.

Definition at line 407 of file TPZMatLaplacian.cpp.

References fDim, and TPZMaterial::NSolutionVariables().

Referenced by Contribute(), and Solution().

◆ NStateVariables()

int TPZMatLaplacian::NStateVariables ( ) const
overridevirtual

Returns the number of state variables associated with the material.

Implements TPZMaterial.

Definition at line 87 of file TPZMatLaplacian.cpp.

Referenced by Dimension().

◆ operator=()

TPZMatLaplacian & TPZMatLaplacian::operator= ( const TPZMatLaplacian copy)

◆ Print()

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

Prints out the data associated with the material.

Reimplemented from TPZMaterial.

Definition at line 91 of file TPZMatLaplacian.cpp.

References fK, fPenaltyConstant, fXf, Name(), and TPZMaterial::Print().

Referenced by SetDimension().

◆ Read()

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

Reads the element data from a stream.

Reimplemented from TPZDiscontinuousGalerkin.

Definition at line 1147 of file TPZMatLaplacian.cpp.

References fDim, fK, fPenaltyConstant, fSymmetry, fXf, TPZStream::Read(), and TPZDiscontinuousGalerkin::Read().

Referenced by IsInterfaceConservative().

◆ SetBothPenalty()

void TPZMatLaplacian::SetBothPenalty ( )
inline

Defines solution and flux penalty terms in ContributeInterface.

Definition at line 67 of file TPZMatLaplacian.h.

References EBoth, and TPZMatLaplacian().

◆ SetDimension()

void TPZMatLaplacian::SetDimension ( int  dim)
inline

◆ SetFluxPenalty()

void TPZMatLaplacian::SetFluxPenalty ( )
inline

Defines flux penalty terms in ContributeInterface.

Definition at line 61 of file TPZMatLaplacian.h.

References EFluxPenalty.

◆ SetNonSymmetric()

void TPZMatLaplacian::SetNonSymmetric ( )
inline

Set material elliptic term as the Baumann's formulation, i.e. the non-symmetrical formulation.

Definition at line 94 of file TPZMatLaplacian.h.

Referenced by TPZMatLaplacian().

◆ SetNoPenalty()

void TPZMatLaplacian::SetNoPenalty ( )
inline

Defines no penalty terms in ContributeInterface.

Definition at line 58 of file TPZMatLaplacian.h.

References ENoPenalty.

Referenced by TPZMatLaplacian().

◆ SetParameters()

void TPZMatLaplacian::SetParameters ( STATE  diff,
STATE  f 
)

Set a uniform diffusion constant and external flux.

Definition at line 68 of file TPZMatLaplacian.cpp.

References test::f, fDim, fInvK, fK, fTensorK, fXf, and TPZFMatrix< TVar >::Zero().

Referenced by Dimension().

◆ SetPermeability()

void TPZMatLaplacian::SetPermeability ( REAL  perm)
inline

Definition at line 148 of file TPZMatLaplacian.h.

References fDim, fInvK, fTensorK, and TPZFMatrix< TVar >::Zero().

◆ SetPermeabilityFunction()

void TPZMatLaplacian::SetPermeabilityFunction ( TPZAutoPointer< TPZFunction< STATE > >  fp)
inline

Definition at line 163 of file TPZMatLaplacian.h.

◆ SetSolutionPenalty()

void TPZMatLaplacian::SetSolutionPenalty ( )
inline

Defines solution penalty terms in ContributeInterface.

Definition at line 64 of file TPZMatLaplacian.h.

References ESolutionPenalty.

◆ SetSymmetric()

void TPZMatLaplacian::SetSymmetric ( )
inline

Set material elliptic term as the global element method, i.e. the symmetrical formulation.

Definition at line 89 of file TPZMatLaplacian.h.

Referenced by CreatePressureMesh().

◆ SetValPenaltyConstant()

void TPZMatLaplacian::SetValPenaltyConstant ( REAL  penalty)
inline

Definition at line 158 of file TPZMatLaplacian.h.

◆ Solution() [1/3]

void TPZMatLaplacian::Solution ( TPZVec< STATE > &  Sol,
TPZFMatrix< STATE > &  DSol,
TPZFMatrix< REAL > &  axes,
int  var,
TPZVec< STATE > &  Solout 
)
overrideprotectedvirtual
Deprecated:
Deprecated interface for Solution method which must use material data.

Reimplemented from TPZMaterial.

Definition at line 598 of file TPZMatLaplacian.cpp.

References TPZAxesTools< TVar >::Axes2XYZ(), fDim, fK, NSolutionVariables(), TPZVec< T >::Resize(), TPZMaterial::Solution(), sqrt, and val().

Referenced by ErrorsHdiv(), NFluxes(), and Solution().

◆ Solution() [2/3]

void TPZMatLaplacian::Solution ( TPZMaterialData data,
int  var,
TPZVec< STATE > &  Solout 
)
overridevirtual

◆ Solution() [3/3]

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

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

Reimplemented from TPZMaterial.

Definition at line 235 of file TPZMatLaplacian.h.

References DebugStop, Errors(), ErrorsHdiv(), Flux(), and rdt::values.

◆ VariableIndex()

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

Returns the variable index associated with the name

Reimplemented from TPZMaterial.

Definition at line 377 of file TPZMatLaplacian.cpp.

References TPZMaterial::VariableIndex().

Referenced by Contribute().

◆ Write()

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

Saves the element data to a stream.

Reimplemented from TPZDiscontinuousGalerkin.

Definition at line 1138 of file TPZMatLaplacian.cpp.

References fDim, fK, fPenaltyConstant, fSymmetry, fXf, TPZStream::Write(), and TPZDiscontinuousGalerkin::Write().

Referenced by IsInterfaceConservative().

Member Data Documentation

◆ fDim

int TPZMatLaplacian::fDim
protected

◆ fInvK

TPZFNMatrix<9,STATE> TPZMatLaplacian::fInvK
protected

◆ fK

STATE TPZMatLaplacian::fK
protected

◆ fPenaltyConstant

REAL TPZMatLaplacian::fPenaltyConstant

Constant multiplier of penalty term, when required is set.

Definition at line 55 of file TPZMatLaplacian.h.

Referenced by ContributeBCInterface(), ContributeInterface(), operator=(), Print(), Read(), TPZMatLaplacian(), and Write().

◆ fPenaltyType

EPenaltyType TPZMatLaplacian::fPenaltyType
protected

Penalty term definition.

Definition at line 47 of file TPZMatLaplacian.h.

Referenced by ContributeBCInterface(), ContributeInterface(), and operator=().

◆ fPermeabilityFunction

TPZAutoPointer<TPZFunction<STATE> > TPZMatLaplacian::fPermeabilityFunction
protected

Pointer to forcing function, it is the Permeability and its inverse.

Definition at line 50 of file TPZMatLaplacian.h.

Referenced by Contribute(), Errors(), ErrorsHdiv(), operator=(), and Solution().

◆ fSymmetry

REAL TPZMatLaplacian::fSymmetry
protected

Symmetry coefficient of elliptic term.

Symmetrical formulation - Global element method - has coefficient = -1.
Non-symmetrical formulation - Baumann's formulation - has coefficient = +1.

Definition at line 41 of file TPZMatLaplacian.h.

Referenced by ContributeBCInterface(), ContributeInterface(), operator=(), Read(), and Write().

◆ fTensorK

TPZFNMatrix<9,STATE> TPZMatLaplacian::fTensorK
protected

Tensor de permeabilidade.

Definition at line 34 of file TPZMatLaplacian.h.

Referenced by Errors(), operator=(), SetDimension(), SetParameters(), SetPermeability(), and TPZMatLaplacian().

◆ fXf

STATE TPZMatLaplacian::fXf
protected

Forcing function value.

Definition at line 25 of file TPZMatLaplacian.h.

Referenced by ComputeSquareResidual(), Contribute(), ContributeHDiv(), GetParameters(), operator=(), Print(), Read(), SetParameters(), and Write().


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