NeoPZ
|
This material consider exactly just laplace equation (i.e. coefficient equal to 1) More...
#include <TPZDualPoisson.h>
Public Member Functions | |
TPZDualPoisson () | |
default constructor More... | |
~TPZDualPoisson () | |
default desconstructor More... | |
TPZDualPoisson (int mat_id) | |
constructor based on material id More... | |
TPZDualPoisson (const TPZDualPoisson ©) | |
constructor based on object copy More... | |
TPZMaterial * | NewMaterial () override |
return a material object from a this object More... | |
TPZDualPoisson & | operator= (const TPZDualPoisson &other) |
assignment operator More... | |
Material attributes | |
int | Dimension () const override |
return the euclidean dimension of the weak statement More... | |
virtual int | NStateVariables () const override |
return the number of state variables associated with each trial function More... | |
void | Print (std::ostream &out) override |
print all material information More... | |
std::string | Name () override |
print material name More... | |
void | FillDataRequirements (TPZMaterialData &data) override |
fill requirements for volumetric contribute methods More... | |
void | FillBoundaryConditionDataRequirement (int type, TPZMaterialData &data) override |
fill requirements for bounadry contribute methods More... | |
void | FillDataRequirements (TPZVec< TPZMaterialData > &datavec) override |
fill requirements for volumetric contribute methods multiphsycis mesh More... | |
void | FillBoundaryConditionDataRequirement (int type, TPZVec< TPZMaterialData > &datavec) override |
fill requirements for boundary contribute methods multiphsycis mesh More... | |
virtual int | ClassId () const override |
unique class identifier More... | |
virtual void | Write (TPZStream &buf, int withclassid) const override |
write class in disk More... | |
void | Read (TPZStream &buf, void *context) override |
write class from disk More... | |
Contribute methods (weak formulation) no multiphysics mesh | |
void | Contribute (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef) override |
Volumetric contribute without jacobian matrix. More... | |
void | Contribute (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ef) override |
Volumetric contribute. More... | |
void | ContributeBC (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ef, TPZBndCond &bc) override |
Boundary contribute without jacobian matrix. More... | |
void | ContributeBC (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc) override |
Boundary contribute. More... | |
Contribute methods (weak formulation) multiphysics mesh | |
void | Contribute (TPZVec< TPZMaterialData > &datavec, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef) override |
Volumetric contribute without jacobian matrix. More... | |
void | Contribute (TPZVec< TPZMaterialData > &datavec, REAL weight, TPZFMatrix< STATE > &ef) override |
Volumetric contribute. More... | |
void | ContributeBC (TPZVec< TPZMaterialData > &datavec, REAL weight, TPZFMatrix< STATE > &ef, TPZBndCond &bc) override |
Boundary contribute without jacobian matrix. More... | |
void | ContributeBC (TPZVec< TPZMaterialData > &datavec, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc) override |
Boundary contribute. More... | |
Post-processing methods | |
int | NEvalErrors () override |
Number of errors being computed = { 0-> h1, 1 ->L2 primal, 2 L2 dual}. More... | |
int | VariableIndex (const std::string &name) override |
Variable index based on variable naming. More... | |
int | NSolutionVariables (int var) override |
size of the current variable (1 -> scalar, 3-> vector, 9 -> Tensor ) More... | |
void | Solution (TPZMaterialData &data, int var, TPZVec< STATE > &Solout) override |
Postprocess required variables. More... | |
void | Solution (TPZVec< TPZMaterialData > &datavec, int var, TPZVec< STATE > &Solout) override |
Postprocess required variables multiphysics. More... | |
void | Errors (TPZVec< REAL > &x, TPZVec< STATE > &u, TPZFMatrix< STATE > &du, TPZFMatrix< REAL > &axes, TPZVec< STATE > &flux, TPZVec< STATE > &u_exact, TPZFMatrix< STATE > &du_exact, TPZVec< REAL > &error) override |
Compute errors, no comments!!! More... | |
void | Errors (TPZVec< TPZMaterialData > &data, TPZVec< STATE > &u_exact, TPZFMatrix< STATE > &du_exact, TPZVec< REAL > &errors) override |
Public Member Functions inherited from TPZMaterial | |
TPZMaterial (int id) | |
Creates a material object and inserts it in the vector of material pointers of the mesh. More... | |
TPZMaterial () | |
Default constructor. More... | |
TPZMaterial (const TPZMaterial &mat) | |
Creates a material object based on the referred object and inserts it in the vector of material pointers of the mesh. More... | |
TPZMaterial & | operator= (const TPZMaterial ©) |
operator = More... | |
virtual | ~TPZMaterial () |
Default destructor. More... | |
virtual void | 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) |
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 TPZBndCond * | CreateBC (TPZMaterial *reference, int id, int typ, TPZFMatrix< STATE > &val1, TPZFMatrix< STATE > &val2) |
Creates an object TPZBndCond derived of TPZMaterial. More... | |
void | SetForcingFunction (TPZAutoPointer< TPZFunction< STATE > > fp) |
Sets a procedure as source function for the material. More... | |
void | SetForcingFunction (void(*fp)(const TPZVec< REAL > &loc, TPZVec< STATE > &result), int porder) |
void | SetForcingFunction (void(*fp)(const TPZVec< REAL > &loc, TPZVec< STATE > &result, TPZFMatrix< STATE > &gradu), int porder) |
TPZAutoPointer< TPZFunction< STATE > > & | ForcingFunction () |
Returns a procedure as source function for the material. More... | |
void | SetForcingFunctionExact (TPZAutoPointer< TPZFunction< STATE > > fp) |
Sets a procedure as exact solution for the problem. More... | |
TPZAutoPointer< TPZFunction< STATE > > & | ForcingFunctionExact () |
Returns a procedure as exact solution for the problem. More... | |
void | SetTimeDependentForcingFunction (TPZAutoPointer< TPZFunction< STATE > > fp) |
Sets a procedure as time dependent source function for the material. More... | |
TPZAutoPointer< TPZFunction< STATE > > & | TimeDependentForcingFunction () |
Returns a procedure as time dependent source function for the material. More... | |
void | SetTimeDependentFunctionExact (TPZAutoPointer< TPZFunction< STATE > > fp) |
Sets a procedure as time dependent exact solution for the problem. More... | |
TPZAutoPointer< TPZFunction< STATE > > & | TimedependentFunctionExact () |
Returns a procedure as time dependent exact solution for the problem. More... | |
void | SetBCForcingFunction (TPZAutoPointer< TPZFunction< STATE > > fp) |
Sets a procedure as variable boundary condition. More... | |
TPZAutoPointer< TPZFunction< STATE > > & | BCForcingFunction () |
Returns a procedure as variable boundary condition. More... | |
void | SetTimedependentBCForcingFunction (TPZAutoPointer< TPZFunction< STATE > > fp) |
Sets a procedure as time variable boundary condition. More... | |
TPZAutoPointer< TPZFunction< STATE > > & | TimedependentBCForcingFunction () |
Returns a procedure as time variable boundary condition. More... | |
virtual int | HasForcingFunction () |
Directive that gives true if the material has a forcing function. More... | |
virtual int | HasForcingFunctionExact () |
Directive that gives true if the material has a function exact. More... | |
virtual int | HasBCForcingFunction () |
Directive that gives true if the material has a bc forcing function exact. More... | |
virtual int | HasTimedependentFunctionExact () |
Directive that gives true if the material has a time dependent function exact. More... | |
virtual int | HasTimedependentForcingFunction () |
Directive that gives true if the material has a time dependent forcing function. More... | |
virtual int | HasTimedependentBCForcingFunction () |
Directive that gives true if the material has a time dependent bc forcing function. More... | |
virtual int | IntegrationRuleOrder (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 | ErrorsHdiv (TPZMaterialData &data, TPZVec< STATE > &u_exact, TPZFMatrix< STATE > &du_exact, TPZVec< REAL > &values) |
virtual void | SetData (std::istream &data) |
Reads data of the material from a istream (file data) More... | |
virtual void | Clone (std::map< int, TPZMaterial * > &matvec) |
Creates a copy of the material object and put it in the vector which is passed on. More... | |
virtual int | FluxType () |
To return a numerical flux type to apply over the interfaces of the elements. More... | |
virtual void | ContributeErrors (TPZMaterialData &data, REAL weight, TPZVec< REAL > &nk, int &errorid) |
virtual REAL | ComputeSquareResidual (TPZVec< REAL > &X, TPZVec< STATE > &sol, TPZFMatrix< STATE > &dsol) |
Computes square of residual of the differential equation at one integration point. More... | |
virtual int | PushMemItem (int sourceIndex=-1) |
Pushes a new entry in the context of materials with memory, returning its index at the internal storage stack. More... | |
virtual void | FreeMemItem (int index) |
Frees an entry in the material with memory internal history storage. More... | |
void | SetLinearContext (bool IsLinear) |
Sets fLinearContext attribute. More... | |
bool | GetLinearContext () const |
Returns fLinearContext attribute. More... | |
int | ClassId () const override |
Unique identifier for serialization purposes. More... | |
void | Write (TPZStream &buf, int withclassid) const override |
Saves the element data to a stream. More... | |
void | Read (TPZStream &buf, void *context) override |
Reads the element data from a stream. More... | |
virtual void | Solution (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 TPZSavable * | CreateInstance (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... | |
This material consider exactly just laplace equation (i.e. coefficient equal to 1)
Definition at line 29 of file TPZDualPoisson.h.
TPZDualPoisson::TPZDualPoisson | ( | ) |
TPZDualPoisson::~TPZDualPoisson | ( | ) |
default desconstructor
Definition at line 16 of file TPZDualPoisson.cpp.
TPZDualPoisson::TPZDualPoisson | ( | int | mat_id | ) |
constructor based on material id
Definition at line 20 of file TPZDualPoisson.cpp.
TPZDualPoisson::TPZDualPoisson | ( | const TPZDualPoisson & | copy | ) |
constructor based on object copy
Definition at line 24 of file TPZDualPoisson.cpp.
|
overridevirtual |
unique class identifier
Implements TPZSavable.
Definition at line 85 of file TPZDualPoisson.cpp.
References TPZMaterial::ClassId(), and Hash().
|
overridevirtual |
Volumetric contribute without jacobian matrix.
Volumetric contribute with jacobian matrix.
Implements TPZMaterial.
Definition at line 107 of file TPZDualPoisson.cpp.
References DebugStop.
Referenced by Contribute().
|
overridevirtual |
Volumetric contribute.
Reimplemented from TPZMaterial.
Definition at line 115 of file TPZDualPoisson.cpp.
References DebugStop.
|
overridevirtual |
Volumetric contribute without jacobian matrix.
Volumetric contribute with jacobian matrix.
Reimplemented from TPZMaterial.
Definition at line 146 of file TPZDualPoisson.cpp.
References TPZFunction< TVar >::Execute(), test::f, TPZMaterial::fForcingFunction, TPZMaterial::HasForcingFunction(), TPZVec< T >::NElements(), TPZMatrix< TVar >::Rows(), and TPZVec< T >::size().
|
overridevirtual |
Volumetric contribute.
Reimplemented from TPZMaterial.
Definition at line 233 of file TPZDualPoisson.cpp.
References Contribute(), and TPZMatrix< TVar >::Rows().
|
overridevirtual |
Boundary contribute without jacobian matrix.
Boundary contribute with jacobian matrix.
Reimplemented from TPZMaterial.
Definition at line 122 of file TPZDualPoisson.cpp.
References DebugStop.
Referenced by ContributeBC().
|
overridevirtual |
Boundary contribute.
Implements TPZMaterial.
Definition at line 130 of file TPZDualPoisson.cpp.
References DebugStop.
|
overridevirtual |
Boundary contribute without jacobian matrix.
Reimplemented from TPZMaterial.
Definition at line 240 of file TPZDualPoisson.cpp.
References ContributeBC(), and TPZMatrix< TVar >::Rows().
|
overridevirtual |
Boundary contribute.
Reimplemented from TPZMaterial.
Definition at line 248 of file TPZDualPoisson.cpp.
References DebugStop, TPZFunction< TVar >::Execute(), TPZMaterial::ForcingFunction(), TPZMaterial::gBigNumber, TPZMaterial::HasForcingFunction(), TPZMatrix< TVar >::Rows(), TPZBndCond::Type(), and TPZBndCond::Val2().
|
overridevirtual |
return the euclidean dimension of the weak statement
Implements TPZMaterial.
Definition at line 41 of file TPZDualPoisson.cpp.
Referenced by Errors(), NSolutionVariables(), and Solution().
|
overridevirtual |
Compute errors, no comments!!!
Reimplemented from TPZMaterial.
Definition at line 449 of file TPZDualPoisson.cpp.
References DebugStop.
|
overridevirtual |
error[0] : primal error using L2 norm
error[1] : dual error using L2 norm
error[2] : div error norm
Reimplemented from TPZMaterial.
Definition at line 414 of file TPZDualPoisson.cpp.
References Dimension(), test::f, and TPZVec< T >::Fill().
|
overridevirtual |
fill requirements for bounadry contribute methods
Reimplemented from TPZMaterial.
Definition at line 61 of file TPZDualPoisson.cpp.
References TPZMaterialData::fNeedsSol, and TPZMaterialData::SetAllRequirements().
|
overridevirtual |
fill requirements for boundary contribute methods multiphsycis mesh
Reimplemented from TPZMaterial.
Definition at line 76 of file TPZDualPoisson.cpp.
References TPZVec< T >::size().
|
overridevirtual |
fill requirements for volumetric contribute methods
Reimplemented from TPZMaterial.
Definition at line 55 of file TPZDualPoisson.cpp.
References TPZMaterialData::fNeedsSol, and TPZMaterialData::SetAllRequirements().
|
overridevirtual |
fill requirements for volumetric contribute methods multiphsycis mesh
Reimplemented from TPZMaterial.
Definition at line 67 of file TPZDualPoisson.cpp.
References TPZVec< T >::size().
|
overridevirtual |
print material name
Reimplemented from TPZMaterial.
Definition at line 52 of file TPZDualPoisson.cpp.
|
overridevirtual |
Number of errors being computed = { 0-> h1, 1 ->L2 primal, 2 L2 dual}.
Reimplemented from TPZMaterial.
Definition at line 314 of file TPZDualPoisson.cpp.
|
overridevirtual |
return a material object from a this object
Reimplemented from TPZMaterial.
Definition at line 28 of file TPZDualPoisson.cpp.
References TPZDualPoisson().
|
overridevirtual |
size of the current variable (1 -> scalar, 3-> vector, 9 -> Tensor )
Reimplemented from TPZMaterial.
Definition at line 328 of file TPZDualPoisson.cpp.
References Dimension(), and TPZMaterial::NSolutionVariables().
Referenced by Solution().
|
overridevirtual |
return the number of state variables associated with each trial function
Implements TPZMaterial.
Definition at line 43 of file TPZDualPoisson.cpp.
TPZDualPoisson & TPZDualPoisson::operator= | ( | const TPZDualPoisson & | other | ) |
assignment operator
Definition at line 32 of file TPZDualPoisson.cpp.
References TPZMaterial::operator=().
|
overridevirtual |
print all material information
Reimplemented from TPZMaterial.
Definition at line 48 of file TPZDualPoisson.cpp.
References TPZMaterial::Print().
|
overridevirtual |
write class from disk
Reimplemented from TPZSavable.
Definition at line 94 of file TPZDualPoisson.cpp.
References DebugStop.
|
overridevirtual |
Postprocess required variables.
Reimplemented from TPZMaterial.
Definition at line 339 of file TPZDualPoisson.cpp.
References DebugStop.
|
overridevirtual |
Postprocess required variables multiphysics.
Reimplemented from TPZMaterial.
Definition at line 345 of file TPZDualPoisson.cpp.
References DebugStop, Dimension(), TPZFunction< TVar >::Execute(), test::f, TPZMaterial::fForcingFunctionExact, TPZMaterial::HasForcingFunctionExact(), NSolutionVariables(), and TPZVec< T >::Resize().
|
overridevirtual |
Variable index based on variable naming.
Reimplemented from TPZMaterial.
Definition at line 316 of file TPZDualPoisson.cpp.
References TPZMaterial::VariableIndex().
|
overridevirtual |
write class in disk
Reimplemented from TPZSavable.
Definition at line 89 of file TPZDualPoisson.cpp.
References DebugStop.