MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
gmpMaterialLadeKim.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_LADE_KIM_H_
25 #define _GEMA_PLUGIN_MECHANICALMATERIAL_LADE_KIM_H_
26 
28 #include "gmpMechanicPoint.h"
29 #include "gmpFemPhysics.h"
30 #include "gmMathUtils.h"
31 
32 class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMaterialLadeKim : public GmpMaterialElastoplastic
33 {
34 protected:
37  {
41 
42  // --- NO ADDING BELOW THIS LINE
44  };
45 
46 public:
47 
49  GmpMaterialLadeKim(int typeIndex, QString typeName, const GmLogCategory& logger)
50  : GmpMaterialElastoplastic(typeIndex, typeName, logger) {}
51 
53  virtual ~GmpMaterialLadeKim() {}
54 
56  static GmpFemPhysicsCommonMaterial* instance(GmSimulationData* simulation, int typeIndex, QString typeName, const GmLogCategory& logger)
57  {
58  Q_UNUSED(simulation);
59  return new GmpMaterialLadeKim(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 
69  virtual bool isIsotropic() const { return true; }
70 
72  virtual double cohesion(const GmElement* e, const GmVector* coord, int ip) const
73  {
74  return propertyAc(COH_ID)->scalarValueAt(e, coord, ip);
75  }
77  virtual double frictionAngle(const GmElement* e, const GmVector* coord, int ip) const
78  {
79  return propertyAc(PHI_ID)->scalarValueAt(e, coord, ip);
80  }
82  virtual double dilationAngle(const GmElement* e, const GmVector* coord, int ip) const
83  {
84  return propertyAc(PSI_ID)->scalarValueAt(e, coord, ip);
85  }
86 
87  // Yield criterion
88  virtual double yieldCriterion(const GmElement*, const GmVector&, const GmVector*, int, unsigned) const;
89  virtual bool yieldStressGradient(const GmElement*, GmVector&, const GmVector&, const GmVector*, int, unsigned, bool) const;
90  virtual bool yieldHessian(const GmElement*, GmMatrix&, const GmVector&, const GmVector*, int, unsigned, bool) const;
91 
92  // Plastic potential
93  virtual double plasticFPotential(const GmElement*, const GmVector&, const GmVector*, int, unsigned) const;
94  virtual bool flowVector(const GmElement*, GmVector&, const GmVector&, const GmVector*, int, unsigned, bool) const;
95  virtual bool flowVectorStressGradient(const GmElement*, GmMatrix&, const GmVector&, const GmVector*, int, unsigned, bool) const;
96 
98  virtual double yieldStrengthRatio(const GmElement* e, const GmVector& S, const GmVector* coord, int ip, unsigned sc) const;
99 
100 };
101 
102 #endif
Definition: gmpMaterialLadeKim.h:32
Id for retrieving the dilatance angle accessor.
Definition: gmpMaterialLadeKim.h:40
ElementPropertyIds
IDs for material element properties.
Definition: gmpMaterialElastic.h:38
virtual ~GmpMaterialLadeKim()
Virtual destructor.
Definition: gmpMaterialLadeKim.h:53
The number of property ids above.
Definition: gmpMaterialLadeKim.h:43
The number of property ids above.
Definition: gmpMaterialElastoplastic.h:79
Definition: gmpMechanicPoint.h:32
GmpMaterialLadeKim(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition: gmpMaterialLadeKim.h:49
virtual double dilationAngle(const GmElement *e, const GmVector *coord, int ip) const
Returns the material dilation angle.
Definition: gmpMaterialLadeKim.h:82
Declaration of the gmpMaterialElastoplastic classes.
virtual double yieldStrengthRatio(const GmElement *e, const GmVector &S, const GmVector *coord, int ip, unsigned sc) const =0
Returns the Yield Strength Ratio (Ysr)
Declaration of the GmpMechanicPoint class.
virtual bool isIsotropic() const
Returns true if the material is isotropic, false otherwise.
Definition: gmpMaterialLadeKim.h: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: gmpMaterialLadeKim.h:56
Id for retrieving the friction angle accessor.
Definition: gmpMaterialLadeKim.h:39
arma::vec GmVector
Definition: gmpMaterialElastoplastic.h:35
arma::mat GmMatrix
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