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 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_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 
62 
63 DECLARE_FIELD( globalCompFraction,
64  "globalCompFraction",
65  array2dLayoutComp,
66  0,
67  LEVEL_0,
68  WRITE_AND_READ,
69  "Global component fraction" );
70 
71 DECLARE_FIELD( dGlobalCompFraction_dGlobalCompDensity,
72  "dGlobalCompFraction_dGlobalCompDensity",
73  array3dLayoutComp_dC,
74  0,
75  NOPLOT,
76  NO_WRITE,
77  "Derivative of global component fraction with respect to component density" );
78 
79 DECLARE_FIELD( phaseVolumeFraction,
80  "phaseVolumeFraction",
81  array2dLayoutPhase,
82  0,
83  LEVEL_0,
84  WRITE_AND_READ,
85  "Phase volume fraction" );
86 
87 DECLARE_FIELD( dPhaseVolumeFraction,
88  "dPhaseVolumeFraction",
89  array3dLayoutPhase_dC,
90  0,
91  NOPLOT,
92  NO_WRITE,
93  "Derivative of phase volume fraction with respect to pressure, temperature, and global component density" );
94 
95 DECLARE_FIELD( phaseVolumeFraction_n,
96  "phaseVolumeFraction_n",
97  array2dLayoutPhase,
98  0,
99  NOPLOT,
100  WRITE_AND_READ,
101  "Phase volume fraction at the previous converged time step" );
102 
103 DECLARE_FIELD( totalMassDensity,
104  "totalMassDensity",
105  array1d< real64 >,
106  0,
107  LEVEL_0,
108  WRITE_AND_READ,
109  "Total mass density" );
110 
111 DECLARE_FIELD( dTotalMassDensity,
112  "dTotalMassDensity",
113  array2dLayoutFluid_dC,
114  0,
115  NOPLOT,
116  NO_WRITE,
117  "Derivative of total mass density with respect to pressure, temperature, and global component density" );
118 
119 
120 DECLARE_FIELD( compPerforationRate,
121  "compPerforationRate",
122  array2d< real64 >,
123  0,
124  LEVEL_0,
125  WRITE_AND_READ,
126  "Component perforation rate" );
127 
128 DECLARE_FIELD( dCompPerforationRate,
129  "dCompPerforationRate",
130  array4d< real64 >,
131  0,
132  NOPLOT,
133  NO_WRITE,
134  "Derivative of component perforation rate with respect to pressure temperature and global component density" );
135 
136 
137 
138 DECLARE_FIELD( globalCompDensityScalingFactor,
139  "globalCompDensityScalingFactor",
140  array1d< real64 >,
141  1,
142  NOPLOT,
143  NO_WRITE,
144  "Scaling factors for global component densities" );
145 
146 
147 }
148 
149 }
150 
151 }
152 
153 #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