MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
gmpMaterialCapMohrCoulomb.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 
24 #ifndef _GEMA_PLUGIN_MECHANICALMATERIAL_CAPMOHRCOULOMB_H_
25 #define _GEMA_PLUGIN_MECHANICALMATERIAL_CAPMOHRCOULOMB_H_
26 
29 #include "gmpMechanicPoint.h"
30 #include "gmpFemPhysics.h"
31 #include "gmMathUtils.h"
32 
33 class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMaterialCapMohrCoulomb : public GmpMaterialModifiedMohrCoulomb
34 {
35 protected:
38  {
40  R_ID,
41 
42  // --- NO ADDING BELOW THIS LINE
44  };
45 
46 public:
47 
49  GmpMaterialCapMohrCoulomb(int typeIndex, QString typeName, const GmLogCategory& logger)
50  : GmpMaterialModifiedMohrCoulomb(typeIndex, typeName, logger) {}
51 
54 
56  static GmpFemPhysicsCommonMaterial* instance(GmSimulationData* simulation, int typeIndex, QString typeName, const GmLogCategory& logger)
57  {
58  Q_UNUSED(simulation);
59  return new GmpMaterialCapMohrCoulomb(typeIndex, typeName, logger);
60  }
61 
62  // Returns a map with material associated properties.
63  virtual const QVariantMap* materialMetaDataMap();
64 
65  // Returns the stresses according to the material behavior adopted
66  virtual bool closestPointReturnAlgorithm(const GmElement* c, GmMatrix& Dep, const GmpMechanicPoint* mp, const GmVector* coord, unsigned sc, bool ips) const;
67 
68  //yield criterion
69  virtual double yieldCriterion(const GmElement*, const GmVector&, const GmVector*, int, unsigned) const;
70  virtual bool yieldStressGradient(const GmElement*, GmVector&, const GmVector&, const GmVector*, int, unsigned, bool) const;
71  virtual bool yieldHessian(const GmElement*, GmMatrix&, const GmVector&, const GmVector*, int, unsigned, bool) const;
72 
73 
74  //plastic potential
75  virtual double plasticFPotential(const GmElement*, const GmVector&, const GmVector*, int, unsigned) const;
76  virtual bool flowVector(const GmElement*, GmVector&, const GmVector&, const GmVector*, int, unsigned, bool) const;
77  virtual bool flowVectorStressGradient(const GmElement*, GmMatrix&, const GmVector&, const GmVector*, int, unsigned, bool) const;
78 
79  //Returns the stresses according to the material behavior adopted
80  //virtual void returnMapping(const GmElement*, GmMatrix&, const GmpMechanicPoint*, const GmVector*, unsigned, unsigned) const;
81  // Line Search
82  virtual double lineSearch(const GmElement*, GmMatrix&, const GmpMechanicPoint*, const GmVector*, GmVector, double, unsigned, bool) const;
83  // Residual Function
84  virtual double residualFunction(const GmElement*, GmMatrix&, const GmpMechanicPoint*, const GmVector*, GmVector S, double dLamb, unsigned, bool) const;
85 
87  virtual double yieldStrengthRatio(const GmElement* e, const GmVector& S, const GmVector* coord, int ip, unsigned sc) const;
88 
89 };
90 
91 #endif
virtual double yieldStrengthRatio(const GmElement *e, const GmVector &S, const GmVector *coord, int ip, unsigned sc) const
Returns the Yield Strength Ratio (Ysr)
Definition: gmpMaterialModifMohrCoulomb.cpp:672
The number of property ids above.
Definition: gmpMaterialCapMohrCoulomb.h:43
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
Id for retrieving the cap eccentricity.
Definition: gmpMaterialCapMohrCoulomb.h:40
Definition: gmpMaterialModifMohrCoulomb.h:33
virtual ~GmpMaterialCapMohrCoulomb()
Virtual destructor.
Definition: gmpMaterialCapMohrCoulomb.h:53
Definition: gmpMechanicPoint.h:32
Definition: gmpMaterialCapMohrCoulomb.h:33
virtual const QVariantMap * materialMetaDataMap()
Returns a pointer to the material attribute map, built when the function is called for the first time...
Definition: gmpMaterialModifMohrCoulomb.cpp:43
Declaration of the gmpMaterialElastoplastic classes.
Declaration of the GmpMechanicPoint class.
GmpMaterialCapMohrCoulomb(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition: gmpMaterialCapMohrCoulomb.h:49
ElementPropertyIds
IDs for material element properties.
Definition: gmpMaterialCapMohrCoulomb.h:37
Declaration of the gmpMaterialModifiedMohrCoulomb classes.
arma::vec GmVector
arma::mat GmMatrix
The number of property ids above.
Definition: gmpMaterialModifMohrCoulomb.h:44