NeoPZ
Public Member Functions | List of all members
TPZDiscontinuousGalerkin Class Referenceabstract

Defines the interface which material objects need to implement for discontinuous Galerkin formulations. More...

#include <pzdiscgal.h>

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

Public Member Functions

 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 std::string Name () override
 Returns the name of the material. More...
 
virtual void FillDataRequirementsInterface (TPZMaterialData &data) override
 Fill material data parameter with necessary requirements for the ContributeInterface method. 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 int IsInterfaceConservative ()
 Dicontinuous galerkin materials implement contribution of discontinuous elements and interfaces. More...
 
virtual void InterfaceJump (TPZVec< REAL > &x, TPZSolVec &leftu, TPZSolVec &rightu, TPZSolVec &jump)
 Computes interface jump = leftu - rightu. More...
 
virtual void BCInterfaceJump (TPZVec< REAL > &x, TPZSolVec &leftu, TPZBndCond &bc, TPZSolVec &jump)
 Computes interface jump from element to Dirichlet boundary condition. It has to reimplemented. 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 (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...
 
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 (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef) override=0
 It computes a contribution to the stiffness matrix and load 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 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 > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc) override=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 > &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 Contribute (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ef) override
 It computes a contribution to the residual vector at one integration point. 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 (TPZMaterialData &data, TPZMaterialData &dataleft, TPZMaterialData &dataright, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef)
 It computes a contribution to stiffness matrix and load vector at one integration point. 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, TPZMaterialData &dataleft, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc)=0
 It computes a contribution to stiffness matrix and load vector at one BC 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...
 
Save and Load methods
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...
 
- 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 (TPZMaterialData &data)
 Fill material data parameter with necessary requirements for the. 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, TPZMaterialData &data)
 This method defines which parameters need to be initialized in order to compute the contribution of the boundary condition. 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...
 
virtual int Dimension () const =0
 Returns the integrable dimension of the material. More...
 
int Id () const
 
void SetId (int id)
 
virtual int NStateVariables () const =0
 Returns the number of state variables associated with the material. More...
 
virtual int NFluxes ()
 Returns the number of components which form the flux function. More...
 
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 void Print (std::ostream &out=std::cout)
 Prints out the data associated with the material. 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 ErrorsHdiv (TPZMaterialData &data, TPZVec< STATE > &u_exact, TPZFMatrix< STATE > &du_exact, TPZVec< REAL > &values)
 
virtual int NEvalErrors ()
 Returns the number of norm errors. Default is 3: energy, L2 and H1. More...
 
virtual TPZMaterialNewMaterial ()
 To create another material of the same type. 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 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...
 
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 int VariableIndex (const std::string &name)
 Returns the variable index associated with the name. More...
 
virtual int NSolutionVariables (int var)
 Returns the number of variables associated with the variable indexed by var. 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...
 
- 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
 

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...
 
- Protected Member Functions inherited from TPZMaterial
virtual void Solution (TPZVec< STATE > &Sol, TPZFMatrix< STATE > &DSol, TPZFMatrix< REAL > &axes, int var, TPZVec< STATE > &Solout)
 
- 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...
 

Detailed Description

Defines the interface which material objects need to implement for discontinuous Galerkin formulations.

Definition at line 20 of file pzdiscgal.h.

Constructor & Destructor Documentation

◆ TPZDiscontinuousGalerkin() [1/3]

TPZDiscontinuousGalerkin::TPZDiscontinuousGalerkin ( )

Simple constructor.

Definition at line 12 of file pzdiscgal.cpp.

◆ TPZDiscontinuousGalerkin() [2/3]

TPZDiscontinuousGalerkin::TPZDiscontinuousGalerkin ( int  nummat)

Constructor with the index of the material object within the vector.

Definition at line 14 of file pzdiscgal.cpp.

◆ TPZDiscontinuousGalerkin() [3/3]

TPZDiscontinuousGalerkin::TPZDiscontinuousGalerkin ( const TPZDiscontinuousGalerkin copy)

Copy constructor.

Definition at line 16 of file pzdiscgal.cpp.

◆ ~TPZDiscontinuousGalerkin()

TPZDiscontinuousGalerkin::~TPZDiscontinuousGalerkin ( )
virtual

Destructor.

Definition at line 18 of file pzdiscgal.cpp.

Member Function Documentation

◆ BCInterfaceJump()

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

Computes interface jump from element to Dirichlet boundary condition. It has to reimplemented.

Since
Mar 08, 2006

Reimplemented in TPZMatPoisson3d, and TPZMatLaplacian.

Definition at line 102 of file pzdiscgal.cpp.

References DebugStop, and PZError.

Referenced by TPZBndCond::InterfaceJump(), and SolutionDisc().

◆ ClassId()

int TPZDiscontinuousGalerkin::ClassId ( ) const
overridevirtual

◆ Contribute() [1/4]

virtual void TPZDiscontinuousGalerkin::Contribute ( TPZMaterialData data,
REAL  weight,
TPZFMatrix< STATE > &  ek,
TPZFMatrix< STATE > &  ef 
)
overridepure virtual

◆ Contribute() [2/4]

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

Reimplemented in TPZBndCond, TPZMatPoisson3d, TPZMixedElasticityMaterial, TPZMatLaplacian, TPZMixedPoisson, TPZLagrangeMultiplier, TPZBndCondWithMem< TMEM >, TPZElasticityMaterial, TPZMixedPoissonParabolic, TPZTracerFlow, TPZMultiphase, and TPZElasticity2DHybrid.

Definition at line 54 of file pzdiscgal.h.

References TPZMaterial::Contribute().

◆ Contribute() [3/4]

virtual void TPZDiscontinuousGalerkin::Contribute ( TPZVec< TPZMaterialData > &  datavec,
REAL  weight,
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
ef[out] is the load vector

Reimplemented from TPZMaterial.

Reimplemented in TPZBndCondWithMem< TMEM >, TPZMixedPoissonParabolic, TPZTracerFlow, and TPZMultiphase.

Definition at line 64 of file pzdiscgal.h.

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

◆ Contribute() [4/4]

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

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

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

Reimplemented from TPZMaterial.

Reimplemented in TPZBndCond, TPZEulerConsLaw, TPZMixedElasticityMaterial, TPZMatPoisson3d, TPZMatLaplacian, TPZConservationLaw, TPZEulerEquation, TPZLagrangeMultiplier, TPZCoupledTransportDarcy, TPZElasticityMaterial, TPZPostProcMat, TPZBndCondWithMem< TMEM >, TPZCoupledTransportDarcyBC, TPZMatPoisson3dReferred, TPZBCTension, TPZHybridPoisson, TPZL2Projection, TPZNonLinBiharmonic, TPZNonLinearPoisson3d, TPZBurger, TPZConsLawTest, and TPZBiharmonic.

Definition at line 76 of file pzdiscgal.h.

References TPZMaterial::Contribute().

◆ ContributeBC() [1/4]

virtual void TPZDiscontinuousGalerkin::ContributeBC ( TPZMaterialData data,
REAL  weight,
TPZFMatrix< STATE > &  ek,
TPZFMatrix< STATE > &  ef,
TPZBndCond bc 
)
overridepure virtual

◆ ContributeBC() [2/4]

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

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 TPZMaterial.

Reimplemented in TPZMixedElasticityMaterial, TPZMatLaplacian, TPZMatPoisson3d, TPZMixedPoisson, TPZLagrangeMultiplier, TPZElasticityMaterial, TPZMixedPoissonParabolic, TPZTracerFlow, and TPZMultiphase.

Definition at line 72 of file pzdiscgal.h.

References TPZMaterial::ContributeBC().

◆ ContributeBC() [3/4]

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

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
Since
April 16, 2007

Reimplemented from TPZMaterial.

Reimplemented in TPZBndCond, TPZEulerConsLaw, TPZMatPoisson3d, TPZMixedElasticityMaterial, TPZConservationLaw, TPZElasticityMaterial, TPZLagrangeMultiplier, TPZCoupledTransportDarcy, TPZL2Projection, TPZBndCondWithMem< TMEM >, TPZCoupledTransportDarcyBC, TPZBurger, TPZMatPoisson3dReferred, TPZNonLinBiharmonic, TPZConsLawTest, TPZBiharmonic, and TPZNonLinearPoisson3d.

Definition at line 79 of file pzdiscgal.h.

References TPZMaterial::ContributeBC().

◆ ContributeBC() [4/4]

virtual void TPZDiscontinuousGalerkin::ContributeBC ( TPZVec< TPZMaterialData > &  datavec,
REAL  weight,
TPZFMatrix< STATE > &  ef,
TPZBndCond bc 
)
inlineoverridevirtual

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 TPZMaterial.

Reimplemented in TPZMultiphase.

Definition at line 83 of file pzdiscgal.h.

References TPZMaterial::ContributeBC(), ContributeBCInterface(), and ContributeInterface().

◆ ContributeBCInterface() [1/3]

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

◆ ContributeBCInterface() [2/3]

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

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

Parameters
data[in]
dataleft[in]
weight[in]
ek[out] is the stiffness matrix
ef[out] is the load vector
bc[in] is the boundary condition object
Since
February 21, 2013

Reimplemented in TPZLagrangeMultiplier, TPZTracerFlow, and TPZMultiphase.

Definition at line 60 of file pzdiscgal.cpp.

References ContributeBCInterface(), and TPZMatrix< TVar >::Rows().

◆ ContributeBCInterface() [3/3]

void TPZDiscontinuousGalerkin::ContributeBCInterface ( TPZMaterialData data,
TPZMaterialData dataleft,
REAL  weight,
TPZFMatrix< STATE > &  ef,
TPZBndCond bc 
)
virtual

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

Parameters
data[in]
dataleft[in]
weight[in]
ef[out] is the load vector
bc[in] is the boundary condition object
Since
April 16, 2007

Reimplemented in TPZBndCond, TPZEulerConsLaw, TPZMixedElasticityMaterial, TPZLagrangeMultiplier, TPZMatPoisson3d, TPZCoupledTransportDarcy, TPZElasticityMaterial, TPZEulerEquation, TPZCoupledTransportDarcyBC, TPZBndCondWithMem< TMEM >, TPZNonLinBiharmonic, TPZBiharmonic, TPZBurger, TPZMultiphase, TPZMatPoisson3dReferred, TPZL2Projection, TPZNonLinearPoisson3d, and TPZTracerFlow.

Definition at line 68 of file pzdiscgal.cpp.

References ContributeBCInterface(), and TPZMatrix< TVar >::Rows().

◆ ContributeInterface() [1/5]

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

◆ ContributeInterface() [2/5]

void TPZDiscontinuousGalerkin::ContributeInterface ( TPZVec< TPZMaterialData > &  datavec,
TPZVec< TPZMaterialData > &  dataleftvec,
TPZVec< TPZMaterialData > &  datarightvec,
REAL  weight,
TPZFMatrix< STATE > &  ek,
TPZFMatrix< STATE > &  ef 
)
virtual

Reimplemented in TPZMultiphase.

Definition at line 54 of file pzdiscgal.cpp.

References DebugStop.

◆ ContributeInterface() [3/5]

void TPZDiscontinuousGalerkin::ContributeInterface ( TPZMaterialData data,
TPZVec< TPZMaterialData > &  dataleft,
TPZVec< TPZMaterialData > &  dataright,
REAL  weight,
TPZFMatrix< STATE > &  ek,
TPZFMatrix< STATE > &  ef 
)
virtual

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

Parameters
data[in]
dataleft[in]
dataright[in]
weight[in]
ek[out] is the stiffness matrix
ef[out] is the load vector
Since
June 5, 2012

Reimplemented in TPZBndCond, TPZLagrangeMultiplier, TPZBndCondWithMem< TMEM >, TPZTracerFlow, and TPZMultiphase.

Definition at line 48 of file pzdiscgal.cpp.

References ContributeInterface(), and TPZMatrix< TVar >::Rows().

◆ ContributeInterface() [4/5]

void TPZDiscontinuousGalerkin::ContributeInterface ( TPZMaterialData data,
TPZMaterialData dataleft,
TPZMaterialData dataright,
REAL  weight,
TPZFMatrix< STATE > &  ef 
)
virtual

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

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

Reimplemented in TPZBndCond, TPZEulerConsLaw, TPZMatPoisson3d, TPZMixedElasticityMaterial, TPZConservationLaw, TPZLagrangeMultiplier, TPZCoupledTransportDarcy, TPZElasticityMaterial, TPZEulerEquation, TPZBndCondWithMem< TMEM >, TPZCoupledTransportDarcyBC, TPZNonLinBiharmonic, TPZBiharmonic, TPZBurger, TPZMatPoisson3dReferred, TPZL2Projection, TPZNonLinearPoisson3d, and TPZHybridPoisson.

Definition at line 36 of file pzdiscgal.cpp.

References ContributeInterface(), and TPZMatrix< TVar >::Rows().

◆ ContributeInterface() [5/5]

void TPZDiscontinuousGalerkin::ContributeInterface ( TPZMaterialData data,
TPZVec< TPZMaterialData > &  dataleft,
TPZVec< TPZMaterialData > &  dataright,
REAL  weight,
TPZFMatrix< STATE > &  ef 
)
virtual

Computes a contribution to residual vector at one integration point.

Parameters
data[in]
dataleft[in]
dataright[in]
weight[in]
ef[out] is the load vector
Since
June 5, 2012

Reimplemented in TPZLagrangeMultiplier, TPZTracerFlow, and TPZMultiphase.

Definition at line 42 of file pzdiscgal.cpp.

References ContributeInterface(), and TPZMatrix< TVar >::Rows().

◆ ContributeInterfaceBCErrors()

virtual void TPZDiscontinuousGalerkin::ContributeInterfaceBCErrors ( TPZMaterialData data,
TPZMaterialData dataleft,
REAL  weight,
TPZVec< STATE > &  nk,
TPZBndCond bc,
int &  errorid 
)
inlinevirtual

Reimplemented in TPZBndCond, TPZLagrangeMultiplier, and TPZBiharmonicEstimator.

Definition at line 220 of file pzdiscgal.h.

References PZError.

Referenced by TPZBndCond::ContributeInterfaceErrors().

◆ ContributeInterfaceErrors()

virtual void TPZDiscontinuousGalerkin::ContributeInterfaceErrors ( TPZMaterialData data,
TPZMaterialData dataleft,
TPZMaterialData dataright,
REAL  weight,
TPZVec< STATE > &  nkL,
TPZVec< STATE > &  nkR,
int &  errorid 
)
inlinevirtual

Reimplemented in TPZBndCond, TPZLagrangeMultiplier, and TPZBiharmonicEstimator.

Definition at line 212 of file pzdiscgal.h.

References PZError.

Referenced by TPZInterfaceElement::ComputeErrorFace().

◆ Errors() [1/3]

virtual void TPZDiscontinuousGalerkin::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 
)
inlineoverridevirtual

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

Reimplemented from TPZMaterial.

Reimplemented in TPZBndCond, TPZMixedElasticityMaterial, TPZMatPoisson3d, TPZMatLaplacian, TPZElasticityMaterial, TPZMatConvectionProblem, TPZCoupledTransportDarcy, TPZL2Projection, TPZElasticityAxiMaterial, TPZCoupledTransportDarcyBC, TPZBiharmonicEstimator, TPZBiharmonic, TPZNonLinBiharmonic, TPZConsLawTest, and TPZMatDualHybridPoisson.

Definition at line 228 of file pzdiscgal.h.

References ClassId(), TPZMaterial::Errors(), Read(), and Write().

Referenced by TPZMatPoisson3d::Errors().

◆ Errors() [2/3]

void TPZDiscontinuousGalerkin::Errors ( TPZMaterialData data,
TPZVec< STATE > &  u_exact,
TPZFMatrix< STATE > &  du_exact,
TPZVec< REAL > &  errors 
)
overridevirtual

Reimplemented from TPZMaterial.

Definition at line 91 of file pzdiscgal.cpp.

References TPZMaterial::Errors().

◆ Errors() [3/3]

void TPZDiscontinuousGalerkin::Errors ( TPZVec< TPZMaterialData > &  data,
TPZVec< STATE > &  u_exact,
TPZFMatrix< STATE > &  du_exact,
TPZVec< REAL > &  errors 
)
overridevirtual

Reimplemented from TPZMaterial.

Reimplemented in TPZMixedElasticityMaterial, TPZMatPoisson3d, and TPZMixedPoisson.

Definition at line 96 of file pzdiscgal.cpp.

References TPZMaterial::Errors().

◆ FillDataRequirementsInterface()

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

Reimplemented in TPZMatLaplacian, TPZLagrangeMultiplier, TPZTracerFlow, and TPZHybridPoisson.

Definition at line 22 of file pzdiscgal.cpp.

References TPZMaterial::fLinearContext, TPZMaterialData::fNeedsNeighborSol, TPZMaterialData::fNeedsSol, and TPZMaterialData::SetAllRequirements().

Referenced by TPZInterfaceElement::InitMaterialData().

◆ GetIntegrationOrder()

int TPZDiscontinuousGalerkin::GetIntegrationOrder ( TPZVec< int > &  porder_left,
TPZVec< int > &  porder_right 
) const
virtual

return the integration order as a function of interpolation orders of the left and right elements

Definition at line 123 of file pzdiscgal.cpp.

References porder.

Referenced by TPZMultiphysicsInterfaceElement::CalcStiff(), and TPZMultiphysicsInterfaceElement::CreateIntegrationRule().

◆ InterfaceJump()

void TPZDiscontinuousGalerkin::InterfaceJump ( TPZVec< REAL > &  x,
TPZSolVec leftu,
TPZSolVec rightu,
TPZSolVec jump 
)
virtual

Computes interface jump = leftu - rightu.

Since
Feb 14, 2006

Reimplemented in TPZBndCond, and TPZLagrangeMultiplier.

Definition at line 77 of file pzdiscgal.cpp.

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

Referenced by TPZInterfaceElement::EvaluateInterfaceJump(), and SolutionDisc().

◆ IsInterfaceConservative()

int TPZDiscontinuousGalerkin::IsInterfaceConservative ( )
virtual

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 in TPZMatPoisson3d, TPZMatLaplacian, and TPZCoupledTransportDarcy.

Definition at line 73 of file pzdiscgal.cpp.

Referenced by SolutionDisc().

◆ Name()

std::string TPZDiscontinuousGalerkin::Name ( )
overridevirtual

◆ Read()

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

◆ SolutionDisc()

void TPZDiscontinuousGalerkin::SolutionDisc ( TPZMaterialData data,
TPZMaterialData dataleft,
TPZMaterialData dataright,
int  var,
TPZVec< STATE > &  Solout 
)
inline

◆ Write()

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

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