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.