MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
gmpMaterialCrackingCrushingPlasticDamage.h
Go to the documentation of this file.
1 /************************************************************************
2 **
3 ** Copyright (C) 2016 by Carlos Augusto Teixera Mendes
4 ** All rights reserved.
5 **
6 ** This file is part of the "GeMA" software. It's use should respect
7 ** the terms in the license agreement that can be found together
8 ** with this source code.
9 ** It is provided AS IS, with NO WARRANTY OF ANY KIND,
10 ** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR
11 ** A PARTICULAR PURPOSE.
12 **
13 ************************************************************************/
14 
27 #ifndef _GEMA_PLUGIN_MECHANICALMATERIAL_CRACKINGCRUSHINGPLASTICDAMAGE_H_
28 #define _GEMA_PLUGIN_MECHANICALMATERIAL_CRACKINGCRUSHINGPLASTICDAMAGE_H_
29 
30 #include "gmpMaterialElastoplasticMultiSurface.h"
31 #include "gmpMechanicPoint.h"
32 #include "gmpFemPhysics.h"
33 #include "gmMathUtils.h"
34 
36 {
37 protected:
40  {
53 
60  A_ID,
65 
66  // --- NO ADDING BELOW THIS LINE
68  };
69 
72  {
80 
81  // ------ NO ADDING BELOW THIS LINE
83  };
84 
85 public:
86 
88  GmpMaterialCrackingCrushingPlasticDamage(int typeIndex, QString typeName, const GmLogCategory& logger)
89  : GmpMaterialElastoplasticMultiSurface(typeIndex, typeName, logger) {}
90 
93 
95  static GmpFemPhysicsCommonMaterial* instance(GmSimulationData* simulation, int typeIndex, QString typeName, const GmLogCategory& logger)
96  {
97  Q_UNUSED(simulation);
98  return new GmpMaterialCrackingCrushingPlasticDamage(typeIndex, typeName, logger);
99  }
100 
101  // Returns a map with material associated properties.
102  virtual const QVariantMap* materialMetaDataMap();
103 
104  // Returns the stresses according to the return mapping algorithm
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;
106 
107  // Returns the stresses according to the material behavior adopted
108  virtual bool mechanicalConstitutiveModel(const GmElement* c, GmMatrix& Dep, const GmpMechanicPoint* mp, const GmVector* coord, const GmVector& Time, unsigned sc, bool ips) const;
109 
110  // Checks material loaded data.
111  // virtual bool checkLoadedData(const GmElement* e) const;
112 
113  // Sets the initial conditions required by Cap model material
114  virtual bool setInitialConditions(const GmElement* e, GmpMechanicPoint* mp, const GmVector* coord, unsigned sc) const;
115 
117  virtual bool isIsotropic() const { return true; }
118 
120  virtual double yieldStrengthRatio(const GmElement* e, const GmVector& S, const GmVector* coord, int ip, unsigned sc) const;
121 
123  virtual double ultimateUniaxialCompressiveStrength(const GmElement* e, const GmVector* coord, int ip) const
124  {
125  return propertyAc(FCM_ID)->scalarValueAt(e, coord, ip);
126  }
127 
129  virtual double strainAtUltimateCompressiveStrength(const GmElement* e, const GmVector* coord, int ip) const
130  {
131  return propertyAc(RCM_ID)->scalarValueAt(e, coord, ip);
132  }
133 
135  virtual double uniaxialTensileStrength(const GmElement* e, const GmVector* coord, int ip) const
136  {
137  return propertyAc(FT0_ID)->scalarValueAt(e, coord, ip);
138  }
139 
141  virtual double biaxialTensileStrength(const GmElement* e, const GmVector* coord, int ip) const
142  {
143  return propertyAc(FBT_ID)->scalarValueAt(e, coord, ip);
144  }
145 
147  virtual double tensileCriterionShapeParameter(const GmElement* e, const GmVector* coord, int ip) const
148  {
149  return propertyAc(FTC_ID)->scalarValueAt(e, coord, ip);
150  }
151 
153  virtual double elasticUniaxialCompressiveLimit(const GmElement* e, const GmVector* coord, int ip) const
154  {
155  return propertyAc(FC0_ID)->scalarValueAt(e, coord, ip);
156  }
157 
159  virtual double biaxialCompressiveStrength(const GmElement* e, const GmVector* coord, int ip) const
160  {
161  return propertyAc(FBC_ID)->scalarValueAt(e, coord, ip);
162  }
163 
165  virtual double parameterRho(const GmElement* e, const GmVector* coord, int ip) const
166  {
167  return propertyAc(RHO_ID)->scalarValueAt(e, coord, ip);
168  }
169 
171  virtual double fractureEnergy(const GmElement* e, const GmVector* coord, int ip) const
172  {
173  return propertyAc(GF_ID)->scalarValueAt(e, coord, ip);
174  }
175 
177  virtual double crushingEnergy(const GmElement* e, const GmVector* coord, int ip) const
178  {
179  return propertyAc(GC_ID)->scalarValueAt(e, coord, ip);
180  }
181 
183  virtual double userDefinedCharacteristicLength(const GmElement* e, const GmVector* coord, int ip) const
184  {
185  S_TRACE(); assert(e);
186  // Get accessor for the user-defined characteristic length
187  GmCellAccessor* lch = propertyAc(LCH_ID);
188 
189  if (lch == NULL)
190  {
191  return 0.0;
192  }
193 
194  return lch->scalarValueAt(e, coord, ip);
195  }
196 
198  virtual double minimumCharacteristicLength(const GmElement* e, const GmVector* coord, int ip) const
199  {
200  S_TRACE(); assert(e);
201  // Get accessor for the minimum characteristic length
202  GmCellAccessor* lchmin = propertyAc(LCHMIN_ID);
203 
204  if (lchmin == NULL)
205  {
206  return 0.0;
207  }
208 
209  return lchmin->scalarValueAt(e, coord, ip);
210  }
211 
213  virtual double cohesion(const GmElement* e, const GmVector* coord, int ip) const
214  {
215  return propertyAc(COH_ID)->scalarValueAt(e, coord, ip);
216  }
218  virtual double frictionAngle(const GmElement* e, const GmVector* coord, int ip) const
219  {
220  return propertyAc(PHI_ID)->scalarValueAt(e, coord, ip);
221  }
223  virtual double dilationAngle(const GmElement* e, const GmVector* coord, int ip) const
224  {
225  return propertyAc(PSI_ID)->scalarValueAt(e, coord, ip);
226  }
228  virtual double firstShapeFactor(const GmElement* e, const GmVector* coord, int ip) const
229  {
230  return propertyAc(ALPHA_ID)->scalarValueAt(e, coord, ip);
231  }
233  virtual double secondShapeFactor(const GmElement* e, const GmVector* coord, int ip) const
234  {
235  return propertyAc(BETA_ID)->scalarValueAt(e, coord, ip);
236  }
238  virtual double thirdShapeFactor(const GmElement* e, const GmVector* coord, int ip) const
239  {
240  return propertyAc(GAMMA_ID)->scalarValueAt(e, coord, ip);
241  }
243  virtual double fourthShapeFactor(const GmElement* e, const GmVector* coord, int ip) const
244  {
245  return propertyAc(A_ID)->scalarValueAt(e, coord, ip);
246  }
248  virtual double initialCenterEllipse(const GmElement* e, const GmVector* coord, int ip) const
249  {
250  return propertyAc(INITIALCENTER_ID)->scalarValueAt(e, coord, ip);
251  }
253  virtual double ratioSemiaxes(const GmElement* e, const GmVector* coord, int ip) const
254  {
255  return propertyAc(RATIO_ID)->scalarValueAt(e, coord, ip);
256  }
257 
259  virtual double maxVolumetricStrain(const GmElement* e, const GmVector* coord, int ip) const
260  {
261  S_TRACE(); assert(e);
262  // Get accessor for the ultimate compressive volumetric strain
263  GmCellAccessor* wAccc = propertyAc(MAXVSTRAIN_ID);
264 
265  if (wAccc == NULL)
266  {
267  return 1.0e10;
268  }
269 
270  return wAccc->scalarValueAt(e, coord, ip);
271  }
272 
274  virtual double volumetricStrainRate(const GmElement* e, const GmVector* coord, int ip) const
275  {
276  S_TRACE(); assert(e);
277  // Get accessor for the volumetric strain rate with respect to the compressive hydrostatic strain
278  GmCellAccessor* dAccc = propertyAc(VSTRAINRATE_ID);
279 
280  if (dAccc == NULL)
281  {
282  return 1.0e-3;
283  }
284 
285  return dAccc->scalarValueAt(e, coord, ip);
286  }
287 
288  // Damage criterion definition
289  virtual bool damageCriterion(const GmElement*, const GmpMechanicPoint*, const GmVector*, unsigned, GmVector, double&, double&, GmVector&, GmVector&, unsigned) const;
290 
291  // Damage evolution law definition
292  virtual bool damageLaw(const GmElement*, const GmVector*, const GmpMechanicPoint*, double, double, double&, double&, double& dg) const;
293 
294  // Returns the characteristic length
295  virtual double characteristicLength(const GmElement*, const GmVector*, int, GmValueAccessor*, bool type = false) const;
296 
297  // Yield criterion - Conical Surface
298  virtual double yieldCriterion(const GmElement*, const GmVector&, const GmVector*, int, unsigned) const;
299  virtual bool yieldStressGradient(const GmElement*, GmVector&, const GmVector&, const GmVector*, int, unsigned, bool) const;
300  virtual bool yieldGradient_Hardening(const GmElement*, GmVector&, const GmVector&, const GmVector*, int, unsigned) const;
301  virtual bool yieldHessian(const GmElement*, GmMatrix&, const GmVector&, const GmVector*, int, unsigned, bool) const;
302 
303  // Yield criterion - Cap Surface
304  virtual double capSurfaceCriterion(const GmElement*, const GmVector&, const double, const GmVector*, int, unsigned) const;
305  virtual bool capSurfaceGradient(const GmElement*, GmVector&, const GmVector&, const double, const GmVector*, int, unsigned, bool) const;
306  virtual bool capSurfaceGradient_Hardening(const GmElement*, GmVector&, const GmVector&, const double, const GmVector*, int, unsigned) const;
307  virtual bool capSurfaceHessian(const GmElement*, GmMatrix&, const GmVector&, const double, const GmVector*, int, unsigned, bool) const;
308 
309  // Plastic potential - Conical Surface
310  virtual double plasticFPotential(const GmElement*, const GmVector&, const GmVector*, int, unsigned) const;
311  virtual bool flowVector(const GmElement*, GmVector&, const GmVector&, const GmVector*, int, unsigned, bool) const;
312  virtual bool flowVectorStressGradient(const GmElement*, GmMatrix&, const GmVector&, const GmVector*, int, unsigned, bool) const;
313  virtual bool flowVectorDerivative_Hardening(const GmElement*, GmVector&, const GmVector&, const GmVector*, int, unsigned) const;
314 
315  // Plastic potential - Cap Surface
316  virtual double capSurfacePlasticFPotential(const GmElement*, const GmVector&, const double, const GmVector*, int, unsigned) const;
317  virtual bool capSurfacePlasticFGradient(const GmElement*, GmVector&, const GmVector&, const double, const GmVector*, int, unsigned, bool) const;
318  virtual bool capSurfacePlasticFHessian(const GmElement*, GmMatrix&, const GmVector&, const double, const GmVector*, int, unsigned, bool) const;
319  virtual bool capSurfaceFlowVectorDerivative_Hardening(const GmElement*, GmVector&, const GmVector&, const double, const GmVector*, int, unsigned, bool) const;
320 
321  // Hardening Evolution - Conical Surface
322  virtual bool hardeningEvolution(const GmElement*, GmVector&, const GmVector&, const double, const GmVector*, int, unsigned) const;
323  virtual bool hardeningEvolutionDerivative_Stress(const GmElement*, GmVector&, const GmVector&, const double, const GmVector*, int, unsigned) const;
324  virtual bool hardeningEvolutionDerivative_Hardening(const GmElement*, GmMatrix&, const GmVector&, const double, const GmVector*, int, unsigned) const;
325 
326  // Hardening Evolution - Cap Surface
327  virtual bool capSurfaceHardeningEvolution(const GmElement*, GmVector&, 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;
329  virtual bool capSurfaceHardeningEvolutionDerivative_Hardening(const GmElement*, GmMatrix&, const GmVector&, const double, const GmVector*, int, unsigned) const;
330 
331  // Complementary Methods
332  virtual bool yieldSurfaces(const GmElement*, GmVector&, GmVector, const double, const GmVector*, int, unsigned) const;
333  virtual bool flowVectors(const GmElement*, GmVector&, int, GmVector, const double, const GmVector*, int, unsigned, bool) const;
334  virtual bool hardeningLaws(const GmElement*, GmVector&, int, GmVector, const double, const GmVector*, int, unsigned) const;
335  virtual bool gradientVectors_Stress(const GmElement*, GmVector&, int, GmVector, const double, const GmVector*, int, unsigned, bool) const;
336  virtual bool gradientVectors_Hardening(const GmElement*, GmVector&, int, GmVector, const double, const GmVector*, int, unsigned) const;
337  virtual bool flowVectorDerivatives_Stress(const GmElement*, GmMatrix&, int, GmVector, const double, const GmVector*, int, unsigned, bool) const;
338  virtual bool flowVectorDerivatives_Hardening(const GmElement*, GmVector&, int, GmVector, const double, const GmVector*, int, unsigned, bool) const;
339  virtual bool hardeningLawDerivatives_Stress(const GmElement*, GmVector&, int, GmVector, const double, const GmVector*, int, unsigned, bool) const;
340  virtual bool hardeningLawDerivatives_Hardening(const GmElement*, GmMatrix&, int, GmVector, const double q, const GmVector*, int, unsigned) const;
341 
342  // Line Search
343  virtual double lineSearch(const GmElement* e, const GmpMechanicPoint* mp, const GmVector* coord, GmMatrix C, GmVector de, const double dde_zz,
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;
346 
347  // Golden Section Method
348  virtual double goldenSectionMethod(const GmElement* e, const GmpMechanicPoint* mp, const GmVector* coord, GmMatrix C, GmVector de, const double dde_zz,
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;
351 
352  // Quadratic Interpolation
353  virtual double quadraticInterpolation(const GmElement* e, const GmpMechanicPoint* mp, const GmVector* coord, GmMatrix C, GmVector de, const double dde_zz,
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;
356 
357  // Cubic Interpolation
358  virtual double cubicInterpolation(const GmElement* e, const GmpMechanicPoint* mp, const GmVector* coord, GmMatrix C, GmVector de, const double dde_zz,
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;
361 
362  // Objective Function to be minimized by the Newton-Raphson method
363  virtual double objectiveFunction(const GmElement* e, const GmpMechanicPoint* mp, const GmVector* coord, const GmMatrix C, const GmVector de,
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;
365 
366 };
367 
368 #endif
virtual double cohesion(const GmElement *e, const GmVector *coord, int ip) const
Returns the material cohesion.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:213
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
The number of gauss attributes.
Definition: gmpMaterialElastoplastic.h:92
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 ~GmpMaterialCrackingCrushingPlasticDamage()
Virtual destructor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:92
Id for retrieving the friction angle accessor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:55
virtual double dilationAngle(const GmElement *e, const GmVector *coord, int ip) const
Returns the material dilation angle.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:223
Id for retrieving the material point state accessor at the previous state.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:75
GaussAttributeIds
IDs for material Gauss attributes.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:71
virtual double uniaxialTensileStrength(const GmElement *e, const GmVector *coord, int ip) const
Returns the uniaxial tensile strength of the material.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:135
Id for retrieving the biaxial tensile strength of the material accessor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:44
virtual double parameterRho(const GmElement *e, const GmVector *coord, int ip) const
Returns the triaxial compression adjustment parameter.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:165
Id for retrieving the uniaxial compressive stress in which the damage process is initialized accessor...
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:46
virtual double maxVolumetricStrain(const GmElement *e, const GmVector *coord, int ip) const
Returns the ultimate compressive volumetric strain.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:259
#define S_TRACE()
Definition: gmpMaterialElastoplasticMultiSurface.h:33
Id for retrieving the triaxial compression adjustment parameter accessor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:48
Id for retrieving the user-defined characteristic element length accessor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:51
Id for retrieving the minimum characteristic element length accessor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:52
virtual double ratioSemiaxes(const GmElement *e, const GmVector *coord, int ip) const
Returns the ratio between the semiaxes.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:253
The number of property ids above.
Definition: gmpMaterialElastoplastic.h:79
virtual bool isIsotropic() const
Returns true if the material is isotropic, false otherwise.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:117
virtual double secondShapeFactor(const GmElement *e, const GmVector *coord, int ip) const
Returns the second shape factor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:233
Definition: gmpMechanicPoint.h:32
virtual double minimumCharacteristicLength(const GmElement *e, const GmVector *coord, int ip) const
Returns the minimum characteristic length.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:198
virtual double thirdShapeFactor(const GmElement *e, const GmVector *coord, int ip) const
Returns the third shape factor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:238
virtual double firstShapeFactor(const GmElement *e, const GmVector *coord, int ip) const
Returns the first shape factor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:228
virtual double tensileCriterionShapeParameter(const GmElement *e, const GmVector *coord, int ip) const
Returns the tensile criterion shape parameter.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:147
Id for retrieving the fourth shape factor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:60
Id for retrieving the ratio between the semiaxes.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:62
Id for retrieving the initial center of the ellipse.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:61
GmpMaterialCrackingCrushingPlasticDamage(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:88
virtual double fourthShapeFactor(const GmElement *e, const GmVector *coord, int ip) const
Returns the fourth shape factor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:243
Id for retrieving the third shape factor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:59
virtual double initialCenterEllipse(const GmElement *e, const GmVector *coord, int ip) const
Returns the center of the ellipse.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:248
Base Id for Gauss attribute(s) used to store the tensile internal state variable at the current state...
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:76
The number of property ids above.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:67
virtual double yieldStrengthRatio(const GmElement *e, const GmVector &S, const GmVector *coord, int ip, unsigned sc) const =0
Returns the Yield Strength Ratio (Ysr)
The number of Gauss attribute ids above.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:82
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
Id for retrieving the material point state accessor at the previous state.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:77
virtual double userDefinedCharacteristicLength(const GmElement *e, const GmVector *coord, int ip) const
Returns the user-defined characteristic length.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:183
Id for retrieving the volumetric strain rate with respect to the compressive hydrostatic strain.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:64
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:35
Base Id for Gauss attribute(s) used to store the compressive internal state variable at the current s...
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:78
Declaration of the GmpMechanicPoint class.
Id for retrieving the fracture energy accessor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:49
Id for retrieving the ultimate compressive volumetric strain.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:63
Id for retrieving the biaxial compressive strength accessor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:47
Base Id for Gauss attribute(s) used to store the damage variable at the current state.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:74
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:68
Id for retrieving the cohesion accessor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:54
ElementPropertyIds
IDs for material element properties.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:39
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
Id for retrieving the second shape factor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:58
virtual double fractureEnergy(const GmElement *e, const GmVector *coord, int ip) const
Returns the fracture energy.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:171
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
Id for retrieving the crushing energy accessor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:50
Id for retrieving the tensile criterion shape parameter accessor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:45
Id for retrieving the uniaxial tensile strength accessor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:43
Id for retrieving the material point state accessor at the previous state.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:79
Id for retrieving the strain that corresponds to the ultimate uniaxial compressive strength acessor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:42
arma::vec GmVector
Id for retrieving the first shape factor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:57
virtual double crushingEnergy(const GmElement *e, const GmVector *coord, int ip) const
Returns the crushing energy.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:177
arma::mat GmMatrix
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
Id for retrieving the dilatance angle accessor.
Definition: gmpMaterialCrackingCrushingPlasticDamage.h:56
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
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