43 #define IDM_USE_MMAContainingElementProjection 50 #define IDM_USE_MAPPEDSTRAIN 55 #include "../sm/Materials/structuralms.h" 59 #ifdef IDM_USE_MMAClosestIPTransfer 63 #ifdef IDM_USE_MMAContainingElementProjection 67 #ifdef IDM_USE_MMAShapeFunctProjection 71 #ifdef IDM_USE_MMALeastSquareProjection 77 #define _IFT_IsotropicDamageMaterial1_Name "idm1" 78 #define _IFT_IsotropicDamageMaterial1_e0 "e0" 79 #define _IFT_IsotropicDamageMaterial1_ef "ef" 80 #define _IFT_IsotropicDamageMaterial1_wf "wf" 81 #define _IFT_IsotropicDamageMaterial1_equivstraintype "equivstraintype" 82 #define _IFT_IsotropicDamageMaterial1_damageLaw "damlaw" 83 #define _IFT_IsotropicDamageMaterial1_k "k" 84 #define _IFT_IsotropicDamageMaterial1_md "md" 85 #define _IFT_IsotropicDamageMaterial1_ecsm "ecsm" 86 #define _IFT_IsotropicDamageMaterial1_At "at" 87 #define _IFT_IsotropicDamageMaterial1_Bt "bt" 88 #define _IFT_IsotropicDamageMaterial1_ft "ft" 89 #define _IFT_IsotropicDamageMaterial1_wkwf "wkwf" 90 #define _IFT_IsotropicDamageMaterial1_e1ef "e1ef" 91 #define _IFT_IsotropicDamageMaterial1_skft "skft" 92 #define _IFT_IsotropicDamageMaterial1_s1 "s1" 93 #define _IFT_IsotropicDamageMaterial1_sk "sk" 94 #define _IFT_IsotropicDamageMaterial1_wk "wk" 95 #define _IFT_IsotropicDamageMaterial1_e1 "e1" 96 #define _IFT_IsotropicDamageMaterial1_ek "ek" 97 #define _IFT_IsotropicDamageMaterial1_gf "gf" 98 #define _IFT_IsotropicDamageMaterial1_gft "gft" 99 #define _IFT_IsotropicDamageMaterial1_ep "ep" 100 #define _IFT_IsotropicDamageMaterial1_e2 "e2" 101 #define _IFT_IsotropicDamageMaterial1_nd "nd" 102 #define _IFT_IsotropicDamageMaterial1_checkSnapBack "checksnapback" 103 #define _IFT_IsotropicDamageMaterial1_n "griff_n" 104 #define _IFT_IsotropicDamageMaterial1_c1 "c1" 105 #define _IFT_IsotropicDamageMaterial1_c2 "c2" 106 #define _IFT_IsotropicDamageMaterial1_alphaps "alphaps" 107 #define _IFT_IsotropicDamageMaterial1_h "h" 111 #define IDM1_ITERATION_LIMIT 1.e-9 126 virtual const char *
giveClassName()
const {
return "IsotropicDamageMaterial1Status"; }
179 EST_Rankine_Smooth=1,
182 EST_Rankine_Standard=4,
183 EST_ElasticEnergyPositiveStress=5,
184 EST_ElasticEnergyPositiveStrain=6,
203 enum SofteningType {
ST_Unknown, ST_Exponential, ST_Linear, ST_Mazars, ST_Smooth, ST_SmoothExtended, ST_Exponential_Cohesive_Crack, ST_Linear_Cohesive_Crack, ST_BiLinear_Cohesive_Crack, ST_Disable_Damage, ST_PowerExponential, ST_DoubleExponential, ST_Hordijk_Cohesive_Crack, ST_ModPowerExponential };
214 double e1, e2,
s1, nd;
230 #ifdef IDM_USE_MMAClosestIPTransfer 234 #ifdef IDM_USE_MMAContainingElementProjection 238 #ifdef IDM_USE_MMAShapeFunctProjection 242 #ifdef IDM_USE_MMALeastSquareProjection 255 virtual const char *
giveClassName()
const {
return "IsotropicDamageMaterial1"; }
268 bool isCrackBandApproachUsed() {
return ( this->softType == ST_Exponential_Cohesive_Crack || this->softType == ST_Linear_Cohesive_Crack || this->softType == ST_BiLinear_Cohesive_Crack || this->gf != 0. ); }
272 virtual void computeDamageParam(
double &omega,
double kappa,
const FloatArray &strain,
GaussPoint *gp);
282 void computeDamageParamForCohesiveCrack(
double &omega,
double kappa,
GaussPoint *gp);
292 double damageFunction(
double kappa,
GaussPoint *gp);
313 double damageFunctionPrime(
double kappa,
GaussPoint *gp);
326 double complianceFunction(
double kappa,
GaussPoint *gp);
328 double evaluatePermanentStrain(
double kappa,
double omega);
334 virtual int MMI_finish(
TimeStep *tStep);
339 virtual double give(
int aProperty,
GaussPoint *gp);
bool isCrackBandApproachUsed()
virtual Interface * giveInterface(InterfaceType it)
Interface requesting service.
The class implements the transfer of state variables based on Least square fit over old mesh integrat...
virtual bool isCharacteristicMtrxSymmetric(MatResponseMode rMode)
Returns true if stiffness matrix of receiver is symmetric Default implementation returns true...
Base class representing general isotropic damage model.
GaussPoint * gp
Associated integration point.
double md
Parameter used in "smooth damage law".
The class implements the closest integration point transfer of state variables.
double kappa
Scalar measure of the largest strain level ever reached in material.
double gf
Determines the softening -> corresponds to the initial fracture energy.
IsotropicDamageMaterial1Status(int n, Domain *d, GaussPoint *g)
Constructor.
The class representing the general material model adaptive mapping interface.
SofteningType
Type characterizing the formula for the damage law.
int checkSnapBack
Check possible snap back flag.
virtual const char * giveClassName() const
This class implements associated Material Status to IsotropicDamageMaterial1.
virtual void giveInputRecord(DynamicInputRecord &input)
Setups the input record string of receiver.
MatResponseMode
Describes the character of characteristic material matrix.
double ef
Determines ductility -> corresponds to fracturing strain.
double griff_n
Parameter used in Griffith's criterion.
double k
Parameter used in Mises definition of equivalent strain.
EquivStrainType equivStrainType
Parameter specifying the definition of equivalent strain.
double wf
Determines ductility -> corresponds to crack opening in the cohesive crack model. ...
EquivStrainType
Type characterizing the algorithm used to compute equivalent strain measure.
double wk
Determines the softening for the bilinear law -> corresponds to the crack opening at the knee point...
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Abstract base class for all random materials.
Set of elements, boundaries, edges and/or nodes.
Set * sourceElemSet
Cached source element set used to map internal variables (adaptivity), created on demand...
virtual const char * giveClassName() const
Abstract base class for all random constitutive model statuses.
Abstract base class representing a material status information.
Class representing vector of real numbers.
FloatArray strainVector
Equilibrated strain vector in reduced form.
IRResultType
Type defining the return values of InputRecord reading operations.
The class implements the transfer of state variables based on projection using shape functions...
double e0
Equivalent strain at stress peak (or a similar parameter).
SofteningType softType
Parameter specifying the type of softening (damage law).
double sk
Determines the softening for the bilinear law -> corresponds to the stress at the knee point...
virtual ~IsotropicDamageMaterial1Status()
Destructor.
The class implements the transfer of internal variables based on containing element The element conta...
This class implements a simple local isotropic damage model for concrete in tension.
InterfaceType
Enumerative type, used to identify interface type.
ElementCharSizeMethod ecsMethod
Method used for evaluation of characteristic element size.
double gft
Determines the softening for the bilinear law -> corresponds to the total fracture energy...
virtual const char * giveInputRecordName() const
the oofem namespace is to define a context or scope in which all oofem names are defined.
double ek
Determines the softening for the bilinear law -> corresponds to the strain at the knee point...
int damageLaw
Temporary parameter reading type of softening law, used in other isotropic damage material models...
This class implements associated Material Status to IsotropicDamageMaterial.
Class representing integration point in finite element program.
#define _IFT_IsotropicDamageMaterial1_Name
Class representing solution step.