MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Loading...
Searching...
No Matches
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
29#include "gmpMaterialElasticInterface.h"
30#include "gmpMechanicPoint.h"
31#include <gmpFemPhysics.h>
32#include <gmMathUtils.h>
33
34class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpInterfaceMohrCoulomb: public GmpElasticInterface
35{
36protected:
48
49
50public:
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
Definition gmpMaterialElasticInterface.h:35
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpMaterialElasticInterface.h:47
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:197
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:36
@ NUM_GA_IDS
The number of gauss attributes.
Definition gmpMaterialElasticInterface.h:86
Definition gmpMaterialInterfaceMohrCoulomb.h:35
InterfaceMCPropertyIds
IDs for elastic interface material properties.
Definition gmpMaterialInterfaceMohrCoulomb.h:39
@ PSIF_ID
Id for retrieving the fault dilation angle accessor.
Definition gmpMaterialInterfaceMohrCoulomb.h:42
@ TCUT_ID
Id for retrieving the cut-off tension accessor.
Definition gmpMaterialInterfaceMohrCoulomb.h:43
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpMaterialInterfaceMohrCoulomb.h:46
@ PHIF_ID
Id for retrieving the fault friction angle accessor.
Definition gmpMaterialInterfaceMohrCoulomb.h:41
virtual ~GmpInterfaceMohrCoulomb()
Virtual destructor.
Definition gmpMaterialInterfaceMohrCoulomb.h:56
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
virtual double cutOffTension(const GmElement *e, const GmVector *coord, int ip) const
Returns the cut-off tension of the discontinuity.
Definition gmpMaterialInterfaceMohrCoulomb.h:104
virtual double faultFrictionAngle(const GmElement *e, const GmVector *coord, int ip) const
Returns the friction angle of the discontinuity.
Definition gmpMaterialInterfaceMohrCoulomb.h:92
GaussAttributeIds
IDs for material Gauss attributes.
Definition gmpMaterialInterfaceMohrCoulomb.h:70
@ EPOLD_GA_ID
Id for retrieving the plastic strain accessor at the previous state (old plastic strain)
Definition gmpMaterialInterfaceMohrCoulomb.h:72
@ NUM_GA_IDS
The number of Gauss attribute ids above.
Definition gmpMaterialInterfaceMohrCoulomb.h:78
virtual double faultDilationAngle(const GmElement *e, const GmVector *coord, int ip) const
Returns the dilation angle of the discontinuity.
Definition gmpMaterialInterfaceMohrCoulomb.h:98
virtual double faultCohesion(const GmElement *e, const GmVector *coord, int ip) const
Returns the cohesion of the discontinuity.
Definition gmpMaterialInterfaceMohrCoulomb.h:86
GmpInterfaceMohrCoulomb(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition gmpMaterialInterfaceMohrCoulomb.h:52
Definition gmpMechanicPoint.h:33
arma::mat GmMatrix
arma::vec GmVector
Declaration of the GmpInterfaceMaterial classes.
Declaration of the GmpMechanicPoint class.