Skip to content

Commit

Permalink
feat: Make the rock toughness scalable with the fracture size and tes…
Browse files Browse the repository at this point in the history
…t anisotropic toughness (#3310)

* make the toughness scalable with the fracture size

* allow to plot K_IC

* fixed xmls

* changed baseRockToughness to initialRockToughness and removed unnecessary lines for plots

* added an example for anisotropic toughness

* added an example with anisotropic size dependent toughness

* rebaseline.
  • Loading branch information
frankfeifan authored Jan 21, 2025
1 parent 18e0c4e commit 0ad432d
Show file tree
Hide file tree
Showing 75 changed files with 849 additions and 83 deletions.
3 changes: 2 additions & 1 deletion .integrated_tests.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
baselines:
bucket: geosx
baseline: integratedTests/baseline_integratedTests-pr3228-9676-61994fe
baseline: integratedTests/baseline_integratedTests-pr3310-9785-f7b5045

allow_fail:
all: ''
streak: ''
4 changes: 4 additions & 0 deletions BASELINE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ This file is designed to track changes to the integrated test baselines.
Any developer who updates the baseline ID in the .integrated_tests.yaml file is expected to create an entry in this file with the pull request number, date, and their justification for rebaselining.
These notes should be in reverse-chronological order, and use the following time format: (YYYY-MM-DD).

PR #3310 (2024-01-21)

Scalable rock toughness required new field.

PR #3228 (2024-01-15)
=====================
deltaVolume added in multiphase.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
<SurfaceGenerator
name="SurfaceGen"
targetRegions="{ Domain }"
rockToughness="1e6"
initialRockToughness="1e6"
nodeBasedSIF="1"
mpiCommOrder="1"/>
</Solvers>
Expand Down
2 changes: 1 addition & 1 deletion inputFiles/hydraulicFracturing/Sneddon_hydroFrac_base.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
name="SurfaceGen"
targetRegions="{ Domain }"
nodeBasedSIF="1"
rockToughness="10.0e6"
initialRockToughness="10.0e6"
mpiCommOrder="1"/>
<!-- SPHINX_SNEDDON_SOLVER_END -->
</Solvers>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
<SurfaceGenerator
name="SurfaceGen"
targetRegions="{ Domain }"
rockToughness="$K_upscaled$"
initialRockToughness="$K_upscaled$"
nodeBasedSIF="1"
mpiCommOrder="1"/>
</Solvers>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@
<SurfaceGenerator
name="SurfaceGen"
targetRegions="{ Domain }"
rockToughness="2.236068e6"
initialRockToughness="2.236068e6"
nodeBasedSIF="1"
mpiCommOrder="1"/>
</Solvers>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
<SurfaceGenerator
name="SurfaceGen"
targetRegions="{ Domain }"
rockToughness="1.0e6"/>
initialRockToughness="1.0e6"/>
</Solvers>

<Mesh>
Expand Down
2 changes: 1 addition & 1 deletion inputFiles/hydraulicFracturing/kgdEdgeBased_C3D6_base.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
<SurfaceGenerator
name="SurfaceGen"
targetRegions="{ Domain }"
rockToughness="0.707e7"
initialRockToughness="0.707e7"
mpiCommOrder="1"/>
</Solvers>
</Problem>
2 changes: 1 addition & 1 deletion inputFiles/hydraulicFracturing/kgdNodeBased_C3D6_base.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
<SurfaceGenerator
name="SurfaceGen"
targetRegions="{ Domain }"
rockToughness="0.707e7"
initialRockToughness="0.707e7"
nodeBasedSIF="1"
mpiCommOrder="1"/>
</Solvers>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
name="SurfaceGen"
targetRegions="{ Domain }"
nodeBasedSIF="1"
rockToughness="1e6"
initialRockToughness="1e6"
mpiCommOrder="1"/>
<!-- Sphinx_Solvers_SurfaceGenerator_End -->
</Solvers>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
name="SurfaceGen"
targetRegions="{ Domain }"
nodeBasedSIF="1"
rockToughness="1e6"
initialRockToughness="1e6"
mpiCommOrder="1"/>
</Solvers>

Expand Down
2 changes: 1 addition & 1 deletion inputFiles/hydraulicFracturing/kgdValidation_base.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
logLevel="1"
targetRegions="{ Domain }"
nodeBasedSIF="0"
rockToughness="1.2e6"
initialRockToughness="1.2e6"
mpiCommOrder="1"/>
<!-- SPHINX_SURFACEGENERATOR_END -->
</Solvers>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
name="SurfaceGen"
targetRegions="{ Domain }"
nodeBasedSIF="1"
rockToughness="1e4"
initialRockToughness="1e4"
mpiCommOrder="1"/>
<!-- Sphinx_Solvers_SurfaceGenerator_End -->

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
name="SurfaceGen"
targetRegions="{ Domain }"
nodeBasedSIF="1"
rockToughness="1e4"
initialRockToughness="1e4"
mpiCommOrder="1"
isPoroelastic="1"/>
</Solvers>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
<?xml version="1.0" ?>

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

<Solvers
gravityVector="{ 0.0, 0.0, -0.0 }">
<!-- SPHINX_HYDROFRACSOLVER -->
<Hydrofracture
name="hydrofracture"
solidSolverName="lagsolve"
flowSolverName="SinglePhaseFlow"
surfaceGeneratorName="SurfaceGen"
logLevel="1"
targetRegions="{ Fracture }"
maxNumResolves="5"
initialDt="0.1">
<NonlinearSolverParameters
newtonTol="1.0e-4"
newtonMaxIter="50"
logLevel="1"/>
<LinearSolverParameters
solverType="gmres"
preconditionerType="mgr"
logLevel="1"
krylovAdaptiveTol="1"/>
</Hydrofracture>
<!-- SPHINX_HYDROFRACSOLVER_END -->

<!-- SPHINX_MECHANICALSOLVER -->
<SolidMechanicsLagrangianSSLE
name="lagsolve"
timeIntegrationOption="QuasiStatic"
logLevel="1"
discretization="FE1"
targetRegions="{ Domain, Fracture }"
contactRelationName="fractureContact"
contactPenaltyStiffness="1.0e0">
<NonlinearSolverParameters
newtonTol="1.0e-6"/>
<LinearSolverParameters
solverType="gmres"
krylovTol="1.0e-10"/>
</SolidMechanicsLagrangianSSLE>
<!-- SPHINX_MECHANICALSOLVER_END -->

<!-- SPHINX_SINGLEPHASEFVM -->
<SinglePhaseFVM
name="SinglePhaseFlow"
logLevel="1"
discretization="singlePhaseTPFA"
targetRegions="{ Fracture }">
<NonlinearSolverParameters
newtonTol="1.0e-5"
newtonMaxIter="10"/>
<LinearSolverParameters
solverType="gmres"
krylovTol="1.0e-12"/>
</SinglePhaseFVM>
<!-- SPHINX_SINGLEPHASEFVM_END -->

<!-- SPHINX_SURFACEGENERATOR -->
<SurfaceGenerator
name="SurfaceGen"
targetRegions="{ Domain }"
nodeBasedSIF="1"
initialRockToughness="-1.0"
toughnessScalingFactor="1"
fractureOrigin="{0.0, 0.0, 0.0}"
mpiCommOrder="1"/>
<!-- SPHINX_SURFACEGENERATOR_END -->
</Solvers>

<!-- SPHINX_MESH -->
<Mesh>
<InternalMesh
name="mesh1"
elementTypes="{ C3D8 }"
xCoords="{ 0, 100, 200, 400 }"
yCoords="{ 0, 100, 200, 400 }"
zCoords="{ -400, -100, -20, 20, 100, 400 }"
nx="{ 50, 10, 20 }"
ny="{ 50, 10, 20 }"
nz="{ 10, 10, 20, 10, 10 }"
cellBlockNames="{ cb1 }"/>
</Mesh>
<!-- SPHINX_MESH_END -->

<Geometry>
<!-- SPHINX_INITIALFRAC -->
<Box
name="fracture"
xMin="{ -4.1, -4.1, -0.1 }"
xMax="{ 4.1, 4.1, 0.1 }"/>
<!-- SPHINX_INITIALFRAC_END -->

<!-- SPHINX_INJSOURCE -->
<Box
name="source"
xMin="{ -2.1, -2.1, -0.1 }"
xMax="{ 2.1, 2.1, 0.1 }"/>
<!-- SPHINX_INJSOURCE_END -->

<!-- SPHINX_FRACPLANE -->
<Box
name="core"
xMin="{ -500.1, -500.1, -0.1 }"
xMax="{ 500.1, 500.1, 0.1 }"/>
<!-- SPHINX_FRACPLANE_END -->
</Geometry>

<Events
maxTime="400.1">
<SoloEvent
name="preFracture"
target="/Solvers/SurfaceGen"/>

<PeriodicEvent
name="outputs"
timeFrequency="2.0"
targetExactTimestep="0"
target="/Outputs/vtkOutput"/>

<PeriodicEvent
name="solverApplications1"
beginTime="0.0"
endTime="1.0"
forceDt="0.2000000000001"
target="/Solvers/hydrofracture"/>

<PeriodicEvent
name="solverApplications2"
beginTime="1.0"
endTime="3.0"
forceDt="0.5"
target="/Solvers/hydrofracture"/>

<PeriodicEvent
name="solverApplications3"
beginTime="3.0"
endTime="8.0"
forceDt="1.0"
target="/Solvers/hydrofracture"/>

<PeriodicEvent
name="solverApplications4"
beginTime="8.0"
endTime="20.0"
forceDt="2.0"
target="/Solvers/hydrofracture"/>

<PeriodicEvent
name="solverApplications5"
beginTime="20.0"
endTime="60.0"
forceDt="4.0"
target="/Solvers/hydrofracture"/>

<PeriodicEvent
name="solverApplications6"
beginTime="60.0"
endTime="100.0"
forceDt="8.0"
target="/Solvers/hydrofracture"/>

<PeriodicEvent
name="solverApplications7"
beginTime="100.0"
endTime="200.0"
forceDt="10.0"
target="/Solvers/hydrofracture"/>

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

0 comments on commit 0ad432d

Please sign in to comment.