Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
<?xml version="1.0" ?>

<Problem>
<NumericalMethods>
<FiniteElements>
<FiniteElementSpace
name="FE1"
order="1"/>
</FiniteElements>

<FiniteVolume>
<TwoPointFluxApproximation
name="tpfaFlow"/>
</FiniteVolume>
</NumericalMethods>

<Constitutive>
<PorousElasticIsotropic
name="rock"
solidModelName="rockSolid"
porosityModelName="rockPorosity"
permeabilityModelName="rockPerm"
solidInternalEnergyModelName="rockInternalEnergy"/>

<ElasticIsotropic
name="rockSolid"
defaultDensity="2700"
defaultBulkModulus="38.1944444444e9"
defaultShearModulus="21.8253968254e9"
defaultDrainedLinearTEC="10e-7"/>

<BiotPorosity
name="rockPorosity"
defaultGrainBulkModulus="1e27"
defaultReferencePorosity="0.01"
defaultPorosityTEC="0.0"/>

<SolidInternalEnergy
name="rockInternalEnergy"
referenceVolumetricHeatCapacity="2.4e6"
referenceTemperature="0.0"
referenceInternalEnergy="0.0"/>

<ThermalCompressibleSinglePhaseFluid
name="water"
defaultDensity="1000"
defaultViscosity="1e-3"
referencePressure="0.0"
compressibility="5e-10"
referenceViscosity="1e-3"
thermalExpansionCoeff="0.0"
viscosibility="0.0"
specificHeatCapacity="4.2e3"
referenceInternalEnergy="0.001"/>

<ConstantPermeability
name="rockPerm"
permeabilityComponents="{ 50e-18, 50e-18, 50e-18 }"/>

<SinglePhaseThermalConductivity
name="thermalCond"
defaultThermalConductivityComponents="{ 4.0, 4.0, 4.0 }"/>

</Constitutive>

<FieldSpecifications>
<FieldSpecification
name="initialPressure"
initialCondition="1"
setNames="{ all }"
objectPath="ElementRegions/Domain"
fieldName="pressure"
functionName="PresFunction"
scale="1.0e6"/>

<FieldSpecification
name="initialTemperature"
initialCondition="1"
setNames="{ all }"
objectPath="ElementRegions/Domain"
fieldName="temperature"
functionName="TempFunction"
scale="1.0"/>

<FieldSpecification
name="effectiveSh"
initialCondition="1"
setNames="{ all }"
objectPath="ElementRegions/Domain"
fieldName="rockSolid_stress"
component="0"
scale="-1.8e7"/>
<FieldSpecification
name="effectiveSH"
initialCondition="1"
setNames="{ all }"
objectPath="ElementRegions/Domain"
fieldName="rockSolid_stress"
component="1"
scale="-2.4e7"/>
<FieldSpecification
name="effectiveSv"
initialCondition="1"
setNames="{ all }"
objectPath="ElementRegions/Domain"
fieldName="rockSolid_stress"
component="2"
scale="-3.8e7"/>

<FieldSpecification
name="xconstraint"
fieldName="totalDisplacement"
component="0"
objectPath="nodeManager"
setNames="{ xneg, xpos }"/>

<FieldSpecification
name="yconstraint"
fieldName="totalDisplacement"
component="1"
objectPath="nodeManager"
setNames="{ yneg, ypos }"/>

<FieldSpecification
name="zconstraint"
fieldName="totalDisplacement"
component="2"
objectPath="nodeManager"
setNames="{ zneg, zpos }"/>

</FieldSpecifications>

<Functions>
<TableFunction
name="injectorTotalRateTable"
inputVarNames="{ time }"
coordinates="{ -1e9, 0, 1.0, 1e9 }"
values="{ 0, 0, 1e-3, 1e-3 }"
interpolation="lower"/>

<TableFunction
name="producerTotalRateTable"
inputVarNames="{ time }"
coordinates="{ -1e9, 0, 1.0, 1e9 }"
values="{ 0, 0, 1e-7, 1e-7 }"
interpolation="lower"/>

<TableFunction
name="TempFunction"
inputVarNames="{ elementCenter }"
coordinateFiles="{ tempTable/xlin.geos, tempTable/ylin.geos, tempTable/zlin.geos }"
voxelFile="tempTable/temp.geos"/>

<TableFunction
name="PresFunction"
inputVarNames="{ elementCenter }"
coordinateFiles="{ pressureTable/xlin.geos, pressureTable/ylin.geos, pressureTable/zlin.geos }"
voxelFile="pressureTable/pres.geos"/>
</Functions>

<Outputs>
<VTK
name="vtkOutput"/>

<Restart
name="restartOutput"/>
</Outputs>

</Problem>
Original file line number Diff line number Diff line change
@@ -0,0 +1,226 @@
<?xml version="1.0" ?>

<Problem>
<Included>
<File name="./ReservoirThermoPoroElastic_Circulation_base.xml" />
</Included>

<Solvers
gravityVector="{ 0.0, 0.0, -9.81 }">

<SinglePhaseReservoirPoromechanics
name="reservoirPoromechanics"
solidSolverName="linearElasticity"
reservoirAndWellsSolverName="reservoirSystem"
logLevel="1"
isThermal="1"
targetRegions="{ Domain }">
<NonlinearSolverParameters
couplingType="Sequential"
subcycling="1"
newtonTol="1e-4"
lineSearchAction="None"
newtonMaxIter="20"
maxAllowedResidualNorm="1e40"/>
</SinglePhaseReservoirPoromechanics>

<SolidMechanicsLagrangianFEM
name="linearElasticity"
logLevel="1"
discretization="FE1"
targetRegions="{ Domain }">
<NonlinearSolverParameters
newtonMaxIter="100"
newtonMinIter="0"
newtonTol="1.0e-5"/>
<LinearSolverParameters
solverType="gmres"
preconditionerType="amg"
krylovTol="1e-5"/>
</SolidMechanicsLagrangianFEM>

<SinglePhaseReservoir
name="reservoirSystem"
flowSolverName="singlePhaseFlow"
wellSolverName="singlePhaseWell"
logLevel="1"
usePhysicsScaling="0"
targetRegions="{ Domain, wellRegion1, wellRegion2 }">
<NonlinearSolverParameters
newtonTol="1.0e-5"
lineSearchAction="None"
newtonMaxIter="40"
maxAllowedResidualNorm="1e40"/>
<LinearSolverParameters
solverType="gmres"
preconditionerType="mgr"
krylovTol="1e-5"/>
</SinglePhaseReservoir>

<SinglePhaseFVM
name="singlePhaseFlow"
logLevel="1"
isThermal="1"
discretization="tpfaFlow"
temperature="0.0"
targetRegions="{ Domain }"/>

<SinglePhaseWell
name="singlePhaseWell"
logLevel="1"
isThermal="1"
writeCSV="1"
targetRegions="{ wellRegion1, wellRegion2 }">
<WellControls
name="wellControls1"
logLevel="1"
type="producer"
control="totalVolRate"
enableCrossflow="0"
referenceElevation="360"
targetBHP="1e3"
targetTotalRateTableName="producerTotalRateTable"
useSurfaceConditions="1"
surfacePressure="101325"
surfaceTemperature="20"/>
<WellControls
name="wellControls2"
logLevel="1"
type="injector"
control="totalVolRate"
enableCrossflow="0"
referenceElevation="360"
targetBHP="5e7"
useSurfaceConditions="1"
surfacePressure="101325"
surfaceTemperature="20"
targetTotalRateTableName="injectorTotalRateTable"
injectionTemperature="20"
injectionStream="{1.0,0.0}"/>
</SinglePhaseWell>
</Solvers>

<Mesh>
<InternalMesh
name="mesh1"
elementTypes="{ C3D8 }"
xCoords="{ -600, 1400 }"
yCoords="{ -600, 1000 }"
zCoords="{ -400, 1200 }"
nx="{ 50 }"
ny="{ 40 }"
nz="{ 40 }"
cellBlockNames="{ cb1 }">

<InternalWell
name="well_producer"
logLevel="1"
wellRegionName="wellRegion1"
wellControlsName="wellControls1"
polylineNodeCoords="{ { -83.8583383789, 229.961401978, 541.520494531 },
{ 186.55914209, 261.233222046, 404.910875391 } }"
polylineSegmentConn="{ { 0, 1 } }"
radius="0.11"
numElementsPerSegment="100">
<Perforation
name="producer1_Stage1_perf1"
distanceFromHead="304.5"
skinFactor="1"/>
</InternalWell>

<InternalWell
name="well_injector"
logLevel="1"
wellRegionName="wellRegion2"
wellControlsName="wellControls2"
polylineNodeCoords="{ { -56.8357568359,232.733696166,418.955276953 },
{ 186.90553262, 251.16100728, 302.01191758 } }"
polylineSegmentConn="{ { 0, 1 } }"
radius="0.11"
numElementsPerSegment="100">
<Perforation
name="injector1_Stage3_perf1"
distanceFromHead="269.6"
skinFactor="10"/>
</InternalWell>
</InternalMesh>
</Mesh>

<ElementRegions>
<CellElementRegion
name="Domain"
cellBlocks="{ cb1 }"
materialList="{ rock, water, thermalCond }"/>
<WellElementRegion
name="wellRegion1"
materialList="{ water }"/>
<WellElementRegion
name="wellRegion2"
materialList="{ water }"/>
</ElementRegions>

<Events
minTime="-1e10"
maxTime="24e5">

<PeriodicEvent
name="outputs1"
endTime="10000.0"
timeFrequency="100"
target="/Outputs/vtkOutput"/>

<PeriodicEvent
name="outputs2"
beginTime="10000.0"
timeFrequency="1e4"
target="/Outputs/vtkOutput"/>

<SoloEvent
beginTime="-1e10"
name="singlephasePoromechanicsPreEquilibrationStep"
target="/Tasks/singlephasePoromechanicsPreEquilibrationStep"
targetTime="-1e10" />

<PeriodicEvent
name="solverApplications00"
beginTime="0.0"
endTime="1.0"
maxEventDt="1.0"
target="/Solvers/reservoirPoromechanics"/>

<PeriodicEvent
name="solverApplications0"
beginTime="1.0"
endTime="10000.0"
maxEventDt="100.0"
target="/Solvers/reservoirPoromechanics"/>

<PeriodicEvent
name="solverApplications1"
beginTime="10000.0"
endTime="1e5"
maxEventDt="1000.0"
target="/Solvers/reservoirPoromechanics"/>

<PeriodicEvent
name="solverApplications2"
beginTime="1e5"
maxEventDt="5000.0"
target="/Solvers/reservoirPoromechanics"/>

<PeriodicEvent
name="restarts"
cycleFrequency="100"
target="/Outputs/restartOutput"/>

</Events>

<Tasks>
<SinglePhaseReservoirPoromechanicsInitialization
logLevel="1"
name="singlephasePoromechanicsPreEquilibrationStep"
poromechanicsSolverName="reservoirPoromechanics" />

</Tasks>

</Problem>
Loading