MaterialDiscontinuity_M Class
This class represents a material discontinuity with mechanical and constitutive behavior. It provides methods to evaluate the mechanical constitutive law, retrieve the number of state variables, and check for plastic strain behavior.
Contents
Methods
- mechanicalLaw: Evaluates the mechanical constitutive law at a given integration point and returns the stress and material stiffness matrix.
- getNumberStateVar: Returns the number of state variables associated with the mechanical constitutive law.
- hasPlasticStrain: Checks if the material exhibits elasto-plastic behavior.
Author
Danilo Cavalcanti
Version History
Version 1.00: Initial version (January 2024).
Class definition
classdef MaterialDiscontinuity_M < handle
Public attributes
properties (SetAccess = public, GetAccess = public)
parameters = [];
mechanical = [];
end
Constructor method
methods %------------------------------------------------------------------ function this = MaterialDiscontinuity_M(matData) % Create the material struct this.parameters = struct( ... 'initialAperture', matData.initialAperture, ... 'normalStiffness', matData.normalStiffness, ... 'shearStiffness', matData.shearStiffness,... 'contactPenalization',matData.contactPenalization); % Mechanical constitutive behavior if strcmp('elastic',matData.cohesiveLaw) this.mechanical = MechanicalCohesiveLinearElastic(); end end end
Public methods
methods % ----------------------------------------------------------------- % Evaluate the mechanical constitutive law function [stress,D] = mechanicalLaw(this,ip) [stress,D] = this.mechanical.eval(this.parameters,ip); end % ----------------------------------------------------------------- % Get the number of state variables associated with the mechanical % constitutive law function nstVar = getNumberStateVar(this) nstVar = this.mechanical.nstVar; end % ----------------------------------------------------------------- % Check if the material is elasto-plastic or not function flag = hasPlasticStrain(this) flag = this.mechanical.isElastoPlastic(); end end
end