MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
gmpMaterialInterfaceMohrCoulomb.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_MECHANICALMATERIAL_INTERFACEMOHRCOULOMB_H_
25 #define _GEMA_PLUGIN_MECHANICALMATERIAL_INTERFACEMOHRCOULOMB_H_
26 
27 
28 #include "gmpInterfaceMaterial.h"
29 #include "gmpMaterialElasticInterface.h"
30 #include "gmpMechanicPoint.h"
31 #include <gmpFemPhysics.h>
32 #include <gmMathUtils.h>
33 
34 class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpInterfaceMohrCoulomb: public GmpElasticInterface
35 {
36 protected:
39  {
44 
45  // --- NO ADDING BELOW THIS LINE
47  };
48 
49 
50 public:
52  GmpInterfaceMohrCoulomb(int typeIndex, QString typeName, const GmLogCategory& logger)
53  :GmpElasticInterface(typeIndex, typeName, logger){}
54 
57 
59  static GmpFemPhysicsCommonMaterial* instance(GmSimulationData* simulation, int typeIndex, QString typeName, const GmLogCategory& logger)
60  {
61  Q_UNUSED(simulation);
62  return new GmpInterfaceMohrCoulomb(typeIndex, typeName, logger);
63  }
64 
65  // Returns a map with material associated properties.
66  virtual const QVariantMap* materialMetaDataMap();
67 
70  {
73  //STR_GA_ID, //!< Base Id for retrieving the slip tendency ratio accessor at the current state
74  //STROLD_GA_ID, //!< Id for retrieving the internal variable accessor at the previous state
75 
76 
77  // ------ NO ADDING BELOW THIS LINE
79  };
80 
83  virtual bool mechanicalConstitutiveModel(const GmElement* e, GmMatrix& Dep, const GmpMechanicPoint* mp, const GmVector* coord, unsigned nc) const;
84 
86  virtual double faultCohesion(const GmElement* e, const GmVector* coord, int ip) const
87  {
88  return propertyAc(CF_ID)->scalarValueAt(e, coord, ip);
89  }
90 
92  virtual double faultFrictionAngle(const GmElement* e, const GmVector* coord, int ip) const
93  {
94  return propertyAc(PHIF_ID)->scalarValueAt(e, coord, ip);
95  }
96 
98  virtual double faultDilationAngle(const GmElement* e, const GmVector* coord, int ip) const
99  {
100  return propertyAc(PSIF_ID)->scalarValueAt(e, coord, ip);
101  }
102 
104  virtual double cutOffTension(const GmElement* e, const GmVector* coord, int ip) const
105  {
106  return propertyAc(TCUT_ID)->scalarValueAt(e, coord, ip);
107  }
108 };
109 #endif
The number of property ids above.
Definition: gmpMaterialElasticInterface.h:47
virtual double faultDilationAngle(const GmElement *e, const GmVector *coord, int ip) const
Returns the dilation angle of the discontinuity.
Definition: gmpMaterialInterfaceMohrCoulomb.h:98
The number of gauss attributes.
Definition: gmpMaterialElasticInterface.h:86
virtual bool mechanicalConstitutiveModel(const GmElement *e, GmMatrix &Dep, const GmpMechanicPoint *mp, const GmVector *coord, unsigned nc) const
Returns the cohesive stress tensor according to the material behavior adopted.
Definition: gmpMaterialElasticInterface.cpp:194
Id for retrieving the cut-off tension accessor.
Definition: gmpMaterialInterfaceMohrCoulomb.h:43
virtual double faultCohesion(const GmElement *e, const GmVector *coord, int ip) const
Returns the cohesion of the discontinuity.
Definition: gmpMaterialInterfaceMohrCoulomb.h:86
GaussAttributeIds
IDs for material Gauss attributes.
Definition: gmpMaterialInterfaceMohrCoulomb.h:69
Id for retrieving the fault dilation angle accessor.
Definition: gmpMaterialInterfaceMohrCoulomb.h:42
Declaration of the GmpInterfaceMaterial classes.
virtual double cutOffTension(const GmElement *e, const GmVector *coord, int ip) const
Returns the cut-off tension of the discontinuity.
Definition: gmpMaterialInterfaceMohrCoulomb.h:104
Definition: gmpMechanicPoint.h:32
virtual ~GmpInterfaceMohrCoulomb()
Virtual destructor.
Definition: gmpMaterialInterfaceMohrCoulomb.h:56
Id for retrieving the plastic strain accessor at the previous state (old plastic strain)
Definition: gmpMaterialInterfaceMohrCoulomb.h:72
Definition: gmpMaterialElasticInterface.h:34
InterfaceMCPropertyIds
IDs for elastic interface material properties.
Definition: gmpMaterialInterfaceMohrCoulomb.h:38
Id for retrieving the fault friction angle accessor.
Definition: gmpMaterialInterfaceMohrCoulomb.h:41
The number of property ids above.
Definition: gmpMaterialInterfaceMohrCoulomb.h:46
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
GmpInterfaceMohrCoulomb(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition: gmpMaterialInterfaceMohrCoulomb.h:52
Declaration of the GmpMechanicPoint class.
The number of Gauss attribute ids above.
Definition: gmpMaterialInterfaceMohrCoulomb.h:78
Definition: gmpMaterialInterfaceMohrCoulomb.h:34
arma::vec GmVector
virtual const QVariantMap * materialMetaDataMap()
Returns a pointer to the material attribute map, built when the function is called for the first time...
Definition: gmpMaterialElasticInterface.cpp:35
arma::mat GmMatrix
virtual double faultFrictionAngle(const GmElement *e, const GmVector *coord, int ip) const
Returns the friction angle of the discontinuity.
Definition: gmpMaterialInterfaceMohrCoulomb.h:92