GEOS
SolidMechanicsFields.hpp
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2024 TotalEnergies
7  * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University
8  * Copyright (c) 2023-2024 Chevron
9  * Copyright (c) 2019- GEOS/GEOSX Contributors
10  * All rights reserved
11  *
12  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
13  * ------------------------------------------------------------------------------------------------------------
14  */
15 
20 #ifndef GEOS_PHYSICSSOLVERS_SOLIDMECHANICS_SOLIDMECHANICSFIELDS_HPP_
21 #define GEOS_PHYSICSSOLVERS_SOLIDMECHANICS_SOLIDMECHANICSFIELDS_HPP_
22 
23 #include "common/DataLayouts.hpp"
24 #include "mesh/MeshFields.hpp"
25 
26 namespace geos
27 {
31 namespace fields
32 {
33 
34 namespace solidMechanics
35 {
36 
37 using array2dLayoutTotalDisplacement = array2d< real64, nodes::TOTAL_DISPLACEMENT_PERM >;
38 using arrayView2dLayoutTotalDisplacement = arrayView2d< real64, nodes::TOTAL_DISPLACEMENT_USD >;
39 using arrayViewConst2dLayoutTotalDisplacement = arrayView2d< real64 const, nodes::TOTAL_DISPLACEMENT_USD >;
40 
41 using array2dLayoutIncrDisplacement = array2d< real64, nodes::INCR_DISPLACEMENT_PERM >;
42 using arrayView2dLayoutIncrDisplacement = arrayView2d< real64, nodes::INCR_DISPLACEMENT_USD >;
43 using arrayViewConst2dLayoutIncrDisplacement = arrayView2d< real64 const, nodes::INCR_DISPLACEMENT_USD >;
44 
45 using array2dLayoutStrain = array2d< real64, cells::RANK2_TENSOR_PERM >;
46 using arrayView2dLayoutStrain = arrayView2d< real64, cells::RANK2_TENSOR_USD >;
47 using arrayViewConst2dLayoutStrain = arrayView2d< real64 const, cells::RANK2_TENSOR_USD >;
48 
49 using array2dLayoutAvgStress = array2d< real64, cells::RANK2_TENSOR_PERM >;
50 using arrayView2dLayoutAvgStress = arrayView2d< real64, cells::RANK2_TENSOR_USD >;
51 using arrayViewConst2dLayoutAvgStress = arrayView2d< real64 const, cells::RANK2_TENSOR_USD >;
52 
53 using array2dLayoutVelocity = array2d< real64, nodes::VELOCITY_PERM >;
54 using arrayView2dLayoutVelocity = arrayView2d< real64, nodes::VELOCITY_USD >;
55 using arrayViewConst2dLayoutVelocity = arrayView2d< real64 const, nodes::VELOCITY_USD >;
56 
57 using array2dLayoutAcceleration = array2d< real64, nodes::ACCELERATION_PERM >;
58 using arrayView2dLayoutAcceleration = arrayView2d< real64, nodes::ACCELERATION_USD >;
59 using arrayViewConst2dLayoutAcceleration = arrayView2d< real64 const, nodes::ACCELERATION_USD >;
60 
61 
62 DECLARE_FIELD( totalDisplacement,
63  "totalDisplacement",
64  array2dLayoutTotalDisplacement,
65  0,
66  LEVEL_0,
67  WRITE_AND_READ,
68  "Total displacements at the nodes" );
69 
70 DECLARE_FIELD( incrementalDisplacement,
71  "incrementalDisplacement",
72  array2dLayoutIncrDisplacement,
73  0,
74  LEVEL_3,
75  WRITE_AND_READ,
76  "Incremental displacements for the current time step on the nodes" );
77 
78 DECLARE_FIELD( averageStrain,
79  "averageStrain",
80  array2dLayoutStrain,
81  0,
82  LEVEL_0,
83  WRITE_AND_READ,
84  "Quadrature averaged strain components in cell" );
85 
86 DECLARE_FIELD( averageStress,
87  "averageStress",
88  array2dLayoutAvgStress,
89  0,
90  LEVEL_0,
91  WRITE_AND_READ,
92  "Quadrature averaged stress components in cell" );
93 
94 DECLARE_FIELD( averagePlasticStrain,
95  "averagePlasticStrain",
96  array2dLayoutStrain,
97  0,
98  LEVEL_0,
99  WRITE_AND_READ,
100  "Average plastic strain in cell" );
101 
102 DECLARE_FIELD( velocity,
103  "velocity",
104  array2dLayoutVelocity,
105  0,
106  LEVEL_0,
107  WRITE_AND_READ,
108  "Current velocity on the nodes" );
109 
110 DECLARE_FIELD( acceleration,
111  "acceleration",
112  array2dLayoutAcceleration,
113  0,
114  LEVEL_1,
115  WRITE_AND_READ,
116  "Current acceleration on the nodes. This array also is used "
117  "to hold the summation of nodal forces resulting from the governing equations" );
118 
119 DECLARE_FIELD( externalForce,
120  "externalForce",
121  array2d< real64 >,
122  0,
123  LEVEL_0,
124  WRITE_AND_READ,
125  "External forces on the nodes. This includes any boundary"
126  " conditions as well as coupling forces such as hydraulic forces" );
127 
128 DECLARE_FIELD( mass,
129  "mass",
130  array1d< real64 >,
131  0,
132  LEVEL_0,
133  WRITE_AND_READ,
134  "Mass on the nodes" );
135 
136 DECLARE_FIELD( velocityTilde,
137  "velocityTilde",
138  array2d< real64 >,
139  0,
140  NOPLOT,
141  WRITE_AND_READ,
142  "Velocity predictors on the nodes" );
143 
144 DECLARE_FIELD( uhatTilde,
145  "uhatTilde",
146  array2d< real64 >,
147  0,
148  NOPLOT,
149  WRITE_AND_READ,
150  "Incremental displacement predictors on the nodes" );
151 
152 DECLARE_FIELD( contactForce,
153  "contactForce",
154  array2d< real64 >,
155  0,
156  NOPLOT,
157  WRITE_AND_READ,
158  "Contact force" );
159 
160 }
161 
162 }
163 
164 }
165 
166 #endif // GEOS_PHYSICSSOLVERS_SOLIDMECHANICS_SOLIDMECHANICSFIELDS_HPP_
#define DECLARE_FIELD(NAME, KEY, TYPE, DEFAULT, PLOTLEVEL, RESTARTFLAG, DESCRIPTION)
Generates a traits struct.
Definition: MeshFields.hpp:39