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::STRAIN_PERM >;
46 using arrayView2dLayoutStrain = arrayView2d< real64, cells::STRAIN_USD >;
47 using arrayViewConst2dLayoutStrain = arrayView2d< real64 const, cells::STRAIN_USD >;
48 
49 using array2dLayoutVelocity = array2d< real64, nodes::VELOCITY_PERM >;
50 using arrayView2dLayoutVelocity = arrayView2d< real64, nodes::VELOCITY_USD >;
51 using arrayViewConst2dLayoutVelocity = arrayView2d< real64 const, nodes::VELOCITY_USD >;
52 
53 using array2dLayoutAcceleration = array2d< real64, nodes::ACCELERATION_PERM >;
54 using arrayView2dLayoutAcceleration = arrayView2d< real64, nodes::ACCELERATION_USD >;
55 using arrayViewConst2dLayoutAcceleration = arrayView2d< real64 const, nodes::ACCELERATION_USD >;
56 
57 
58 DECLARE_FIELD( totalDisplacement,
59  "totalDisplacement",
60  array2dLayoutTotalDisplacement,
61  0,
62  LEVEL_0,
63  WRITE_AND_READ,
64  "Total displacements at the nodes" );
65 
66 DECLARE_FIELD( totalBubbleDisplacement,
67  "totalBubbleDisplacement",
68  array2d< real64 >,
69  0,
70  LEVEL_0,
71  WRITE_AND_READ,
72  "Total bubble displacements at the faces" );
73 
74 DECLARE_FIELD( incrementalDisplacement,
75  "incrementalDisplacement",
76  array2dLayoutIncrDisplacement,
77  0,
78  LEVEL_3,
79  WRITE_AND_READ,
80  "Incremental displacements for the current time step on the nodes" );
81 
82 DECLARE_FIELD( strain,
83  "strain",
84  array2dLayoutStrain,
85  0,
86  LEVEL_0,
87  WRITE_AND_READ,
88  "Average strain in cell" );
89 
90 DECLARE_FIELD( incrementalBubbleDisplacement,
91  "incrementalBubbleDisplacement",
92  array2d< real64 >,
93  0,
94  LEVEL_3,
95  WRITE_AND_READ,
96  "Incremental bubble displacements for the current time step on the nodes" );
97 
98 DECLARE_FIELD( velocity,
99  "velocity",
100  array2dLayoutVelocity,
101  0,
102  LEVEL_0,
103  WRITE_AND_READ,
104  "Current velocity on the nodes" );
105 
106 DECLARE_FIELD( acceleration,
107  "acceleration",
108  array2dLayoutAcceleration,
109  0,
110  LEVEL_1,
111  WRITE_AND_READ,
112  "Current acceleration on the nodes. This array also is used "
113  "to hold the summation of nodal forces resulting from the governing equations" );
114 
115 DECLARE_FIELD( externalForce,
116  "externalForce",
117  array2d< real64 >,
118  0,
119  LEVEL_0,
120  WRITE_AND_READ,
121  "External forces on the nodes. This includes any boundary"
122  " conditions as well as coupling forces such as hydraulic forces" );
123 
124 DECLARE_FIELD( mass,
125  "mass",
126  array1d< real64 >,
127  0,
128  LEVEL_0,
129  WRITE_AND_READ,
130  "Mass on the nodes" );
131 
132 DECLARE_FIELD( velocityTilde,
133  "velocityTilde",
134  array2d< real64 >,
135  0,
136  NOPLOT,
137  WRITE_AND_READ,
138  "Velocity predictors on the nodes" );
139 
140 DECLARE_FIELD( uhatTilde,
141  "uhatTilde",
142  array2d< real64 >,
143  0,
144  NOPLOT,
145  WRITE_AND_READ,
146  "Incremental displacement predictors on the nodes" );
147 
148 DECLARE_FIELD( contactForce,
149  "contactForce",
150  array2d< real64 >,
151  0,
152  NOPLOT,
153  WRITE_AND_READ,
154  "Contact force" );
155 
156 }
157 
158 }
159 
160 }
161 
162 #endif // GEOS_PHYSICSSOLVERS_SOLIDMECHANICS_SOLIDMECHANICSFIELDS_HPP_
#define DECLARE_FIELD(NAME, KEY, TYPE, DEFAULT, PLOTLEVEL, RESTARTFLAG, DESCRIPTION)
Generates a traits struct.
Definition: MeshFields.hpp:39