MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
gmpMechanicalFemPhysicsFactory.h
Go to the documentation of this file.
1 /************************************************************************
2 **
3 ** Copyright (C) 2014 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 
24 #ifndef _GEMA_PLUGIN_MECHANICAL_FEM_PHYSICS_FACTORY_H_
25 #define _GEMA_PLUGIN_MECHANICAL_FEM_PHYSICS_FACTORY_H_
26 
27 #include <QObject>
28 
29 #include <gmPluginObjectFactory.h>
33 #include "gmpMechanicalPhysics.h"
34 #include "gmpMechanicalInterface.h"
35 #include "gmpMechanicalComposite.h"
36 #include "gmpMechanicalSolid.h"
37 #include "gmpInterface.h"
38 #include "gmpMechanic.h"
39 #include "gmpBar.h"
40 
41 #include "gmpMechanicalVersion.h"
42 
43 #include "gmpMaterialCohesiveExponentialSoftening.h"
47 #include "gmpFemPhysicsCommonMaterial.h"
48 #include "gmpMaterialElasticInterface.h"
51 #include "gmpMaterialElastic.h"
58 #include "gmpMaterialMohrCoulomb.h"
61 #include "gmpMaterialVonMises.h"
62 #include "gmpMaterialDMCreep.h"
64 #include "gmpMaterialCapModel.h"
65 #include "gmpMaterialMACreep.h"
66 #include "gmpMaterialMDCreep.h"
67 #include "gmpMaterialEDMTCreep.h"
68 #include "gmpMaterialDPCreep.h"
69 #include "gmpMaterialFluid.h"
73 #include "gmpMaterialWDCreep.h"
74 #include "gmpMaterialWDTCreep.h"
75 #include "gmpMaterialLadeKim.h"
78 #include "gmpMaterialHencky.h"
81 #include "gmpMaterialLua.h"
82 #include "gmpSpring.h"
84 
85 #include <gmSimulationData.h>
86 #include <gmPluginLoader.h>
87 #include <gmPluginInfo.h>
88 
89 
92 {
93  Q_OBJECT
94  Q_PLUGIN_METADATA(IID GmPluginObjectFactoryInterfaceIID)
95  Q_INTERFACES(GmPluginObjectFactory)
96 
97 public:
99  GmpMechanicalPhysicsFactory() : GmPluginObjectFactory("MechanicalFemPhysics") {}
100 
102  const GmpFemPhysicsCommonMaterialFactory* matFactory(GmSimulationData* simulation)
103  {
104  static GmpFemPhysicsCommonMaterialFactory matFactory;
105 
106  // If this is the first time that instance() is called, lets register material types
107  if(matFactory.numMaterialTypes() == 0)
108  {
109  const GmPluginInfo* ourInfo = simulation->loader()->pluginInfo("MechanicalFemPhysics");
110  assert(ourInfo);
111  const QVariantMap& map = ourInfo->attributes().value("constants").value<QVariantMap>().value("materialModels").value<QVariantMap>();
112 
113  matFactory.registerMaterial(map.value("elastic").toInt(), "elastic", GmpMechanicalMaterialElastic::instance, true);
114  matFactory.registerMaterial(map.value("isotropicDamage").toInt(), "isotropicDamage", GmpMaterialIsotropicDamage::instance);
115  matFactory.registerMaterial(map.value("elasticInterface").toInt(), "elasticInterface", GmpElasticInterface::instance);
116  matFactory.registerMaterial(map.value("interfaceMohrCoulomb").toInt(), "interfaceMohrCoulomb", GmpInterfaceMohrCoulomb::instance);
117  matFactory.registerMaterial(map.value("cohesiveLinearSoftening").toInt(), "cohesiveLinearSoftening", GmpCohesiveLinearSoftening::instance);
118  matFactory.registerMaterial(map.value("cohesiveExponentialSoftening").toInt(), "cohesiveExponentialSoftening", GmpCohesiveExponentialSoftening::instance);
119  matFactory.registerMaterial(map.value("cohesivePotentialSoftening").toInt(), "cohesivePotentialSoftening", GmpMaterialCohesivePotentialSoftening::instance);
120  matFactory.registerMaterial(map.value("modifiedMohrCoulomb").toInt(), "modifiedMohrCoulomb", GmpMaterialModifiedMohrCoulomb::instance);
121  matFactory.registerMaterial(map.value("mohrCoulomb").toInt(), "mohrCoulomb", GmpMaterialMohrCoulomb::instance);
122  matFactory.registerMaterial(map.value("breslerPister").toInt(), "breslerPister", GmpMaterialBreslerPister::instance);
123  matFactory.registerMaterial(map.value("druckerPrager").toInt(), "druckerPrager", GmpMaterialDruckerPrager::instance);
124  matFactory.registerMaterial(map.value("vonMises").toInt(), "vonMises", GmpMaterialVonMises::instance);
125  matFactory.registerMaterial(map.value("DMCreep").toInt(), "DMCreep", GmpMaterialDMCreep::instance);
126  matFactory.registerMaterial(map.value("equivalentContinuum").toInt(), "equivalentContinuum", GmpMechanicalMaterialEquivalentContinuum::instance);
127  matFactory.registerMaterial(map.value("capMohrCoulomb").toInt(), "capMohrCoulomb", GmpMaterialCapMohrCoulomb::instance);
128  matFactory.registerMaterial(map.value("crackingCrushingDamage").toInt(), "crackingCrushingDamage", GmpMaterialCrackingCrushingDamage::instance);
129  matFactory.registerMaterial(map.value("crackingCrushingPlasticDamage").toInt(), "crackingCrushingPlasticDamage", GmpMaterialCrackingCrushingPlasticDamage::instance);
130  matFactory.registerMaterial(map.value("modifiedCamClay").toInt(), "modifiedCamClay", GmpMaterialModifiedCamClay::instance);
131  matFactory.registerMaterial(map.value("porousElastic").toInt(), "porousElastic", GmpMechanicalMaterialPorousElastic::instance);
132  matFactory.registerMaterial(map.value("extendedDruckerPrager").toInt(), "extendedDruckerPrager", GmpMaterialExtendedDruckerPrager::instance);
133  matFactory.registerMaterial(map.value("MACreep").toInt(), "MACreep", GmpMaterialMACreep::instance);
134  matFactory.registerMaterial(map.value("capModel").toInt(), "capModel", GmpMaterialCapModel::instance);
135  matFactory.registerMaterial(map.value("fluid").toInt(), "fluid", GmpMaterialFluid::instance);
136  matFactory.registerMaterial(map.value("PLCreep").toInt(), "PLCreep", GmpMaterialPowerLawCreep::instance);
137  matFactory.registerMaterial(map.value("DPCreep").toInt(), "DPCreep", GmpMaterialDPCreep::instance);
138  matFactory.registerMaterial(map.value("solidifyingKelvinChain").toInt(), "solidifyingKelvinChain", GmpMaterialSolidifyingKelvinChain::instance);
139  matFactory.registerMaterial(map.value("generalYieldSurface").toInt(), "generalYieldSurface", GmpMaterialGeneralYieldSurface::instance);
140  matFactory.registerMaterial(map.value("WDCreep").toInt(), "WDCreep", GmpMaterialWDCreep::instance);
141  matFactory.registerMaterial(map.value("WDTCreep").toInt(), "WDTCreep", GmpMaterialWDTCreep::instance);
142  matFactory.registerMaterial(map.value("EDMTCreep").toInt(), "EDMTCreep", GmpMaterialEDMTCreep::instance);
143  matFactory.registerMaterial(map.value("MDCreep").toInt(), "MDCreep", GmpMaterialMDCreep::instance);
144  matFactory.registerMaterial(map.value("ladeKim").toInt(), "ladeKim", GmpMaterialLadeKim::instance);
145  matFactory.registerMaterial(map.value("capGeneralYieldSurface").toInt(), "capGeneralYieldSurface", GmpMaterialCapGeneralYieldSurface::instance);
146  matFactory.registerMaterial(map.value("Plasticity1D").toInt(), "Plasticity1D", GmpMaterialOneDimPlasticity::instance);
147  matFactory.registerMaterial(map.value("fiberStrainHardening").toInt(), "fiberStrainHardening", GmpMaterialFiberStrainHardening::instance);
148 
149  // special materials for Large displacement formulation
150  matFactory.registerMaterial(map.value("hyperelastic").toInt(), "hyperelastic", GmpMechanicalMaterialHyperelastic::instance);
151  matFactory.registerMaterial(map.value("hencky").toInt(), "hencky", GmpMechanicalMaterialHencky::instance);
152 
153  // User materials. Instanced only if an equivalent User material plugin data object is availabe
154  // in the simulation data object
155  matFactory.registerMaterial(map.value("umat1").toInt(), "umat1", GmpMechanicalMaterialLua::instance);
156  matFactory.registerMaterial(map.value("umat2").toInt(), "umat2", GmpMechanicalMaterialLua::instance);
157  matFactory.registerMaterial(map.value("umat3").toInt(), "umat3", GmpMechanicalMaterialLua::instance);
158  matFactory.registerMaterial(map.value("umat4").toInt(), "umat4", GmpMechanicalMaterialLua::instance);
159  matFactory.registerMaterial(map.value("umat5").toInt(), "umat5", GmpMechanicalMaterialLua::instance);
160 
161 
162  assert(matFactory.checkTypeMap());
163  }
164 
165  return &matFactory;
166  }
167 
168  // See comments on the base class method declaration
169  virtual GmPluginObject* instance(QString category, QString objType, GmSimulationData* simulation,
170  QString id, QString description)
171  {
172  assert(category == GM_PLUGIN_PHYSICS);
173 
174  // Instance the requested physics object
175  if(objType == "Bar")
176  return new GmpBar("Bar", simulation, id, description, matFactory(simulation), logger());
177  else if(objType == "PlaneStress")
178  return new GmpMechanicPlaneStress<GmpMechanicalSolid>("PlaneStress", simulation, id, description, matFactory(simulation), logger());
179  else if(objType == "PlaneStrain")
180  return new GmpMechanic<GmpMechanicalSolid>("PlaneStrain", simulation, id, description, matFactory(simulation), logger());
181  else if (objType == "Axisymmetric")
182  return new GmpMechanicAxy<GmpMechanicalSolid>("Axisymmetric", simulation, id, description, matFactory(simulation), logger());
183  else if (objType == "3D")
184  return new GmpMechanic<GmpMechanicalSolid>("3D", simulation, id, description, matFactory(simulation), logger());
185  else if (objType == "Interface")
186  return new GmpInterface<GmpMechanicalInterface>("Interface", simulation, id, description, matFactory(simulation), logger());
187  else if (objType == "AxInterface")
188  return new GmpAxiInterface<GmpMechanicalInterface>("AxInterface", simulation, id, description, matFactory(simulation), logger());
189  else if (objType == "CompositePE")
190  return new GmpMechanic<GmpMechanicalComposite>("CompositePE", simulation, id, description, matFactory(simulation), logger());
191  else if (objType == "Composite3D")
192  return new GmpMechanic<GmpMechanicalComposite>("Composite3D", simulation, id, description, matFactory(simulation), logger());
193  else if (objType == "CompositePS")
194  return new GmpMechanicPlaneStress<GmpMechanicalComposite>("CompositePS", simulation, id, description, matFactory(simulation), logger());
195  else if (objType == "PlaneStressLD")
196  return new GmpMechanicPlaneStressLargeDisplacement<GmpMechanicalLargeDisplacementSolid>("PlaneStressLD", simulation, id, description, matFactory(simulation), logger());
197  else if (objType == "PlaneStrainLD")
198  return new GmpMechanicLargeDisplacement<GmpMechanicalLargeDisplacementSolid>("PlaneStrainLD", simulation, id, description, matFactory(simulation), logger());
199  else if (objType == "AxisymmetricLD")
200  return new GmpMechanicAxyLargeDisplacement<GmpMechanicalLargeDisplacementSolid>("AxisymmetricLD", simulation, id, description, matFactory(simulation), logger());
201  else if (objType == "3DLD")
202  return new GmpMechanicLargeDisplacement<GmpMechanicalLargeDisplacementSolid>("3DLD", simulation, id, description, matFactory(simulation), logger());
203  else if (objType == "ReinforcedInterface")
204  return new GmpInterface<GmpMechanicalReinforcedInterface>("ReinforcedInterface", simulation, id, description, matFactory(simulation), logger());
205  else if (objType == "Spring")
206  return new GmpSpring("Spring", simulation, id, description, matFactory(simulation), logger());
207  else if (objType == "EmbeddedPS")
208  return new GmpMechanicPlaneStress<GmpMechanicalEmbeddedFracture>("EmbeddedPS", simulation, id, description, matFactory(simulation), logger());
209  else if (objType == "EmbeddedPE")
210  return new GmpMechanic<GmpMechanicalEmbeddedFracture>("EmbeddedPE", simulation, id, description, matFactory(simulation), logger());
211  else if (objType == "Embedded3D")
212  return new GmpMechanic<GmpMechanicalEmbeddedFracture>("Embedded3D", simulation, id, description, matFactory(simulation), logger());
213  else
214  return NULL;
215  }
216 
218  virtual const QStringList& versionInfo() const { return GmpMechanicalFemPhysicsVersionInfo(); }
219 
221  virtual const QStringList& depVersionInfo() const { return GmpMechanicalFemPhysicsRevisionDependencies(); }
222 };
223 
224 #endif
virtual const QStringList & versionInfo() const
Retuns version information for the plugin. See comments on the base class.
Definition: gmpMechanicalFemPhysicsFactory.h:218
Declaration of the GmpBar classes.
const GmpFemPhysicsCommonMaterialFactory * matFactory(GmSimulationData *simulation)
Returns the single material factory used by created physics.
Definition: gmpMechanicalFemPhysicsFactory.h:102
Mechanic Axissymetric for Quad and Tri, Elements.
Definition: gmpMechanic.h:133
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: gmpMaterialCohesiveLinearSoftening.h:81
Declaration of the GmpMechanicLargeDisplacement classes.
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
Declaration of the GmpMechanicalPhysics class.
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: gmpMaterialElastic.h:59
const GmLogCategory & logger()
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: gmpMaterialDMCreep.h:63
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: gmpMaterialMACreep.h:75
Declaration of the GmpMechanicalInterface classes.
Declaration of the GmpMaterialFluid class.
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: gmpMaterialModifiedCamClay.h:66
Declaration of the GmpMechanic classes.
const QVariantMap & attributes() const
Declaration of the gmpMaterialBreslerPister classes.
Declaration of the GmpMaterialWDCreep class.
Implementation of the GmpMechanicalMaterialPorousElastic class.
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: gmpMaterialFluid.h:70
Declaration of the gmpMaterialExtendedDruckerPrager classes.
Declaration of the gmpMaterialLadeKim classes.
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: gmpMaterialWDTCreep.h:89
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: gmpMaterialCapMohrCoulomb.h:56
Declaration of the gmpMaterialCapMohrCoulomb classes.
Declaration of the GmpMaterialEDMTCreep class.
GmPluginInfo * pluginInfo(QString pluginName) const
Declaration of the gmpMaterialDruckerPrager classes.
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: gmpMaterialHyperelastic.h:58
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: gmpMaterialCrackingCrushingDamage.h:71
Declaration of the gmpMaterialMohrCoulomb classes.
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: gmpMaterialBreslerPister.h:58
Declaration of the gmpMaterialDPCreep class.
Declaration of the gmpMaterial1DPlasticity classes.
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: gmpMaterialSolidifyingKelvinChain.h:72
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: gmpMaterialWDCreep.h:89
Basic class for the standard stress bar physics plugin object.
Definition: gmpSpring.h:35
Implementation of the GmpMaterialIsotropicDamage class.
GmPluginLoader * loader() const
Declaration of the GmpMaterialDMCreep class.
Definition: gmpMechanicLargeDisplacement.h:309
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: gmpMaterialModifMohrCoulomb.h:57
Zero-Thickness interface element 2D & 3D for Int2dl4 and Int2dl6, Int3dl8 and CZE3D8P "Linear interfa...
Definition: gmpInterface.h:34
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: gmpMaterialMDCreep.h:75
Declaration of the GmpMechanicalMaterialHyperelastic class.
Definition: gmpMechanic.h:93
virtual const QStringList & depVersionInfo() const
Retuns dependency version information for the plugin. See comments on the base class.
Definition: gmpMechanicalFemPhysicsFactory.h:221
Declaration of the gmpMaterialVonMises classes.
GmpMechanicalPhysicsFactory()
Default constructor.
Definition: gmpMechanicalFemPhysicsFactory.h:99
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: gmpMaterialPorousElastic.h:70
Declaration of the gmpMaterialGeneralYieldSurface classes.
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: gmpMaterialGeneralYieldSurface.h:63
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: gmpMaterialCohesivePotentialSoftening.h:47
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: gmpMaterialIsotropicDamage.h:69
Definition: gmpInterface.h:310
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: gmpMaterialHencky.h:56
Declaration of the GmpInterface classes.
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: gmpMaterialEDMTCreep.h:73
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: gmpMaterialInterfaceMohrCoulomb.h:59
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: gmpMaterialCapGeneralYieldSurface.h:76
Declaration of the gmpMaterialCapModel classes.
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: gmpMaterialExtendedDruckerPrager.h:60
Declaration of the gmpMaterialCapGeneralYieldSurface classes.
Implementation of the MechanicalFemPhysics factory plugin.
Definition: gmpMechanicalFemPhysicsFactory.h:91
Declaration of the GmpMaterialPowerLawCreep class.
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: gmpMaterialMohrCoulomb.h:59
Declaration of the GmpMechanicalMaterialElastic class.
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: gmpMaterialPowerLawCreep.h:60
Declaration of the GmpMaterialMACreep class.
Declaration of the GmpMechanicalPhysics class.
Mechanic 2D & 3D for Quad, Tri, Hex and Tet Elements.
Definition: gmpMechanic.h:34
Declaration of the GmpMaterialCohesivePotentialSoftening classes This cohesive matrial is based on th...
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: gmpMaterialVonMises.h:48
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: gmpMaterialElasticInterface.h:71
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: gmpMaterialFiberStrainHardening.h:64
Declaration of the GmpMechanicalEmbeddedFracture class.
Declaration of the GmpInterfaceMohrCoulomb classes.
Declaration of the GmpMechanicalPhysics class.
Declaration of the GmpMaterialCohesiveLinearSoftening classes.
Basic class for the standard stress bar physics plugin object.
Definition: gmpBar.h:37
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: gmpMaterialCohesiveExponentialSoftening.h:77
Declaration of the GmpMechanicalLargeDisplacementSolid class.
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: gmpMaterialOneDimPlasticity.h:66
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: gmpMaterialLadeKim.h:56
#define GmPluginObjectFactoryInterfaceIID
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: gmpMaterialDPCreep.h:65
Declaration of the gmpMaterialModifiedMohrCoulomb classes.
Mechanic Axissymetric for Quad and Tri, Elements.
Definition: gmpMechanicLargeDisplacement.h:443
Implementation of the GmpMaterialCrackingCrushingDamage class.
Declaration of the GmpMechanicalMaterialHyperelastic class.
Declaration of the gmpMaterialModifiedCamClay classes.
Declaration of the GmpMaterialDMCreep class.
Declaration of the GmpMechanicalMaterialLua class.
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: gmpMaterialDruckerPrager.h:59
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: gmpMaterialCapModel.h:76
Declaration of the GmpMaterialMDCreep class.
Declaration of the GmpMechanicalReinforcedInterface classes.
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: gmpMaterialLua.cpp:69
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: gmpMaterialEquivalentContinuum.h:75
Declaration of the gmpMaterialCrackingCrushingPlasticDamage classes.
Declaration of the GmpSpring classes.
Declaration of the gmpMaterialFiberStrainHardening classes.
Declaration of the gmpMechanicalMaterialEquivalentContinuum class.
Mechanic 2D & 3D for Quad, Tri, Hex and Tet Elements.
Definition: gmpMechanicLargeDisplacement.h:36