MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Loading...
Searching...
No Matches
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
33class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMaterialElastoplasticMultiSurface : public GmpMaterialElastoplastic
34{
35public:
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 gmpMaterialElastoplastic.h:36
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
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
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
Definition gmpMaterialElastoplasticMultiSurface.h:34
Definition gmpMechanicPoint.h:33
arma::mat GmMatrix
arma::vec GmVector
Declaration of the gmpMaterialElastoplastic classes.
Declaration of the GmpMechanicPoint class.