MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Loading...
Searching...
No Matches
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
32class GMP_MECHANICAL_PHYSICS_API_EXPORT GmpMechanicPoint
33{
34public:
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 stressIndex {
56 isxx = 0,
57 isyy = 1,
58 iszz = 2,
59 isxy = 3,
60 isxz = 4,
61 isyz = 5,
62 };
63
64 enum stress
65 {
66 sxx = 1 << isxx,
67 syy = 1 << isyy,
68 szz = 1 << iszz,
69 sxy = 1 << isxy,
70 sxz = 1 << isxz,
71 syz = 1 << isyz,
72 last
73 };
74 enum stressState
75 {
76 uniaxial,
77 axial_shear,
78 plane_strain,
79 plane_stress,
80 axissimetric,
81 cohesive,
82 triaxial
83 };
84
87 {
88 // index intentionally left out since it is not exported to the Lua material user function environment in the "mp" sub-table
89 SD_oldState,
90 SD_newState,
91 SD_oldStrain,
92 SD_newStrain,
93 SD_oldStress,
94 SD_newStress,
95 SD_residualStress,
96 SD_newYSR,
97 SD_oldYSR,
98 SD_iteration,
99 SD_substeps,
100 SD_lineSearch,
101 SD_oldTemp,
102 SD_newTemp,
103 SD_F,
104 SD_enabledK0,
105 SD_updatedLD,
106 };
107
108 //constructors
109 GmpMechanicPoint(void);
110
111 //destructor
112 virtual ~GmpMechanicPoint(void);
113
114 // Large displacement flag;
115 bool _updatedLD = false;
116
117 //attributes
119 //unsigned _index;
120 GmGaussAccessor* _oldState;
121 GmGaussAccessor* _newState;
122 GmGaussAccessor* _oldStrain;
123 GmGaussAccessor* _newStrain;
124 GmGaussAccessor* _oldStress;
125 GmGaussAccessor* _newStress;
126 GmGaussAccessor* _residualStress;
127 GmGaussAccessor* _newYSR;
128 GmGaussAccessor* _oldYSR;
129 GmGaussAccessor* _iteration;
130 GmGaussAccessor* _substeps;
131 GmGaussAccessor* _lineSearch;
132 GmGaussAccessor* _oldTemp;
133 GmGaussAccessor* _newTemp;
135 bool _enabledK0;
136
137 // IMPORTANT: When adding values to this structure, please remember to update the savedAccessors enum above,
138 // the savedAc() function if the value is a Gauss accessor, and the GmpMechanicalMaterialLua::_mpNameMap
139 // initialization. This is needed to enable using the new data inside Lua materials. Non GaussAccessor
140 // values may also need an update in GmpMechanicalMaterialLua::getMpValue() and / or
141 // GmpMechanicalMaterialLua::setMpValue()
142
143 GmGaussAccessor* savedAc(savedData acId) const;
144};
145
146//typedef GmpMechanicPoint::modellingSpace modellingSpace;
147typedef GmpMechanicPoint::state materialPointStates;
148typedef GmpMechanicPoint::stressState stressState;
149
150#endif
Definition gmpMechanicPoint.h:33
savedData
The set of saved data.
Definition gmpMechanicPoint.h:87
Declaration of useful configuration definitions for the plugin library.