GEOS
CompositionalMultiphaseWellFields.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 Total, S.A
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_FLUIDFLOW_WELLS_COMPOSITIONALMULTIPHASEWELLFIELDS_HPP_
21 #define GEOS_PHYSICSSOLVERS_FLUIDFLOW_WELLS_COMPOSITIONALMULTIPHASEWELLFIELDS_HPP_
22 
23 #include "common/DataLayouts.hpp"
24 #include "mesh/MeshFields.hpp"
25 
26 namespace geos
27 {
31 namespace fields
32 {
33 
34 namespace well
35 {
36 
37 using array2dLayoutFluid_dC = array2d< real64, compflow::LAYOUT_FLUID_DC >;
38 using array2dLayoutPhase = array2d< real64, compflow::LAYOUT_PHASE >;
39 using array3dLayoutPhase_dC = array3d< real64, compflow::LAYOUT_PHASE_DC >;
40 using array2dLayoutComp = array2d< real64, compflow::LAYOUT_COMP >;
41 using array3dLayoutComp_dC = array3d< real64, compflow::LAYOUT_COMP_DC >;
42 using array3dLayoutPhaseComp = array3d< real64, compflow::LAYOUT_PHASE_COMP >;
43 
44 
45 DECLARE_FIELD( globalCompDensity,
46  "globalCompDensity",
47  array2dLayoutComp,
48  0,
49  LEVEL_0,
50  WRITE_AND_READ,
51  "Global component density" );
52 
53 DECLARE_FIELD( globalCompDensity_n,
54  "globalCompDensity_n",
55  array2dLayoutComp,
56  0,
57  NOPLOT,
58  WRITE_AND_READ,
59  "Global component density at the previous converged time step" );
60 
61 DECLARE_FIELD( mixtureConnectionRate,
62  "wellElementMixtureConnectionRate",
63  array1d< real64 >,
64  0,
65  LEVEL_0,
66  WRITE_AND_READ,
67  "Mixture connection rate" );
68 
69 DECLARE_FIELD( mixtureConnectionRate_n,
70  "wellElementMixtureConnectionRate_n",
71  array1d< real64 >,
72  0,
73  NOPLOT,
74  WRITE_AND_READ,
75  "Mixture connection rate at the previous converged time step" );
76 
77 DECLARE_FIELD( globalCompFraction,
78  "globalCompFraction",
79  array2dLayoutComp,
80  0,
81  LEVEL_0,
82  WRITE_AND_READ,
83  "Global component fraction" );
84 
85 DECLARE_FIELD( dGlobalCompFraction_dGlobalCompDensity,
86  "dGlobalCompFraction_dGlobalCompDensity",
87  array3dLayoutComp_dC,
88  0,
89  NOPLOT,
90  NO_WRITE,
91  "Derivative of global component fraction with respect to component density" );
92 
93 DECLARE_FIELD( phaseVolumeFraction,
94  "phaseVolumeFraction",
95  array2dLayoutPhase,
96  0,
97  LEVEL_0,
98  WRITE_AND_READ,
99  "Phase volume fraction" );
100 
101 DECLARE_FIELD( dPhaseVolumeFraction,
102  "dPhaseVolumeFraction",
103  array3dLayoutPhase_dC,
104  0,
105  NOPLOT,
106  NO_WRITE,
107  "Derivative of phase volume fraction with respect to pressure, temperature, and global component density" );
108 
109 DECLARE_FIELD( phaseVolumeFraction_n,
110  "phaseVolumeFraction_n",
111  array2dLayoutPhase,
112  0,
113  NOPLOT,
114  WRITE_AND_READ,
115  "Phase volume fraction at the previous converged time step" );
116 
117 DECLARE_FIELD( totalMassDensity,
118  "totalMassDensity",
119  array1d< real64 >,
120  0,
121  LEVEL_0,
122  WRITE_AND_READ,
123  "Total mass density" );
124 
125 DECLARE_FIELD( dTotalMassDensity,
126  "dTotalMassDensity",
127  array2dLayoutFluid_dC,
128  0,
129  NOPLOT,
130  NO_WRITE,
131  "Derivative of total mass density with respect to pressure, temperature, and global component density" );
132 
133 
134 DECLARE_FIELD( compPerforationRate,
135  "compPerforationRate",
136  array2d< real64 >,
137  0,
138  LEVEL_0,
139  WRITE_AND_READ,
140  "Component perforation rate" );
141 
142 DECLARE_FIELD( dCompPerforationRate,
143  "dCompPerforationRate",
144  array4d< real64 >,
145  0,
146  NOPLOT,
147  NO_WRITE,
148  "Derivative of component perforation rate with respect to pressure temperature and global component density" );
149 
150 
151 
152 DECLARE_FIELD( globalCompDensityScalingFactor,
153  "globalCompDensityScalingFactor",
154  array1d< real64 >,
155  1,
156  NOPLOT,
157  NO_WRITE,
158  "Scaling factors for global component densities" );
159 
160 
161 }
162 
163 }
164 
165 }
166 
167 #endif // GEOS_PHYSICSSOLVERS_FLUIDFLOW_WELLS_COMPOSITIONALMULTIPHASEWELLFIELDS_HPP_
#define DECLARE_FIELD(NAME, KEY, TYPE, DEFAULT, PLOTLEVEL, RESTARTFLAG, DESCRIPTION)
Generates a traits struct.
Definition: MeshFields.hpp:39