Skip to content

Commit

Permalink
Augmented Lagrangian (stick mode) - InterfaceKernelBase - Bubble Func…
Browse files Browse the repository at this point in the history
…tions (#3130)
  • Loading branch information
matteofrigo5 authored Jun 19, 2024
1 parent 9134c42 commit 949a758
Show file tree
Hide file tree
Showing 27 changed files with 4,211 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .integrated_tests.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
baselines:
bucket: geosx
baseline: integratedTests/baseline_integratedTests-pr3160-5651-0cad939
baseline: integratedTests/baseline_integratedTests-pr3130-5671-b19ba86

allow_fail:
all: ''
Expand Down
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 #3130 (2024-06-19)
======================
New solver for contact mechanics based on the Augmented Lagrangian Method (ALM). New test case added.

PR #3160 (2024-06-18)
======================
Two experimental options for compositional flow solver. Rebaseline because of the new input flags.
Expand Down
112 changes: 112 additions & 0 deletions inputFiles/almContactMechanics/ALM_stickFault_base.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
<?xml version="1.0" ?>

<Problem>
<!-- SPHINX_SOLVER -->
<Solvers
gravityVector="{0.0, 0.0, 0.0}">
<SolidMechanicsAugmentedLagrangianContact
name="AugmentedLagrangian"
timeIntegrationOption="QuasiStatic"
logLevel="1"
discretization="FE1"
targetRegions="{ Region, Fracture }">
<NonlinearSolverParameters
newtonTol="1.0e-8"
logLevel="2"
newtonMaxIter="10"
maxNumConfigurationAttempts="10"
lineSearchAction="Require"
lineSearchMaxCuts="2"
maxTimeStepCuts="2"/>
<LinearSolverParameters
solverType="direct"
directParallel="0"
logLevel="0"/>
</SolidMechanicsAugmentedLagrangianContact>

<SurfaceGenerator
name="SurfaceGen"
logLevel="0"
fractureRegion="Fracture"
targetRegions="{ Region }"
rockToughness="1.0e6"
mpiCommOrder="1"/>
</Solvers>

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

<PeriodicEvent
name="solverApplications"
beginTime="0.0"
endTime="1.0"
forceDt="0.5"
target="/Solvers/AugmentedLagrangian"/>

<PeriodicEvent
name="restarts"
timeFrequency="0.5"
target="/Outputs/restartOutput"/>

<PeriodicEvent
name="outputs"
beginTime="0.0"
endTime="1.0"
forceDt="0.5"
target="/Outputs/vtkOutput"/>
</Events>

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

</NumericalMethods>

<ElementRegions>
<CellElementRegion
name="Region"
cellBlocks="{ cb1 }"
materialList="{ rock }"/>

<SurfaceElementRegion
name="Fracture"
faceBlock="faceElementSubRegion"
defaultAperture="0.0"
materialList="{ fractureMaterial, rock }"/>
</ElementRegions>

<!-- SPHINX_MATERIAL -->
<Constitutive>
<ElasticIsotropic
name="rock"
defaultDensity="2700"
defaultBulkModulus="2e10"
defaultShearModulus="9e9"/>

<Coulomb
name="fractureMaterial"
cohesion="0.0"
frictionCoefficient="0.1"
apertureTableName="apertureTable"/>
</Constitutive>

<Functions>
<TableFunction
name="apertureTable"
coordinates="{ -1.0e-3, 0.0 }"
values="{ 1.0e-6, 9.15e-6 }"/>

<TableFunction
name="dispFunction"
inputVarNames="{ time }"
coordinates="{ 0.0, 1.0 }"
values="{ 0.0, 1.0 }"/>
</Functions>

</Problem>
110 changes: 110 additions & 0 deletions inputFiles/almContactMechanics/ALM_stickFault_vertical_smoke.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
<?xml version="1.0" ?>

<Problem>

<Included>
<File name="./ALM_stickFault_base.xml"/>
</Included>

<Mesh>
<InternalMesh
name="mesh1"
elementTypes="{ C3D8 }"
xCoords="{ -100, 0, 100 }"
yCoords="{ -100, 100 }"
zCoords="{ 0, 200 }"
nx="{ 8, 8 }"
ny="{ 16 }"
nz="{ 16 }"
cellBlockNames="{ cb1 }"/>
</Mesh>

<Geometry>
<Rectangle
name="fracture"
normal="{1.0, 0.0, 0.0}"
origin="{0.0, 0.0, 0.0}"
lengthVector="{0.0, 1.0, 0.0}"
widthVector="{0.0, 0.0, 1.0}"
dimensions="{ 500, 200 }"/>

<Rectangle
name="core"
normal="{1.0, 0.0, 0.0}"
origin="{0.0, 0.0, 0.0}"
lengthVector="{0.0, 1.0, 0.0}"
widthVector="{0.0, 0.0, 1.0}"
dimensions="{ 180, 100 }"/>

</Geometry>

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

<FieldSpecification
name="separableFace"
initialCondition="1"
setNames="{ core }"
objectPath="faceManager"
fieldName="isFaceSeparable"
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="{ xneg }"/>

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

<FieldSpecification
name="xnormal"
objectPath="nodeManager"
fieldName="totalDisplacement"
component="0"
scale="-0.00001"
setNames="{ xpos }"
functionName="dispFunction"/>

<FieldSpecification
name="ytan"
objectPath="nodeManager"
fieldName="totalDisplacement"
component="1"
scale="-0.00001"
setNames="{ xpos }"
functionName="dispFunction"/>

</FieldSpecifications>

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

<Restart
name="restartOutput"/>
</Outputs>
</Problem>
20 changes: 20 additions & 0 deletions inputFiles/almContactMechanics/alm.ats
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import os
import geos_ats
from geos_ats.test_builder import TestDeck, RestartcheckParameters, generate_geos_tests

restartcheck_params = {}
restartcheck_params["atol"] = 2.0E-4
restartcheck_params["rtol"] = 1.0E-7

decks = [
TestDeck(
name="ALM_stickFault_vertical_smoke",
description=
"Cube with a vertical fracture (structured grid)",
partitions=((1, 1, 1), (2, 2, 2)),
restart_step=1,
check_step=2,
restartcheck_params=RestartcheckParameters(**restartcheck_params)),
]

generate_geos_tests(decks)
1 change: 1 addition & 0 deletions src/coreComponents/finiteElement/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ set( finiteElement_headers
elementFormulations/LagrangeBasis2.hpp
elementFormulations/LagrangeBasis3GL.hpp
elementFormulations/LagrangeBasis5GL.hpp
kernelInterface/InterfaceKernelBase.hpp
kernelInterface/ImplicitKernelBase.hpp
kernelInterface/KernelBase.hpp
kernelInterface/SparsityKernelBase.hpp
Expand Down
4 changes: 3 additions & 1 deletion src/coreComponents/finiteElement/FiniteElementDispatch.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,11 @@


#define FE_TYPES_2D \
finiteElement::H1_QuadrilateralFace_Lagrange1_GaussLegendre2 \
finiteElement::H1_QuadrilateralFace_Lagrange1_GaussLegendre2, \
finiteElement::H1_TriangleFace_Lagrange1_Gauss1

#define BASE_FE_TYPES_2D FE_TYPES_2D

namespace geos
{
namespace finiteElement
Expand Down
Loading

0 comments on commit 949a758

Please sign in to comment.