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
Expand Up @@ -55,11 +55,11 @@

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

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

</Constitutive>

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,208 @@
<?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
newtonTol="1e-4"
lineSearchAction="None"
maxTimeStepCuts="4"
newtonMaxIter="20"/>
<LinearSolverParameters
solverType="gmres"
preconditionerType="mgr"/>
</SinglePhaseReservoirPoromechanics>

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

<SinglePhaseReservoir
name="reservoirSystem"
flowSolverName="singlePhaseFlow"
wellSolverName="singlePhaseWell"
logLevel="1"
targetRegions="{ Domain, wellRegion1, wellRegion2 }"/>

<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="2">
<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="2">
<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="1e5">

<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"
maxEventDt="500"
target="/Solvers/reservoirPoromechanics"/>

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

</Events>

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

</Tasks>

</Problem>
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
subcycling="1"
newtonTol="1e-4"
lineSearchAction="None"
newtonMaxIter="20"
maxAllowedResidualNorm="1e40"/>
maxTimeStepCuts="4"
newtonMaxIter="20"/>
</SinglePhaseReservoirPoromechanics>

<SolidMechanicsLagrangianFEM
Expand Down Expand Up @@ -121,7 +121,7 @@
{ 186.55914209, 261.233222046, 404.910875391 } }"
polylineSegmentConn="{ { 0, 1 } }"
radius="0.11"
numElementsPerSegment="100">
numElementsPerSegment="2">
<Perforation
name="producer1_Stage1_perf1"
distanceFromHead="304.5"
Expand All @@ -137,7 +137,7 @@
{ 186.90553262, 251.16100728, 302.01191758 } }"
polylineSegmentConn="{ { 0, 1 } }"
radius="0.11"
numElementsPerSegment="100">
numElementsPerSegment="2">
<Perforation
name="injector1_Stage3_perf1"
distanceFromHead="269.6"
Expand All @@ -161,7 +161,7 @@

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

<PeriodicEvent
name="outputs1"
Expand Down Expand Up @@ -198,14 +198,7 @@
<PeriodicEvent
name="solverApplications1"
beginTime="10000.0"
endTime="1e5"
maxEventDt="1000.0"
target="/Solvers/reservoirPoromechanics"/>

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

<PeriodicEvent
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
#include "linearAlgebra/interfaces/hypre/mgrStrategies/ThermalCompositionalMultiphaseFVM.hpp"
#include "linearAlgebra/interfaces/hypre/mgrStrategies/ThermalCompositionalMultiphaseReservoirFVM.hpp"
#include "linearAlgebra/interfaces/hypre/mgrStrategies/ThermalSinglePhasePoromechanics.hpp"
#include "linearAlgebra/interfaces/hypre/mgrStrategies/ThermalSinglePhasePoromechanicsReservoirFVM.hpp"
#include "linearAlgebra/interfaces/hypre/mgrStrategies/ThermalSinglePhaseReservoirFVM.hpp"
#include "linearAlgebra/interfaces/hypre/mgrStrategies/ThermalMultiphasePoromechanics.hpp"
#include "linearAlgebra/interfaces/hypre/mgrStrategies/SolidMechanicsEmbeddedFractures.hpp"
Expand Down Expand Up @@ -192,6 +193,11 @@ void hypre::mgr::createMGR( LinearSolverParameters const & params,
setStrategy< SinglePhasePoromechanicsReservoirFVM >( params.mgr, numComponentsPerField, precond, mgrData );
break;
}
case LinearSolverParameters::MGR::StrategyType::thermalSinglePhasePoromechanicsReservoirFVM:
{
setStrategy< ThermalSinglePhasePoromechanicsReservoirFVM >( params.mgr, numComponentsPerField, precond, mgrData );
break;
}
case LinearSolverParameters::MGR::StrategyType::singlePhaseReservoirFVM:
{
setStrategy< SinglePhaseReservoirFVM >( params.mgr, numComponentsPerField, precond, mgrData );
Expand Down
Loading
Loading