27#ifndef _GEMA_PLUGIN_MECHANICALMATERIAL_CRACKINGCRUSHINGPLASTICDAMAGE_H_
28#define _GEMA_PLUGIN_MECHANICALMATERIAL_CRACKINGCRUSHINGPLASTICDAMAGE_H_
30#include "gmpMaterialElastoplasticMultiSurface.h"
32#include "gmpFemPhysics.h"
105 virtual bool returnMappingAlgorithm(
const GmElement* c,
GmVector& s,
GmVector de,
GmVector& ep,
double& q,
GmVector& DLamb,
GmMatrix& Dep,
const GmpMechanicPoint* mp,
const GmVector* coord,
unsigned sc,
bool ips,
bool stress_state)
const;
125 return propertyAc(FCM_ID)->scalarValueAt(e, coord, ip);
131 return propertyAc(RCM_ID)->scalarValueAt(e, coord, ip);
137 return propertyAc(FT0_ID)->scalarValueAt(e, coord, ip);
143 return propertyAc(FBT_ID)->scalarValueAt(e, coord, ip);
149 return propertyAc(FTC_ID)->scalarValueAt(e, coord, ip);
155 return propertyAc(FC0_ID)->scalarValueAt(e, coord, ip);
161 return propertyAc(FBC_ID)->scalarValueAt(e, coord, ip);
167 return propertyAc(RHO_ID)->scalarValueAt(e, coord, ip);
173 return propertyAc(GF_ID)->scalarValueAt(e, coord, ip);
179 return propertyAc(GC_ID)->scalarValueAt(e, coord, ip);
194 return lch->scalarValueAt(e, coord, ip);
209 return lchmin->scalarValueAt(e, coord, ip);
215 return propertyAc(COH_ID)->scalarValueAt(e, coord, ip);
218 virtual double frictionAngle(
const GmElement* e,
const GmVector* coord,
int ip)
const
220 return propertyAc(PHI_ID)->scalarValueAt(e, coord, ip);
225 return propertyAc(PSI_ID)->scalarValueAt(e, coord, ip);
230 return propertyAc(ALPHA_ID)->scalarValueAt(e, coord, ip);
235 return propertyAc(BETA_ID)->scalarValueAt(e, coord, ip);
240 return propertyAc(GAMMA_ID)->scalarValueAt(e, coord, ip);
245 return propertyAc(A_ID)->scalarValueAt(e, coord, ip);
250 return propertyAc(INITIALCENTER_ID)->scalarValueAt(e, coord, ip);
255 return propertyAc(RATIO_ID)->scalarValueAt(e, coord, ip);
270 return wAccc->scalarValueAt(e, coord, ip);
285 return dAccc->scalarValueAt(e, coord, ip);
304 virtual double capSurfaceCriterion(
const GmElement*,
const GmVector&,
const double,
const GmVector*,
int,
unsigned)
const;
316 virtual double capSurfacePlasticFPotential(
const GmElement*,
const GmVector&,
const double,
const GmVector*,
int,
unsigned)
const;
328 virtual bool capSurfaceHardeningEvolutionDerivative_Stress(
const GmElement*,
GmVector&,
const GmVector&,
const double,
const GmVector*,
int,
unsigned,
bool)
const;
344 GmVector s,
GmVector s_old,
GmVector ds,
const double q,
const double q_old,
const double dq,
GmVector dg,
GmVector ddg,
const double cdg,
const double delta,
345 unsigned sc,
bool ips)
const;
349 GmVector s,
GmVector s_old,
GmVector ds,
const double q,
const double q_old,
const double dq,
GmVector dg,
GmVector ddg,
const double cdg,
const double delta,
350 unsigned sc,
bool ips)
const;
354 GmVector s,
GmVector s_old,
GmVector ds,
const double q,
const double q_old,
const double dq,
GmVector dg,
GmVector ddg,
const double cdg,
const double delta,
355 unsigned sc,
bool ips)
const;
359 GmVector s,
GmVector s_old,
GmVector ds,
const double q,
const double q_old,
const double dq,
GmVector dg,
GmVector ddg,
const double cdg,
const double delta,
360 unsigned sc,
bool ips)
const;
364 const GmVector s,
const GmVector s_old,
const double q,
const double q_old,
const GmVector dg,
const double cdg,
const double delta,
unsigned sc,
bool ips)
const;
Definition gmpMaterialCrackingCrushingPlasticDamage.h:36
virtual double crushingEnergy(const GmElement *e, const GmVector *coord, int ip) const
Returns the crushing energy.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:177
virtual double fractureEnergy(const GmElement *e, const GmVector *coord, int ip) const
Returns the fracture energy.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:171
virtual double ultimateUniaxialCompressiveStrength(const GmElement *e, const GmVector *coord, int ip) const
Returns the ultimate uniaxial compressive strength of the material.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:123
static GmpFemPhysicsCommonMaterial * instance(GmSimulationData *simulation, int typeIndex, QString typeName, const GmLogCategory &logger)
A "factory" function used to register the material with the physics material factory.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:95
virtual double thirdShapeFactor(const GmElement *e, const GmVector *coord, int ip) const
Returns the third shape factor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:238
ElementPropertyIds
IDs for material element properties.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:40
@ RATIO_ID
Id for retrieving the ratio between the semiaxes.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:62
@ FTC_ID
Id for retrieving the tensile criterion shape parameter accessor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:45
@ PHI_ID
Id for retrieving the friction angle accessor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:55
@ BETA_ID
Id for retrieving the second shape factor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:58
@ ALPHA_ID
Id for retrieving the first shape factor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:57
@ GAMMA_ID
Id for retrieving the third shape factor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:59
@ FBT_ID
Id for retrieving the biaxial tensile strength of the material accessor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:44
@ RCM_ID
Id for retrieving the strain that corresponds to the ultimate uniaxial compressive strength acessor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:42
@ A_ID
Id for retrieving the fourth shape factor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:60
@ VSTRAINRATE_ID
Id for retrieving the volumetric strain rate with respect to the compressive hydrostatic strain.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:64
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:67
@ COH_ID
Id for retrieving the cohesion accessor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:54
@ PSI_ID
Id for retrieving the dilatance angle accessor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:56
@ FBC_ID
Id for retrieving the biaxial compressive strength accessor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:47
@ RHO_ID
Id for retrieving the triaxial compression adjustment parameter accessor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:48
@ FC0_ID
Id for retrieving the uniaxial compressive stress in which the damage process is initialized accessor...
Definition gmpMaterialCrackingCrushingPlasticDamage.h:46
@ MAXVSTRAIN_ID
Id for retrieving the ultimate compressive volumetric strain.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:63
@ LCH_ID
Id for retrieving the user-defined characteristic element length accessor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:51
@ INITIALCENTER_ID
Id for retrieving the initial center of the ellipse.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:61
@ GF_ID
Id for retrieving the fracture energy accessor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:49
@ FT0_ID
Id for retrieving the uniaxial tensile strength accessor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:43
@ LCHMIN_ID
Id for retrieving the minimum characteristic element length accessor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:52
@ GC_ID
Id for retrieving the crushing energy accessor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:50
virtual double biaxialCompressiveStrength(const GmElement *e, const GmVector *coord, int ip) const
Returns the biaxial compressive strength of the material.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:159
virtual double biaxialTensileStrength(const GmElement *e, const GmVector *coord, int ip) const
Returns the biaxial tensile strength of the material.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:141
virtual double parameterRho(const GmElement *e, const GmVector *coord, int ip) const
Returns the triaxial compression adjustment parameter.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:165
virtual double cohesion(const GmElement *e, const GmVector *coord, int ip) const
Returns the material cohesion.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:213
virtual double firstShapeFactor(const GmElement *e, const GmVector *coord, int ip) const
Returns the first shape factor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:228
virtual double maxVolumetricStrain(const GmElement *e, const GmVector *coord, int ip) const
Returns the ultimate compressive volumetric strain.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:259
virtual double ratioSemiaxes(const GmElement *e, const GmVector *coord, int ip) const
Returns the ratio between the semiaxes.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:253
virtual ~GmpMaterialCrackingCrushingPlasticDamage()
Virtual destructor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:92
virtual double tensileCriterionShapeParameter(const GmElement *e, const GmVector *coord, int ip) const
Returns the tensile criterion shape parameter.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:147
virtual double volumetricStrainRate(const GmElement *e, const GmVector *coord, int ip) const
Returns the volumetric strain rate with respect to the compressive hydrostatic strain.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:274
virtual bool isIsotropic() const
Returns true if the material is isotropic, false otherwise.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:117
virtual double userDefinedCharacteristicLength(const GmElement *e, const GmVector *coord, int ip) const
Returns the user-defined characteristic length.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:183
virtual double uniaxialTensileStrength(const GmElement *e, const GmVector *coord, int ip) const
Returns the uniaxial tensile strength of the material.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:135
virtual double minimumCharacteristicLength(const GmElement *e, const GmVector *coord, int ip) const
Returns the minimum characteristic length.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:198
virtual double elasticUniaxialCompressiveLimit(const GmElement *e, const GmVector *coord, int ip) const
Returns the uniaxial compressive stress in which the damage process is initialized.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:153
virtual double secondShapeFactor(const GmElement *e, const GmVector *coord, int ip) const
Returns the second shape factor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:233
GaussAttributeIds
IDs for material Gauss attributes.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:72
@ NUM_GA_IDS
The number of Gauss attribute ids above.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:82
@ CISV_GA_ID
Base Id for Gauss attribute(s) used to store the compressive internal state variable at the current s...
Definition gmpMaterialCrackingCrushingPlasticDamage.h:78
@ DAM_GA_ID
Base Id for Gauss attribute(s) used to store the damage variable at the current state.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:74
@ CISVOLD_GA_ID
Id for retrieving the material point state accessor at the previous state.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:79
@ TISV_GA_ID
Base Id for Gauss attribute(s) used to store the tensile internal state variable at the current state...
Definition gmpMaterialCrackingCrushingPlasticDamage.h:76
@ TISVOLD_GA_ID
Id for retrieving the material point state accessor at the previous state.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:77
@ DAMOLD_GA_ID
Id for retrieving the material point state accessor at the previous state.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:75
virtual double dilationAngle(const GmElement *e, const GmVector *coord, int ip) const
Returns the material dilation angle.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:223
virtual double strainAtUltimateCompressiveStrength(const GmElement *e, const GmVector *coord, int ip) const
Returns the strain that corresponds to the ultimate uniaxial compressive strength of the material.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:129
virtual double fourthShapeFactor(const GmElement *e, const GmVector *coord, int ip) const
Returns the fourth shape factor.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:243
GmpMaterialCrackingCrushingPlasticDamage(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:88
virtual double initialCenterEllipse(const GmElement *e, const GmVector *coord, int ip) const
Returns the center of the ellipse.
Definition gmpMaterialCrackingCrushingPlasticDamage.h:248
virtual bool mechanicalConstitutiveModel(const GmElement *, GmMatrix &, const GmpMechanicPoint *, const GmVector *, const GmVector &, unsigned, bool) const
Returns the updated stresses after the return mapping process.
Definition gmpMaterialElastoplastic.cpp:82
@ NUM_GA_IDS
The number of gauss attributes.
Definition gmpMaterialElastoplastic.h:92
virtual double yieldStrengthRatio(const GmElement *e, const GmVector &S, const GmVector *coord, int ip, unsigned sc) const =0
Returns the Yield Strength Ratio (Ysr)
virtual const QVariantMap * materialMetaDataMap()
Returns a pointer to the material/Gauus attribute map, built when the function is called for the firs...
Definition gmpMaterialElastoplastic.cpp:45
Definition gmpMaterialElastoplasticMultiSurface.h:34
Definition gmpMechanicPoint.h:33
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpMaterialElastic.h:46
virtual bool setInitialConditions(const GmElement *e, GmpMechanicPoint *mp, const GmVector *coord, unsigned sc) const
Sets the initial conditions required by Solid materials.
Definition gmpMechanicalMaterial.h:69
Declaration of the GmpMechanicPoint class.