GEOS
AcousticFields.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 
16 
21 #ifndef GEOS_PHYSICSSOLVERS_WAVEPROPAGATION_ACOUSTICFIELDS_HPP_
22 #define GEOS_PHYSICSSOLVERS_WAVEPROPAGATION_ACOUSTICFIELDS_HPP_
23 
24 #include "common/DataLayouts.hpp"
25 #include "mesh/MeshFields.hpp"
26 
27 
28 namespace geos
29 {
30 
31 namespace fields
32 {
33 
34 namespace acousticfields
35 {
36 
37 DECLARE_FIELD( Pressure_nm1,
38  "pressure_nm1",
39  array1d< real32 >,
40  0,
41  NOPLOT,
42  WRITE_AND_READ,
43  "Scalar pressure at time n-1." );
44 
45 DECLARE_FIELD( Pressure_n,
46  "pressure_n",
47  array1d< real32 >,
48  0,
49  NOPLOT,
50  WRITE_AND_READ,
51  "Scalar pressure at time n." );
52 
53 
54 DECLARE_FIELD( Pressure_np1,
55  "pressure_np1",
56  array1d< real32 >,
57  0,
58  LEVEL_0,
59  WRITE_AND_READ,
60  "Scalar pressure at time n+1." );
61 
62 DECLARE_FIELD( DivPsi,
63  "divpsi",
64  array2d< real32 >,
65  0,
66  NOPLOT,
67  WRITE_AND_READ,
68  "memory variable for acoustic attenuation." );
69 
70 DECLARE_FIELD( DivPsi_p,
71  "divpsi_p",
72  array2d< real32 >,
73  0,
74  NOPLOT,
75  WRITE_AND_READ,
76  "p-type memory variable for acoustic VTI attenuation." );
77 
78 DECLARE_FIELD( DivPsi_q,
79  "divpsi_q",
80  array2d< real32 >,
81  0,
82  NOPLOT,
83  WRITE_AND_READ,
84  "q-type memory variable for acoustic VTI attenuation." );
85 
86 DECLARE_FIELD( PressureForward,
87  "pressureForward",
88  array1d< real32 >,
89  0,
90  NOPLOT,
91  WRITE_AND_READ,
92  "Pressure field from forward pass on each node to compute the gradient" );
93 
94 DECLARE_FIELD( Velocity_x,
95  "velocity_x",
96  array2d< real32 >,
97  0,
98  LEVEL_0,
99  WRITE_AND_READ,
100  "Velocity in the x-direction." );
101 
102 DECLARE_FIELD( Velocity_y,
103  "velocity_y",
104  array2d< real32 >,
105  0,
106  LEVEL_0,
107  WRITE_AND_READ,
108  "Velocity in the y-direction." );
109 
110 DECLARE_FIELD( Velocity_z,
111  "velocity_z",
112  array2d< real32 >,
113  0,
114  LEVEL_0,
115  WRITE_AND_READ,
116  "Velocity in the z-direction." );
117 
118 DECLARE_FIELD( PartialGradient,
119  "partialGradient",
120  array1d< real32 >,
121  0,
122  NOPLOT,
123  WRITE_AND_READ,
124  "Partial gradient or imaging condition computed during backward propagation" );
125 
126 DECLARE_FIELD( PartialGradient2,
127  "partialGradient2",
128  array1d< real32 >,
129  0,
130  NOPLOT,
131  WRITE_AND_READ,
132  "Partial gradient for density/velocity computed during backward propagation" );
133 
134 DECLARE_FIELD( ForcingRHS,
135  "rhs",
136  array1d< real32 >,
137  0,
138  NOPLOT,
139  WRITE_AND_READ,
140  "RHS" );
141 
142 DECLARE_FIELD( AcousticMassVector,
143  "acousticMassVector",
144  array1d< real32 >,
145  0,
146  NOPLOT,
147  WRITE_AND_READ,
148  "Diagonal of the Mass Matrix." );
149 
150 DECLARE_FIELD( StiffnessVector,
151  "stiffnessVector",
152  array1d< real32 >,
153  0,
154  NOPLOT,
155  WRITE_AND_READ,
156  "Stiffness vector contains R_h*Pressure_n." );
157 
158 DECLARE_FIELD( StiffnessVectorA,
159  "stiffnessVectorA",
160  array1d< real32 >,
161  0,
162  NOPLOT,
163  WRITE_AND_READ,
164  "Acoustic attenuation stiffness vector." );
165 
166 DECLARE_FIELD( DampingVector,
167  "dampingVector",
168  array1d< real32 >,
169  0,
170  NOPLOT,
171  WRITE_AND_READ,
172  "Diagonal of the Damping Matrix." );
173 
174 DECLARE_FIELD( AcousticVelocity,
175  "acousticVelocity",
176  array1d< real32 >,
177  0,
178  NOPLOT,
179  WRITE_AND_READ,
180  "Medium velocity of the cell" );
181 
182 DECLARE_FIELD( AcousticDensity,
183  "acousticDensity",
184  array1d< real32 >,
185  1,
186  NOPLOT,
187  WRITE_AND_READ,
188  "Medium density of the cell" );
189 
190 DECLARE_FIELD( AcousticQualityFactor,
191  "acousticQualityFactor",
192  array1d< real32 >,
193  0,
194  NOPLOT,
195  WRITE_AND_READ,
196  "Quality factor for acoustic wave attenuation in the cell" );
197 
198 DECLARE_FIELD( AcousticFreeSurfaceFaceIndicator,
199  "acousticFreeSurfaceFaceIndicator",
200  array1d< localIndex >,
201  0,
202  NOPLOT,
203  WRITE_AND_READ,
204  "Free surface indicator, 1 if a face is on free surface 0 otherwise." );
205 
206 DECLARE_FIELD( AcousticFreeSurfaceNodeIndicator,
207  "acousticFreeSurfaceNodeIndicator",
208  array1d< localIndex >,
209  0,
210  NOPLOT,
211  WRITE_AND_READ,
212  "Free surface indicator, 1 if a node is on free surface 0 otherwise." );
213 
214 DECLARE_FIELD( AuxiliaryVar1PML,
215  "auxiliaryVar1PML",
216  array2d< real32 >,
217  0,
218  NOPLOT,
219  WRITE_AND_READ,
220  "PML vectorial auxiliary variable 1." );
221 
222 DECLARE_FIELD( AuxiliaryVar2PML,
223  "auxiliaryVar2PML",
224  array2d< real32 >,
225  0,
226  NOPLOT,
227  NO_WRITE,
228  "PML vectorial auxiliary variable 2." );
229 
230 DECLARE_FIELD( AuxiliaryVar3PML,
231  "auxiliaryVar3PML",
232  array1d< real32 >,
233  0,
234  NOPLOT,
235  NO_WRITE,
236  "PML scalar auxiliary variable 3." );
237 
238 DECLARE_FIELD( AuxiliaryVar4PML,
239  "auxiliaryVar4PML",
240  array1d< real32 >,
241  0,
242  NOPLOT,
243  WRITE_AND_READ,
244  "PML scalar auxiliary variable 4." );
245 
246 }
247 
248 }
249 
250 } /* namespace geos */
251 
252 #endif /* GEOS_PHYSICSSOLVERS_WAVEPROPAGATION__HPP_ACOUSTICFIELDS */
#define DECLARE_FIELD(NAME, KEY, TYPE, DEFAULT, PLOTLEVEL, RESTARTFLAG, DESCRIPTION)
Generates a traits struct.
Definition: MeshFields.hpp:39