91 static STATE gMuRef[3];
115 TPZSwelling(
int matindex, STATE lambda, STATE shear, STATE alfa, STATE M, STATE Gamma, STATE Kperm, STATE DPlus, STATE DMinus,
116 STATE rHinder, STATE Cfc, STATE Nf0, STATE NPlus0, STATE NMinus0);
129 virtual void Print(std::ostream & out)
override;
131 virtual std::string
Name()
override {
return "TPZSwelling"; }
136 fComputationMode = mode;
139 fComputationMode = mode;
142 std::cout <<
"ComputationMode illegal mode = " << mode << std::endl;
155 std::cout <<
"TPZSwelling::Contribute not implemented\n";
160 std::cout <<
"TPZSwelling::Contribute not implemented\n";
180 virtual void ContributeElastEnergy(
207 std::cout <<
"TPZSwelling::ContributeBCEnergy is not implemented\n";
296 int numbersol = data.
sol.
size();
297 if (numbersol != 1) {
303 virtual int ClassId()
const override;
STATE fDPlus
Diffusion coeficient for cations [mm^2/s].
TPZFMatrix< STATE > fKperm
Hydraulic permeability .
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...
STATE fNMinus0
Initial anion volume fraction (no dimension)
virtual void Solution(TPZVec< STATE > &Sol, TPZFMatrix< STATE > &DSol, TPZFMatrix< REAL > &axes, int var, TPZVec< STATE > &Solout) override
Computes a post-processed solution variable corresponding to the variable index.
STATE fM
Storage modulus [N/mm^2].
STATE fDMinus
Diffusion coeficient for anions [mm^2/s].
clarg::argBool bc("-bc", "binary checkpoints", false)
int NumCases()
Methods needed to perform convergence checks.
virtual void Print(std::ostream &out) override
Prints out the data associated with the material.
static STATE gExtConc
External concentration (used as reference value for pressure) [mmol/mm^3].
STATE fShear
Shear modulus [N/mm^2].
TPZGradSolVec dsol
vector of the derivatives of the solution at the integration point
The TPZSwelling class implements a numerical model of swelling material coupling flow through porous ...
virtual int NStateVariables() const override
Number of state variables, in this case: 3 displacements, 1 pressure, 3 eletrochemical potencials...
This class implements a simple vector storage scheme for a templated class T. Utility.
static TPZFMatrix< REAL > gdphi
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.
void ExactSolution(TPZVec< STATE > &mu, STATE ksi, STATE pres, TPZVec< STATE > &N)
void ComputeTangent(TPZFMatrix< STATE > &tangent, TPZVec< REAL > &coefs, int cases)
Computes the tangent matrix for a given loadcase.
STATE fAlfa
Biot coupling coeficient (no dimension)
This abstract class defines the behaviour which each derived class needs to implement.
static STATE gTemp
Absolute temperature [K].
static STATE gRGas
gas constant [Nmm/(mmol K)]
STATE fCfc
Fixed charge density [mmoleq/mm^3].
int64_t size() const
Returns the number of elements of the vector.
STATE fInitDeform
Initial deformation (assuming everything occurs isotropically, a constant is suficient (no dimension)...
STATE fNf0
Initial fluid volume fraction (do dimension)
Contains TPZMatrixclass which implements full matrix (using column major representation).
#define DebugStop()
Returns a message to user put a breakpoint in.
This class defines the boundary condition for TPZMaterial objects.
virtual std::string Name() override
Returns the name of the material.
STATE fTheta
Timestepping parameter theta (no dimension)
static STATE gFaraday
Faraday constant [C/mmol].
TPZFNMatrix< 9, REAL > axes
axes indicating the directions of the derivatives of the shapefunctions
void ComputeN(TPZVec< STATE > &N, TPZVec< STATE > &mu, STATE ksi)
Computes the value of the N coeficients in function of ksi and mus, iterative method, inverting the Hessian of W.
int fComputationMode
Computation mode: 0->residual wrt to time 1->residual and tangent wrt to time .
static TPZFMatrix< REAL > gphi
Variables which holds the state variables used in the check convergence procedure.
STATE fGamma
Osmotic coeficient (no dimension)
virtual void ContributeBC(TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc)=0
It computes a contribution to the stiffness matrix and load vector at one BC integration point...
TPZSwelling(int matindex, STATE lambda, STATE shear, STATE alfa, STATE M, STATE Gamma, STATE Kperm, STATE DPlus, STATE DMinus, STATE rHinder, STATE Cfc, STATE Nf0, STATE NPlus0, STATE NMinus0)
Constructor of the class, where the user needs to specify the most important parameters.
void LoadState(TPZFMatrix< STATE > &state)
Loads the state within the current object, to be used when computing the tangent matrix.
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...
STATE fNPlus0
Initial cation volume fraction (no dimension)
void ComputeInitialGuess(TPZVec< STATE > &mu, STATE J, STATE &pres, STATE &ksi, TPZVec< STATE > &N)
Computes the aproximate values of the pressure, ksi and N based on mu and J by direct inversion of th...
virtual int VariableIndex(const std::string &name) override
static STATE gMuRef[3]
Reference chemical potentials (order f,plus,minus) [mV].
virtual void Contribute(TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ef) override
It computes a contribution to the residual vector at one integration point.
void SetComputationMode(int mode)
static STATE gVPlus
Molar volume cation [mm^3/mmol].
virtual int ClassId() const override
Define the class id associated with the class.
STATE frHinder
Hindrance factor (no dimension)
STATE fLambda
Compression modulus [N/mm^2].
virtual int Dimension() const override
Dimension of the problem.
static TPZFMatrix< STATE > gState
Variables which holds the state variables used in the check convergence procedure.
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...
TPZSolVec sol
vector of the solutions at the integration point
static STATE gVMinus
Molar volume anions [mm^3/mmol].
virtual int NSolutionVariables(int var) override
Returns the number of solution variables associated with a variable index.
void Residual(TPZFMatrix< STATE > &res, int cases)
Computes the residual for the given state variable.
void NResidual(TPZVec< STATE > &mu, STATE ksi, STATE pressure, TPZVec< STATE > &N, TPZFMatrix< STATE > &res, TPZFMatrix< STATE > &tangent)
Computes the residual and tangent vector of the system of equations which determines N...