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

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