Material_H2M Class
This class extends the `Material_H2` class to include mechanical constitutive behavior for porous media. It provides methods to evaluate mechanical laws, retrieve state variables, and compute mechanical compressibility coefficients.
Contents
Methods
- mechanicalLaw: Evaluates the mechanical constitutive law at a given integration point and returns the stress and the constitutive matrix.
- getNumberStateVar: Returns the number of state variables associated with the mechanical constitutive law.
- biotCoeff: Returns the Biot coefficient of the porous media.
- mechanicalCompressibilityCoeffs: Computes the mechanical compressibility coefficients for liquid and gas phases based on the saturation `Sl`.
- hasPlasticStrain: Checks if the material exhibits elasto-plastic behavior.
Author
Danilo Cavalcanti
Version History
Version 1.00.
Class definition
classdef Material_H2M < Material_H2
Public attributes
properties (SetAccess = public, GetAccess = public)
mechanical = [];
end
Constructor method
methods
%------------------------------------------------------------------
function this = Material_H2M(matData)
this = this@Material_H2(matData);
% Mechanical constitutive behavior
if strcmp('elastic',matData.porousMedia.mechanical)
this.mechanical = MechanicalLinearElastic();
end
end
end
Public methods
methods
% -----------------------------------------------------------------
% Evaluate the mechanical constitutive law
function [stress,D] = mechanicalLaw(this,ip)
[stress,D] = this.mechanical.eval(this.porousMedia,ip);
end
% -----------------------------------------------------------------
% Get the number of state variables associated with the mechanical
% constitutive law
function nstVar = getNumberStateVar(this)
nstVar = this.mechanical.nstVar;
end
% -----------------------------------------------------------------
% Returns the biot coefficient
function biot = biotCoeff(this)
biot = this.porousMedia.biot;
end
% -----------------------------------------------------------------
% Evaluate the mechanical constitutive law
function [cul,cug] = mechanicalCompressibilityCoeffs(this,Sl)
cul = this.porousMedia.biot * Sl;
cug = this.porousMedia.biot * (1.0 - Sl);
end
% -----------------------------------------------------------------
% Checks if the material exhibits elasto-plastic behaviour
function flag = hasPlasticStrain(this)
flag = this.mechanical.isElastoPlastic();
end
end
end