MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Loading...
Searching...
No Matches
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
33class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMaterialCapMohrCoulomb : public GmpMaterialModifiedMohrCoulomb
34{
35protected:
38 {
41
42 // --- NO ADDING BELOW THIS LINE
44 };
45
46public:
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
Definition gmpMaterialCapMohrCoulomb.h:34
virtual ~GmpMaterialCapMohrCoulomb()
Virtual destructor.
Definition gmpMaterialCapMohrCoulomb.h:53
ElementPropertyIds
IDs for material element properties.
Definition gmpMaterialCapMohrCoulomb.h:38
@ R_ID
Id for retrieving the cap eccentricity.
Definition gmpMaterialCapMohrCoulomb.h:40
@ NUM_PROPERTY_IDS
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
GmpMaterialCapMohrCoulomb(int typeIndex, QString typeName, const GmLogCategory &logger)
Constructor. Gets as parameters the material index and its name.
Definition gmpMaterialCapMohrCoulomb.h:49
Definition gmpMaterialModifMohrCoulomb.h:34
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
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
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpMaterialModifMohrCoulomb.h:44
Definition gmpMechanicPoint.h:33
arma::mat GmMatrix
arma::vec GmVector
Declaration of the gmpMaterialElastoplastic classes.
Declaration of the gmpMaterialModifiedMohrCoulomb classes.
Declaration of the GmpMechanicPoint class.