Skip to content

Commit 78b5427

Browse files
committed
test(well): check well intersection feature for InternalWell andVtkmesh
1 parent da7a416 commit 78b5427

File tree

8 files changed

+467
-0
lines changed

8 files changed

+467
-0
lines changed
2.21 MB
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#!/bin/sh
2+
3+
#SBATCH --job-name="geos"
4+
#SBATCH --ntasks=8
5+
#SBATCH --nodes=1
6+
#SBATCH --time=3:00:00
7+
#SBATCH --partition=p4_general
8+
##SBATCH --exclusive
9+
#SBATCH --output=job_GEOS_P4_%j.out
10+
#SBATCH --error=job_GEOS_P4_%j.err
11+
##SBATCH --mem=734GB
12+
13+
# do not change
14+
ulimit -s unlimited
15+
ulimit -c unlimited
16+
17+
# loading of the module
18+
module purge
19+
module use /workrd/SCR/NUM/GEOS_environment/p4/modulefiles/app
20+
module load geos/develop_3bf12d2/pangea4-gcc12.1-hpcxompi2.17.1-onemkl2023.2.0-Release-2024-06-20-10-05
21+
22+
export HDF5_USE_FILE_LOCKING=FALSE
23+
export OMP_NUM_THREADS=1
24+
25+
#----- Set standard Output and standrard error base file name. -----
26+
OUT_NAME=job_GEOS_P4_${SLURM_JOBID}
27+
28+
srun --mpi=pmix_v3 --hint=nomultithread \
29+
-n ${SLURM_NTASKS} geos \
30+
-o modelA \
31+
-i simulationA.xml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
FlashModel CO2Solubility 1e5 1.5e8 5e4 283.15 383.15 1 0
+360
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,360 @@
1+
<?xml version="1.0" ?>
2+
<?xml-model href="schema.xsd" ?>
3+
4+
<Problem>
5+
<Solvers>
6+
<CompositionalMultiphaseReservoir
7+
name="coupledFlowAndWells"
8+
flowSolverName="compositionalMultiphaseFlow"
9+
wellSolverName="compositionalMultiphaseWell"
10+
logLevel="1"
11+
initialDt="1e2"
12+
targetRegions="{ Reservoir, Caprock, Overburden, Underburden, Salt, wellRegion1, wellRegion2 }">
13+
<NonlinearSolverParameters
14+
newtonTol="1.0e-3"
15+
lineSearchAction="Attempt"
16+
maxTimeStepCuts="10"
17+
newtonMaxIter="20"/>
18+
<LinearSolverParameters
19+
solverType="fgmres"
20+
preconditionerType="mgr"
21+
krylovTol="1e-6"
22+
krylovAdaptiveTol="1"
23+
krylovWeakestTol="1e-2"/>
24+
</CompositionalMultiphaseReservoir>
25+
26+
<CompositionalMultiphaseFVM
27+
name="compositionalMultiphaseFlow"
28+
targetRegions="{ Reservoir, Caprock, Overburden, Underburden, Salt }"
29+
discretization="fluidTPFA"
30+
temperature="368.15"
31+
targetPhaseVolFractionChangeInTimeStep="0.07"
32+
maxCompFractionChange="0.2"
33+
logLevel="1"
34+
useMass="1"/>
35+
36+
<CompositionalMultiphaseWell
37+
name="compositionalMultiphaseWell"
38+
targetRegions="{ wellRegion1, wellRegion2 }"
39+
logLevel="1"
40+
useMass="1">
41+
<WellControls
42+
name="wellControls1"
43+
logLevel="1"
44+
type="injector"
45+
control="totalVolRate"
46+
referenceElevation="395.646"
47+
targetBHP="1e8"
48+
enableCrossflow="0"
49+
targetTotalRateTableName="totalRateTable"
50+
injectionTemperature="368.15"
51+
injectionStream="{ 0.995, 0.005 }"/>
52+
<WellControls
53+
name="wellControls2"
54+
logLevel="1"
55+
type="injector"
56+
control="totalVolRate"
57+
referenceElevation="395.646"
58+
targetBHP="1e8"
59+
enableCrossflow="0"
60+
targetTotalRateTableName="totalRateTable"
61+
injectionTemperature="368.15"
62+
injectionStream="{ 0.995, 0.005 }"/>
63+
</CompositionalMultiphaseWell>
64+
</Solvers>
65+
66+
<Mesh>
67+
<VTKMesh
68+
name="SyntheticMesh"
69+
file="ModelA.vtu"
70+
logLevel="1" >
71+
72+
<!-- Block to comment to deactivate external well definition -->
73+
<VTKWell
74+
name="well_1"
75+
file="well_1.vtk"
76+
wellRegionName="wellRegion1"
77+
wellControlsName="wellControls1"
78+
radius="0.050"
79+
numElementsPerSegment="1">
80+
<Perforation
81+
name="well_1_perf_0"
82+
distanceFromHead="415.646"/>
83+
<Perforation
84+
name="well_1_perf_1"
85+
distanceFromHead="495.646"/>
86+
<Perforation
87+
name="well_1_perf_2"
88+
distanceFromHead="745.646"/>
89+
</VTKWell>
90+
<!-- End Block to comment to deactivate external well definition -->
91+
92+
<!-- Block to comment to deactivate internal well definition -->
93+
<InternalWell
94+
name="well_2"
95+
logLevel="2"
96+
wellRegionName="wellRegion2"
97+
wellControlsName="wellControls2"
98+
polylineNodeCoords="{ { 800, 1450, 395.646 },
99+
{ 800, 1450, -554.354 } }"
100+
polylineSegmentConn="{ { 0, 1 }}"
101+
radius="0.050"
102+
numElementsPerSegment="5">
103+
<Perforation
104+
name="well_3_perf_0"
105+
distanceFromHead="245.646"/>
106+
<Perforation
107+
name="well_3_perf_1"
108+
distanceFromHead="425.646"/>
109+
<Perforation
110+
name="well_3_perf_2"
111+
distanceFromHead="545.646"/>
112+
<Perforation
113+
name="well_3_perf_3"
114+
distanceFromHead="720.646"/>
115+
<Perforation
116+
name="well_3_perf_4"
117+
distanceFromHead="875.646"/>
118+
</InternalWell>
119+
<!-- End Block to comment to deactivate internal well definition -->
120+
</VTKMesh>
121+
</Mesh>
122+
123+
<!-- Block to comment to deactivate box definition -->
124+
<Geometry>
125+
<Box
126+
name="box_1"
127+
xMin="{ 1150, 700, 62 }"
128+
xMax="{ 1250, 800, 137 }"/>
129+
</Geometry>
130+
<!-- End Block to comment to deactivate box definition -->
131+
132+
<Events
133+
maxTime="5e8">
134+
<PeriodicEvent
135+
name="outputInjectionPeriod"
136+
timeFrequency="15768000"
137+
beginTime="0"
138+
endTime="1.6e8"
139+
target="/Outputs/vtkOutput"/>
140+
<PeriodicEvent
141+
name="outputPostInjectionPeriod"
142+
timeFrequency="31536000"
143+
beginTime="1.6e8"
144+
endTime="5e8"
145+
target="/Outputs/vtkOutput"/>
146+
147+
<PeriodicEvent
148+
name="statistics"
149+
timeFrequency="31536000"
150+
target="/Tasks/compflowStatistics"/>
151+
152+
<PeriodicEvent
153+
name="solverApplicationsInjectionPeriod"
154+
beginTime="0"
155+
endTime="1.6e8"
156+
maxEventDt="5e5"
157+
target="/Solvers/coupledFlowAndWells"/>
158+
<PeriodicEvent
159+
name="solverApplicationsPostInjectionPeriod1"
160+
beginTime="1.6e8"
161+
endTime="1.6001e8"
162+
maxEventDt="10000"
163+
target="/Solvers/coupledFlowAndWells"/>
164+
<PeriodicEvent
165+
name="solverApplicationsPostInjectionPeriod2"
166+
beginTime="1.6001e8"
167+
endTime="5e8"
168+
maxEventDt="5e6"
169+
target="/Solvers/coupledFlowAndWells"/>
170+
</Events>
171+
172+
<NumericalMethods>
173+
<FiniteVolume>
174+
<TwoPointFluxApproximation
175+
name="fluidTPFA"
176+
/>
177+
</FiniteVolume>
178+
</NumericalMethods>
179+
180+
<ElementRegions>
181+
182+
<CellElementRegion
183+
name="Reservoir"
184+
cellBlocks="{ 2_tetrahedra }"
185+
materialList="{ fluid, rock_reservoir, relperm }"/>
186+
187+
<CellElementRegion
188+
name="Caprock"
189+
cellBlocks="{ 4_tetrahedra}"
190+
materialList="{ fluid, rock_caprock, relperm }"/>
191+
192+
<CellElementRegion
193+
name="Overburden"
194+
cellBlocks="{ 3_tetrahedra }"
195+
materialList="{ fluid, rock_burden, relperm }"/>
196+
197+
<CellElementRegion
198+
name="Underburden"
199+
cellBlocks="{ 1_tetrahedra }"
200+
materialList="{ fluid, rock_burden, relperm }"/>
201+
202+
<CellElementRegion
203+
name="Salt"
204+
cellBlocks="{ 0_tetrahedra}"
205+
materialList="{ fluid, rock_salt, relperm }"/>
206+
207+
<WellElementRegion
208+
name="wellRegion1"
209+
materialList="{ fluid, relperm, rockPerm_burden }"/>
210+
<WellElementRegion
211+
name="wellRegion2"
212+
materialList="{ fluid, relperm, rockPerm_burden }" />
213+
214+
</ElementRegions>
215+
216+
<Constitutive>
217+
<CO2BrinePhillipsFluid
218+
name="fluid"
219+
phaseNames="{ gas, water }"
220+
componentNames="{ co2, water }"
221+
componentMolarWeight="{ 44e-3, 18e-3 }"
222+
phasePVTParaFiles="{ pvtgas.txt, pvtliquid.txt }"
223+
flashModelParaFile="co2flash.txt"/>
224+
225+
<CompressibleSolidConstantPermeability
226+
name="rock_burden"
227+
solidModelName="nullSolid"
228+
porosityModelName="rockPorosity_burden"
229+
permeabilityModelName="rockPerm_burden"/>
230+
231+
<CompressibleSolidConstantPermeability
232+
name="rock_salt"
233+
solidModelName="nullSolid"
234+
porosityModelName="rockPorosity_salt"
235+
permeabilityModelName="rockPerm_salt"/>
236+
237+
<CompressibleSolidConstantPermeability
238+
name="rock_reservoir"
239+
solidModelName="nullSolid"
240+
porosityModelName="rockPorosity_reservoir"
241+
permeabilityModelName="rockPerm_reservoir"/>
242+
243+
<CompressibleSolidConstantPermeability
244+
name="rock_caprock"
245+
solidModelName="nullSolid"
246+
porosityModelName="rockPorosity_caprock"
247+
permeabilityModelName="rockPerm_caprock"/>
248+
249+
<NullModel
250+
name="nullSolid"/>
251+
252+
<PressurePorosity
253+
name="rockPorosity_burden"
254+
defaultReferencePorosity="0.2"
255+
referencePressure="1.0e7"
256+
compressibility="4.5e-10"/>
257+
258+
<PressurePorosity
259+
name="rockPorosity_salt"
260+
defaultReferencePorosity="0.1"
261+
referencePressure="1.0e7"
262+
compressibility="4.5e-10"/>
263+
264+
<PressurePorosity
265+
name="rockPorosity_reservoir"
266+
defaultReferencePorosity="0.25"
267+
referencePressure="1.0e7"
268+
compressibility="4.5e-10"/>
269+
270+
<PressurePorosity
271+
name="rockPorosity_caprock"
272+
defaultReferencePorosity="0.15"
273+
referencePressure="1.0e7"
274+
compressibility="4.5e-10"/>
275+
276+
<BrooksCoreyRelativePermeability
277+
name="relperm"
278+
phaseNames="{ gas, water }"
279+
phaseMinVolumeFraction="{ 0.05, 0.30 }"
280+
phaseRelPermExponent="{ 2.0, 2.0 }"
281+
phaseRelPermMaxValue="{ 1.0, 1.0 }"/>
282+
283+
<ConstantPermeability
284+
name="rockPerm_burden"
285+
permeabilityComponents="{ 1.0e-14, 1.0e-14, 1.0e-14 }"/>
286+
287+
<ConstantPermeability
288+
name="rockPerm_salt"
289+
permeabilityComponents="{ 1.0e-18, 1.0e-18, 1.0e-18 }"/>
290+
291+
<ConstantPermeability
292+
name="rockPerm_reservoir"
293+
permeabilityComponents="{ 1.0e-11, 1.0e-11, 1.0e-11 }"/>
294+
295+
<ConstantPermeability
296+
name="rockPerm_caprock"
297+
permeabilityComponents="{ 1.0e-16, 1.0e-16, 1.0e-16 }"/>
298+
</Constitutive>
299+
300+
<FieldSpecifications>
301+
<FieldSpecification
302+
name="initialPressure"
303+
initialCondition="1"
304+
setNames="{ all }"
305+
objectPath="ElementRegions"
306+
fieldName="pressure"
307+
scale="1.25e7"/>
308+
309+
<FieldSpecification
310+
name="initialComposition_co2"
311+
initialCondition="1"
312+
setNames="{ all }"
313+
objectPath="ElementRegions"
314+
fieldName="globalCompFraction"
315+
component="0"
316+
scale="0.0"/>
317+
318+
<FieldSpecification
319+
name="initialComposition_water"
320+
initialCondition="1"
321+
setNames="{ all }"
322+
objectPath="ElementRegions"
323+
fieldName="globalCompFraction"
324+
component="1"
325+
scale="1.0"/>
326+
327+
<SourceFlux
328+
name="sourceFlux"
329+
objectPath="ElementRegions/Overburden"
330+
setNames="{ box_1 }"
331+
component="0"
332+
scale="-0.1"/>
333+
</FieldSpecifications>
334+
335+
<Outputs>
336+
<VTK
337+
name="vtkOutput"/>
338+
</Outputs>
339+
340+
<Tasks>
341+
342+
<CompositionalMultiphaseStatistics
343+
name="compflowStatistics"
344+
flowSolverName="compositionalMultiphaseFlow"
345+
logLevel="1"
346+
computeCFLNumbers="1"
347+
computeRegionStatistics="1"/>
348+
349+
</Tasks>
350+
351+
<Functions>
352+
<TableFunction
353+
name="totalRateTable"
354+
inputVarNames="{time}"
355+
interpolation="lower"
356+
coordinates="{ 0, 1.6e8, 5e8 }"
357+
values="{ 3e-2, 0, 0 }"/>
358+
</Functions>
359+
360+
</Problem>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
DensityFun SpanWagnerCO2Density 1e5 1.5e8 5e4 283.15 383.15 1
2+
ViscosityFun FenghourCO2Viscosity 1e5 1.5e8 5e4 283.15 383.15 1

0 commit comments

Comments
 (0)