Skip to content

Commit

Permalink
add verification kgd cases considering leakoff
Browse files Browse the repository at this point in the history
  • Loading branch information
Guotong-Ren committed Aug 15, 2024
1 parent c29c4ec commit 0a6227a
Show file tree
Hide file tree
Showing 4 changed files with 756 additions and 0 deletions.
246 changes: 246 additions & 0 deletions inputFiles/hydraulicFracturing/kgdToughness_Leakoff_Dominated_base.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,246 @@
<?xml version="1.0" ?>

<Problem>
<Solvers
gravityVector="{ 0.0, 0.0, -0.0 }">
<Hydrofracture
name="hydrofracture"
solidSolverName="lagsolve"
flowSolverName="SinglePhaseFlow"
surfaceGeneratorName="SurfaceGen"
logLevel="1"
targetRegions="{ Domain, Fracture }"
isMatrixPoroelastic="0"
useQuasiNewton="1"
contactRelationName="fractureContact"
maxNumResolves="2">

<NonlinearSolverParameters
newtonTol="1.0e-6"
newtonMaxIter="20"
maxAllowedResidualNorm="1.0e30"
lineSearchAction="None"
lineSearchMaxCuts="3"/>

<LinearSolverParameters
solverType="gmres"
preconditionerType="mgr"/>
</Hydrofracture>

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

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

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

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

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

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

<SurfaceElementRegion
name="Fracture"
defaultAperture="0.02e-5"
materialList="{ water, rock, fractureFilling, fractureContact }"/>
</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"
grainBulkModulus="20e9"
defaultReferencePorosity="0.3"/>

<ConstantPermeability
name="rockPerm"
permeabilityComponents="{ 1.0e-18, 0.0e-18, 0.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"
penaltyStiffness="1.0e13"
apertureTableName="aperTable"/>
</Constitutive>

<FieldSpecifications>

<!--HydrostaticEquilibrium
name="equil"
objectPath="ElementRegions"
datumElevation="0.25"
datumPressure="0e6"
/-->

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

<FieldSpecification
name="initialPressure"
initialCondition="1"
setNames="{ all }"
objectPath="ElementRegions/Domain"
fieldName="pressure"
scale="0"/>

<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="{ xpos }"
/>

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

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

<Traction
name="x_tract_1"
objectPath="faceManager"
tractionType="normal"
scale="-6e6"
setNames="{ xneg }"/>

<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-6, 0.02e-5 }"/>
<TableFunction
name="timeFunction"
inputVarNames="{ time }"
coordinates="{-1e11, 0.0, 1.0, 10.0 }"
values="{ 0.0, 0.0, 1, 1 }"/>
</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>
</Problem>
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
<?xml version="1.0" ?>

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

<Mesh>
<!-- Sphinx_Mesh_InternalMesh -->
<InternalMesh
name="mesh1"
elementTypes="{C3D8}"
xCoords="{ -100, 0, 100 }"
yCoords="{ 0, 50 }"
zCoords="{ 0, 1 }"
nx="{ 100, 100 }"
ny="{ 100 }"
nz="{ 2 }"
xBias="{ 0.5, -0.5}"
cellBlockNames="{cb1}"/>
<!-- Sphinx_Mesh_InternalMesh_End -->
</Mesh>

<Geometry>

<!-- Sphinx_Geometry_InitFracture -->
<Box
name="fracture"
xMin="{ -0.01, -0.01, -0.01 }"
xMax="{ 0.01, 1.01, 1.01 }"/>
<!-- Sphinx_Geometry_InitFracture_End -->

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

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

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

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

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

<Events
maxTime="100.1">

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

<PeriodicEvent
name="outputs"
cycleFrequency="1"
targetExactTimestep="0"
target="/Outputs/vtkOutput"/>

<!-- <PeriodicEvent
name="timeHistoryCollection0"
beginTime="0"
timeFrequency="1"
targetExactTimestep="0"
target="/Tasks/pressureCollection" />
<PeriodicEvent
name="timeHistoryCollection1"
beginTime="0"
timeFrequency="1"
targetExactTimestep="0"
target="/Tasks/apertureCollection" />
<PeriodicEvent
name="timeHistoryCollection2"
beginTime="0.0"
timeFrequency="1"
targetExactTimestep="0"
target="/Tasks/hydraulicApertureCollection" />
<PeriodicEvent
name="timeHistoryCollection3"
beginTime="0.0"
timeFrequency="1"
targetExactTimestep="0"
target="/Tasks/areaCollection" />
<PeriodicEvent
name="timeHistoryOutput"
beginTime="0.0"
timeFrequency="1"
targetExactTimestep="0"
target="/Outputs/timeHistoryOutput"/> -->

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

<PeriodicEvent
name="solverApplications1"
beginTime="10.0"
endTime="20.0"
forceDt="0.5"
target="/Solvers/hydrofracture"/>

<PeriodicEvent
name="solverApplications2"
beginTime="20.0"
forceDt="1.0"
target="/Solvers/hydrofracture"/>
</Events>
</Problem>
Loading

0 comments on commit 0a6227a

Please sign in to comment.