6 #ifndef MATCOUPLEDTRANSPDARCY 7 #define MATCOUPLEDTRANSPDARCY 47 PZError <<
"Error! - This method should not be called - " << __PRETTY_FUNCTION__ << std::endl;
65 if (!this->fMaterials[0] || !this->fMaterials[1]){
66 PZError <<
"Error! - " << __PRETTY_FUNCTION__ << std::endl;
73 PZError <<
"Error! - " << __PRETTY_FUNCTION__ << std::endl;
82 if (!this->fMaterials[0] || !this->fMaterials[1]){
83 PZError <<
"Error! - " << __PRETTY_FUNCTION__ << std::endl;
87 if (eq == 0 || eq ==1)
return this->fMaterials[eq];
89 PZError <<
" Error - " << __PRETTY_FUNCTION__ << std::endl;
120 virtual void Print(std::ostream & out)
override;
122 virtual std::string
Name()
override {
return "TPZCoupledTransportDarcy"; }
210 virtual int ClassId()
const override;
Defines the interface which material objects need to implement for discontinuous Galerkin formulation...
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.
TPZMatPoisson3d * GetCurrentMaterial() const
virtual void ContributeBCInterface(TPZMaterialData &data, TPZMaterialData &dataleft, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc) override
It computes a contribution to stiffness matrix and load vector at one BC integration point...
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...
clarg::argBool bc("-bc", "binary checkpoints", false)
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...
virtual TPZMaterial * NewMaterial() override
To create another material of the same type.
virtual void Flux(TPZVec< REAL > &x, TPZVec< STATE > &Sol, TPZFMatrix< STATE > &DSol, TPZFMatrix< REAL > &axes, TPZVec< STATE > &flux) override
Compute the value of the flux function to be used by ZZ error estimator.
TPZMaterial * fMaterialRefs[2]
int Dimension() const override
Returns the integrable dimension of the material.
TPZMatPoisson3d * GetMaterial(int eq)
virtual std::string Name() override
Returns the name of the material.
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 o...
TPZMatPoisson3d * fMaterials[2]
void UpdateConvectionDir(TPZFMatrix< STATE > &dsol)
virtual int NSolutionVariables(int var) override
Returns the number of variables associated with the variable indexed by var.
static void SetCurrentMaterial(const int i)
Contains the TPZMatPoisson3d class.
virtual int VariableIndex(const std::string &name) override
This abstract class defines the behaviour which each derived class needs to implement.
virtual ~TPZCoupledTransportDarcy()
virtual TPZBndCond * CreateBC(TPZMaterial *mat, int id, int typ, TPZFMatrix< STATE > &val1, TPZFMatrix< STATE > &val2) override
Creates an object TPZBndCond derived of TPZMaterial.
virtual int NStateVariables() const override
Returns the number of state variables associated with the material.
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< REAL > normal, REAL elsize)
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...
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...
Contains TPZMatrixclass which implements full matrix (using column major representation).
TPZCoupledTransportDarcy(TPZCoupledTransportDarcy ©)
This class defines the boundary condition for TPZMaterial objects.
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...
virtual void Contribute(TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ef) override
It computes a contribution to the residual vector at one integration point.
void UpdateConvectionDirInterface(TPZFMatrix< STATE > &dsolL, TPZFMatrix< STATE > &dsolR)
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...
virtual int HasForcingFunction()
Directive that gives true if the material has a forcing function.
virtual int Dimension() const override
Returns the integrable dimension of the material.
Implements two equations where the second one requires the solution of the first. ...
virtual int HasForcingFunction() override
Directive that gives true if the material has a forcing function.
virtual 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.
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...
TPZCoupledTransportDarcyBC * CreateBC2(int id)
void SetAlpha(REAL alpha)
virtual int NFluxes() override
Returns the number of components which form the flux function.
TPZCoupledTransportDarcy(int nummat, int nummat0, int nummat1, int dim)
virtual int ClassId() const override
Unique identifier for serialization purposes.
virtual void ContributeInterface(TPZMaterialData &data, TPZMaterialData &dataleft, TPZMaterialData &dataright, REAL weight, TPZFMatrix< STATE > &ef) override
It computes a contribution to residual vector at one integration point.
virtual void Print(std::ostream &out) override
Prints out the data associated with the material.
Contains the TPZDiscontinuousGalerkin class which implements the interface for discontinuous Galerkin...
virtual void Solution(TPZVec< STATE > &Sol, TPZFMatrix< STATE > &DSol, TPZFMatrix< REAL > &axes, int var, TPZVec< STATE > &Solout) override
virtual int IsInterfaceConservative() override
Dicontinuous galerkin materials implement contribution of discontinuous elements and interfaces...
REAL fAlpha
In second equation: . Here alpha is stored.
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...
static int CurrentEquation()
#define PZError
Defines the output device to error messages and the DebugStop() function.
virtual void ContributeBCInterface(TPZMaterialData &data, TPZMaterialData &dataleft, REAL weight, TPZFMatrix< STATE > &ef, TPZBndCond &bc) override
It computes a contribution to residual vector at one BC integration point.