MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
gmpMechanicPoint.h
Go to the documentation of this file.
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 
26 #ifndef _GEMA_PLUGIN_MECHANICALMATERIAL_POINT_H_
27 #define _GEMA_PLUGIN_MECHANICALMATERIAL_POINT_H_
28 
29 #include "gmpMechanicalConfig.h"
30 #include <gmGaussAccessor.h>
31 
32 class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMechanicPoint
33 {
34 public:
35  //enumarations
36  enum state
37  {
38  elastic,
39  plastic,
40  residue,
41  broken,
42  softening,
43  un_reloading,
44  failure,
45  apex
46  };
47  // element opening state to define fluid flow
48  enum openState
49  {
50  CLOSE_MODE,
51  TIP_MODE,
52  OPEN_MODE,
53  };
54 
55  enum stress
56  {
57  sxx = 1 << 0,
58  syy = 1 << 1,
59  szz = 1 << 2,
60  sxy = 1 << 3,
61  sxz = 1 << 4,
62  syz = 1 << 5,
63  last
64  };
65  enum stressState
66  {
67  uniaxial,
68  axial_shear,
69  plane_strain,
70  plane_stress,
71  axissimetric,
72  cohesive,
73  triaxial
74  };
75 
77  enum savedData
78  {
79  // index intentionally left out since it is not exported to the Lua material user function environment in the "mp" sub-table
80  SD_oldState,
81  SD_newState,
82  SD_oldStrain,
83  SD_newStrain,
84  SD_oldStress,
85  SD_newStress,
86  SD_residualStress,
87  SD_newYSR,
88  SD_oldYSR,
89  SD_iteration,
90  SD_substeps,
91  SD_lineSearch,
92  SD_oldTemp,
93  SD_newTemp,
94  SD_F,
95  SD_enabledK0,
96  SD_updatedLD,
97  };
98 
99  //constructors
100  GmpMechanicPoint(void);
101 
102  //destructor
103  virtual ~GmpMechanicPoint(void);
104 
105  // Large displacement flag;
106  bool _updatedLD = false;
107 
108  //attributes
109  unsigned _index;
110  GmGaussAccessor* _oldState;
111  GmGaussAccessor* _newState;
112  GmGaussAccessor* _oldStrain;
113  GmGaussAccessor* _newStrain;
114  GmGaussAccessor* _oldStress;
115  GmGaussAccessor* _newStress;
116  GmGaussAccessor* _residualStress;
117  GmGaussAccessor* _newYSR;
118  GmGaussAccessor* _oldYSR;
119  GmGaussAccessor* _iteration;
120  GmGaussAccessor* _substeps;
121  GmGaussAccessor* _lineSearch;
122  GmGaussAccessor* _oldTemp;
123  GmGaussAccessor* _newTemp;
124  GmMatrix* _F;
125  bool _enabledK0;
126 
127  // IMPORTANT: When adding values to this structure, please remember to update the savedAccessors enum above,
128  // the savedAc() function if the value is a Gauss accessor, and the GmpMechanicalMaterialLua::_mpNameMap
129  // initialization. This is needed to enable using the new data inside Lua materials. Non GaussAccessor
130  // values may also need an update in GmpMechanicalMaterialLua::getMpValue() and / or
131  // GmpMechanicalMaterialLua::setMpValue()
132 
133  GmGaussAccessor* savedAc(savedData acId) const;
134 };
135 
136 //typedef GmpMechanicPoint::modellingSpace modellingSpace;
137 typedef GmpMechanicPoint::state materialPointStates;
138 typedef GmpMechanicPoint::stressState stressState;
139 
140 #endif
Definition: gmpMechanicPoint.h:32
Declaration of usefull configuration definitions for the plugin library.
savedData
The set of saved data.
Definition: gmpMechanicPoint.h:77
arma::mat GmMatrix