MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
gmpMaterialElastoplasticMultiSurface.h
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 
25 #ifndef _GEMA_PLUGIN_MECHANICALMATERIAL_ELASTOPLASTIC_MULTIPLESURFACE_H_
26 #define _GEMA_PLUGIN_MECHANICALMATERIAL_ELASTOPLASTIC_MULTIPLESURFACE_H_
27 
29 #include "gmpMechanicPoint.h"
30 #include "gmpFemPhysics.h"
31 #include "gmMathUtils.h"
32 
33 class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMaterialElastoplasticMultiSurface : public GmpMaterialElastoplastic
34 {
35 public:
36  //constructors
37  GmpMaterialElastoplasticMultiSurface(int typeIndex, QString typeName, const GmLogCategory& logger)
38  : GmpMaterialElastoplastic(typeIndex, typeName, logger) {}
39 
40  //destructor
42 
43  // Returns the stresses according to the explicit return algorithm
44  virtual bool explicitReturnAlgorithm(const GmElement*, GmMatrix&, const GmpMechanicPoint*, const GmVector*, unsigned, bool) const;
45 
46  // Returns the stresses according to the cutting plane return algorithm
47  virtual bool semiImplicitReturnAlgorithm(const GmElement*, GmMatrix&, const GmpMechanicPoint*, const GmVector*, unsigned, bool) const;
48 
49  // Returns the stresses according to the closet point return algorithm
50  virtual bool implicitReturnAlgorithm(const GmElement*, GmMatrix&, const GmpMechanicPoint*, const GmVector*, unsigned, bool) const;
51 
52  // Yield criterion
53  virtual double yieldCriterion(const GmElement*, const GmVector&, const GmVector*, int, unsigned) const = 0;
54  // Stress gradient of Yield function
55  virtual bool yieldStressGradient(const GmElement*, GmVector&, const GmVector&, const GmVector*, int, unsigned, bool) const = 0;
56 
57  // Flow vector (Stress gradient of potencial function)
58  virtual bool flowVector(const GmElement*, GmVector&, const GmVector&, const GmVector*, int, unsigned, bool) const = 0;
59  // Stress gradient of Flow vector
60  virtual bool flowVectorStressGradient(const GmElement*, GmMatrix&, const GmVector&, const GmVector*, int, unsigned, bool) const = 0;
61 
62  // Hardening law
63  virtual double hardeningLaw(const GmElement*, const GmpMechanicPoint*, const GmVector*, int, unsigned) const { return 0.0; }
64  // Stress gradient of Hardening law
65  virtual double hardeningStressGradient(const GmElement*, const GmpMechanicPoint*, const GmVector*, int, unsigned) const { return 0.0; };
66  // hardening gradient of hardening law
67  virtual double hardemningHessian(const GmElement*, const GmpMechanicPoint*, const GmVector*, int, unsigned) const { return 0.0; };
68 
69 };
70 
71 #endif
Definition: gmpMaterialElastoplasticMultiSurface.h:33
virtual bool implicitReturnAlgorithm(const GmElement *, GmMatrix &, const GmpMechanicPoint *, const GmVector *, unsigned, bool) const
Returns the updated stresses using implicit return algorithm.
Definition: gmpMaterialElastoplastic.cpp:268
Definition: gmpMechanicPoint.h:32
Declaration of the gmpMaterialElastoplastic classes.
Declaration of the GmpMechanicPoint class.
virtual bool explicitReturnAlgorithm(const GmElement *, GmMatrix &, const GmpMechanicPoint *, const GmVector *, unsigned, bool) const
Returns the updated stresses using explicit return algorithm.
Definition: gmpMaterialElastoplastic.cpp:123
arma::vec GmVector
Definition: gmpMaterialElastoplastic.h:35
arma::mat GmMatrix
virtual bool semiImplicitReturnAlgorithm(const GmElement *, GmMatrix &, const GmpMechanicPoint *, const GmVector *, unsigned, bool) const
Returns the updated stresses using cutting plane return algorithm.
Definition: gmpMaterialElastoplastic.cpp:135