MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Loading...
Searching...
No Matches
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{
37protected:
69
84
85public:
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
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
arma::mat GmMatrix
#define S_TRACE()
arma::vec GmVector
Declaration of the GmpMechanicPoint class.