Skip to content

Commit

Permalink
test case
Browse files Browse the repository at this point in the history
  • Loading branch information
Pavel Tomin authored and Pavel Tomin committed Jan 31, 2025
1 parent 8c9b789 commit d684ffd
Show file tree
Hide file tree
Showing 2 changed files with 333 additions and 0 deletions.
255 changes: 255 additions & 0 deletions inputFiles/hydraulicFracturing/kgdToughnessDominatedReservoir_base.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,255 @@
<?xml version="1.0" ?>

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

<HydrofractureReservoir
name="reservoirSystem"
poromechanicsSolverName="hydrofracture"
wellSolverName="well"
logLevel="1"
targetRegions="{ Domain, Fracture, Well }">
<NonlinearSolverParameters
newtonTol="1.0e-5"
newtonMaxIter="20"
lineSearchMaxCuts="3"/>
<LinearSolverParameters
directParallel="0"/>
</HydrofractureReservoir>

<Hydrofracture
name="hydrofracture"
solidSolverName="lagsolve"
flowSolverName="SinglePhaseFlow"
surfaceGeneratorName="SurfaceGen"
logLevel="1"
targetRegions="{ Domain, Fracture }"
isMatrixPoroelastic="1"
maxNumResolves="2">
</Hydrofracture>

<SolidMechanicsLagrangianSSLE
name="lagsolve"
logLevel="1"
timeIntegrationOption="QuasiStatic"
discretization="FE1"
targetRegions="{ Domain, Fracture }"
contactRelationName="fractureContact"
contactPenaltyStiffness="1.0"/>

<SinglePhaseFVM
name="SinglePhaseFlow"
logLevel="1"
discretization="singlePhaseTPFA"
targetRegions="{ Domain, Fracture }"/>

<SinglePhaseWell
name="well"
logLevel="1"
targetRegions="{ Well }">
<WellControls
name="wellControls"
logLevel="2"
type="injector"
control="BHP"
referenceElevation="1"
targetBHP="10e7"
targetTotalRate="1e10" />
</SinglePhaseWell>

<SurfaceGenerator
name="SurfaceGen"
targetRegions="{ Domain }"
nodeBasedSIF="1"
initialRockToughness="1e6"
mpiCommOrder="1"/>
</Solvers>

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

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

<ElementRegions>
<CellElementRegion
name="Domain"
cellBlocks="{ * }"
materialList="{ water, porousRock }"/>

<WellElementRegion
name="Well"
materialList="{ water }"/>

<SurfaceElementRegion
name="Fracture"
defaultAperture="0.02e-3"
materialList="{ water, fractureFilling, fractureContact, hApertureModel }"/>
</ElementRegions>

<Constitutive>
<CompressibleSinglePhaseFluid
name="water"
defaultDensity="1000"
defaultViscosity="1.0e-6"
referencePressure="0.0"
compressibility="5e-10"
referenceViscosity="1.0e-6"
viscosibility="0.0"/>

<PorousElasticIsotropic
name="porousRock"
solidModelName="rock"
porosityModelName="rockPorosity"
permeabilityModelName="rockPerm"/>

<ElasticIsotropic
name="rock"
defaultDensity="2700"
defaultYoungModulus="30.0e9"
defaultPoissonRatio="0.25"/>

<BiotPorosity
name="rockPorosity"
defaultGrainBulkModulus="1.2e11"
defaultReferencePorosity="0.3"/>

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

<CompressibleSolidParallelPlatesPermeability
name="fractureFilling"
solidModelName="nullSolid"
porosityModelName="fracturePorosity"
permeabilityModelName="fracturePerm"/>

<NullModel
name="nullSolid"/>

<PressurePorosity
name="fracturePorosity"
defaultReferencePorosity="1.00"
referencePressure="0.0"
compressibility="0.0"/>

<ParallelPlatesPermeability
name="fracturePerm"/>

<FrictionlessContact
name="fractureContact"/>

<HydraulicApertureTable
name="hApertureModel"
apertureTableName="aperTable"/>
</Constitutive>

<FieldSpecifications>
<FieldSpecification
name="waterDensity"
initialCondition="1"
setNames="{ fracture }"
objectPath="ElementRegions"
fieldName="water_density"
scale="1000"/>

<FieldSpecification
name="separableFace"
initialCondition="1"
setNames="{ core }"
objectPath="faceManager"
fieldName="isFaceSeparable"
scale="1"/>

<FieldSpecification
name="frac"
initialCondition="1"
setNames="{ fracture }"
objectPath="faceManager"
fieldName="ruptureState"
scale="1"/>

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

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

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

<SourceFlux
name="sourceTerm"
objectPath="ElementRegions/Fracture"
scale="-5e-2"
setNames="{ source }"/>
</FieldSpecifications>

<Functions>
<TableFunction
name="aperTable"
coordinates="{ -1.0e-3, 0.0 }"
values="{ 0.002e-3, 0.02e-3 }"/>
</Functions>

<Tasks>
<PackCollection
name="pressureCollection"
objectPath="ElementRegions/Fracture/FractureSubRegion"
fieldName="pressure"/>

<PackCollection
name="apertureCollection"
objectPath="ElementRegions/Fracture/FractureSubRegion"
fieldName="elementAperture"/>

<PackCollection
name="hydraulicApertureCollection"
objectPath="ElementRegions/Fracture/FractureSubRegion"
fieldName="hydraulicAperture"/>

<PackCollection
name="areaCollection"
objectPath="ElementRegions/Fracture/FractureSubRegion"
fieldName="elementArea"/>
</Tasks>

<Outputs>
<VTK
name="vtkOutput"
plotFileRoot="zeroViscosity_poroelastic"
plotLevel="3"
parallelThreads="48"/>

<TimeHistory
name="timeHistoryOutput"
sources="{/Tasks/pressureCollection, /Tasks/apertureCollection, /Tasks/hydraulicApertureCollection, /Tasks/areaCollection}"
filename="kgdToughnessDominated_output" />

<Restart
name="restartOutput"/>
</Outputs>
</Problem>
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<?xml version="1.0" ?>

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

<Mesh>
<InternalMesh
name="mesh1"
elementTypes="{C3D8}"
xCoords="{ -100, 0, 100 }"
yCoords="{ 0, 50 }"
zCoords="{ 0, 1 }"
nx="{ 3, 3 }"
ny="{ 5 }"
nz="{ 2 }"
xBias="{ 0.5, -0.5 }"
cellBlockNames="{cb1}">
<InternalWell
name="well_injector"
logLevel="1"
wellRegionName="Well"
wellControlsName="wellControls"
polylineNodeCoords="{ { 0, 25, 1 },
{ 0, 25, 0 } }"
polylineSegmentConn="{ { 0, 1 } }"
radius="0.1"
numElementsPerSegment="1">
<Perforation
name="injector_perf"
distanceFromHead="0.5"/>
</InternalWell>
</InternalMesh>
</Mesh>

<Geometry>
<Box
name="fracture"
xMin="{ -0.01, -0.01, -0.01 }"
xMax="{ 0.01, 10.01, 1.01 }"/>

<Box
name="source"
xMin="{ -0.01, -0.01, -0.01 }"
xMax="{ 0.01, 10.01, 1.01 }"/>

<Box
name="core"
xMin="{ -0.01, -0.01, -0.01 }"
xMax="{ 0.01, 50.01, 1.01 }"/>
</Geometry>

<!--
<SoloEvent
name="preFracture"
target="/Solvers/SurfaceGen"/>
-->

<Events
maxTime="100.0">


<PeriodicEvent
name="solverApplications0"
beginTime="0.0"
endTime="10.0"
forceDt="0.25"
target="/Solvers/reservoirSystem"/>

<PeriodicEvent
name="restarts"
timeFrequency="5.0"
targetExactTimestep="0"
target="/Outputs/restartOutput"/>
</Events>

</Problem>

0 comments on commit d684ffd

Please sign in to comment.