Skip to content

Commit

Permalink
Refactoring complete. Both SpringSliders work. Working on coupled sol…
Browse files Browse the repository at this point in the history
…ver now.
  • Loading branch information
CusiniM committed Dec 11, 2024
1 parent a164a18 commit 10f96bb
Show file tree
Hide file tree
Showing 20 changed files with 916 additions and 515 deletions.
251 changes: 251 additions & 0 deletions inputFiles/inducedSeismicity/SCEC_BP7_QD_base.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,251 @@
<?xml version="1.0" ?>
<Problem>
<Solvers
gravityVector="{0.0, 0.0, 0.0}">
<!-- <ImplicitQuasiDynamicEQ
name="QDSolver"
targetRegions="{ Domain, Fault }"
shearImpedance="4.6247113164e6"
initialDt="1000"
logLevel="1"
discretization="FE1"
stressSolverName="stressSolver"
targetSlipIncrement="1.0e-6">
<NonlinearSolverParameters
newtonTol="1.0e-8"
logLevel="2"
newtonMaxIter="20"
maxNumConfigurationAttempts="1"
lineSearchAction="Require"
lineSearchMaxCuts="2"
maxTimeStepCuts="1"/>
</QuasiDynamicEQ> -->

<SolidMechanicsLagrangeContactBubbleStab
name="stressSolver"
timeIntegrationOption="QuasiStatic"
logLevel="2"
writeLinearSystem="0"
discretization="FE1"
targetRegions="{ Domain, Fault }">
<NonlinearSolverParameters
newtonTol="1.0e-8"
logLevel="2"
newtonMaxIter="10"
maxNumConfigurationAttempts="1"
lineSearchAction="Require"
lineSearchMaxCuts="2"
maxTimeStepCuts="1"/>
<LinearSolverParameters
solverType="direct"
directParallel="0"
logLevel="0"/>
</SolidMechanicsLagrangeContactBubbleStab>

<SurfaceGenerator
name="SurfaceGen"
targetRegions="{ Domain }"
rockToughness="1.0"
mpiCommOrder="1"
fractureRegion="Fault"/>
</Solvers>

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

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

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

<SurfaceElementRegion
name="Fault"
materialList="{frictionLaw}"
defaultAperture="1e-3"/>
</ElementRegions>

<Constitutive>

<ElasticIsotropic
name="rock"
defaultDensity="2670"
defaultBulkModulus="50.0e9"
defaultShearModulus="32.04e9"/>

<RateAndStateFriction
name="frictionLaw"
defaultA="0.007"
defaultB="0.005"
defaultDc="4.0e-3"
defaultReferenceVelocity="1.0e-6"
defaultReferenceFrictionCoefficient="0.6"/>
</Constitutive>

<Geometry>
<Box
name="faultPlane"
xMin="{ -400.01, -0.01, -400.01 }"
xMax="{ 400.01, 0.01, 400.01 }"/>

<!-- <Box
name="slipWeakeningRegion"
xMin="{ -200.01, -500.01, -200.01 }"
xMax="{ 200.01, 500.01, 200.01 }"/> -->

<Cylinder
name="slipWeakeningRegion"
firstFaceCenter="{ 0.0, -500.01, 0.0 }"
secondFaceCenter="{ 0.0, 500.01, 0.0 }"
outerRadius="200"/>
</Geometry>

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

<SurfaceElementRegion
name="Fault"
materialList="{frictionLaw}"
defaultAperture="1e-3"/>
</ElementRegions>

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

<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="{ ypos, yneg }"/>

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

<FieldSpecification
name="slipWeakeningRSA"
objectPath="ElementRegions/Fault"
fieldName="frictionLaw_a"
scale="1.0"
setNames="{ slipWeakeningRegion }"
initialCondition="1"/>

<!-- <FieldSpecification
name="initialStateVariable"
objectPath="ElementRegions/Fault"
fieldName="stateVariable"
scale="0.68070857"
setNames="{ all }"
initialCondition="1"/>
<FieldSpecification
name="slipVelocity1"
fieldName="slipVelocity"
initialCondition="1"
objectPath="ElementRegions/Fault/FractureSubRegion"
component="0"
scale="0."
setNames="{all}"/>
<FieldSpecification
name="slipVelocity2"
fieldName="slipVelocity"
initialCondition="1"
objectPath="ElementRegions/Fault/FractureSubRegion"
component="1"
scale="0."
setNames="{all}"/> -->
</FieldSpecifications>

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

<!-- <TimeHistory
name="timeHistoryOutput"
sources="{/Tasks/slipRateCollection, /Tasks/pressureCollection}"
filename="BP7_DQ_S" /> -->
</Outputs>

<!-- <Tasks>
<PackCollection
name="slipRateCollection"
objectPath="ElementRegions/Fault/FractureSubRegion"
fieldName="slipRate"
setNames="{source}"/>
<PackCollection
name="pressureCollection"
objectPath="ElementRegions/Fault/FractureSubRegion"
fieldName="pressure"
setNames="{source}"/>
</Tasks> -->

<Events
maxTime="4.5e4"
maxCycle="1">

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

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

<PeriodicEvent
name="solverApplications"
maxEventDt="1e4"
target="/Solvers/stressSolver"/>

<!-- <PeriodicEvent
name="resarts"
timeFrequency="2e4"
targetExactTimestep="0"
target="/Outputs/restart"/> -->
</Events>
</Problem>
6 changes: 3 additions & 3 deletions inputFiles/inducedSeismicity/SpringSliderExplicit_base.xml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
<?xml version="1.0" ?>
<Problem>
<Solvers>
<QuasiDynamicEQRK32
<ExplicitSpringSlider
name="SpringSlider"
targetRegions="{ Fault }"
shearImpedance="4.41"
initialDt="1e-5"
logLevel="1"
discretization="FE1">
</QuasiDynamicEQRK32>
</ExplicitSpringSlider>

<SurfaceGenerator
name="SurfaceGen"
Expand Down Expand Up @@ -145,7 +145,7 @@
<TimeHistory
name="timeHistoryOutput"
sources="{/Tasks/slipCollection,/Tasks/slipRateCollection,/Tasks/stateVariableCollection}"
filename="springSliderExplicit"/>
filename="springSlider"/>
</Outputs>

<Tasks>
Expand Down
26 changes: 26 additions & 0 deletions inputFiles/inducedSeismicity/SpringSliderExplicit_smoke.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,32 @@
maxEventDt="1e4"
target="/Solvers/SpringSlider"/>

<!-- Time history collection -->
<PeriodicEvent
name="slipRateCollection"
cycleFrequency="1"
targetExactTimestep="0"
target="/Tasks/slipRateCollection"/>

<PeriodicEvent
name="slipCollection"
cycleFrequency="1"
targetExactTimestep="0"
target="/Tasks/slipCollection"/>

<PeriodicEvent
name="stateVariableCollection"
cycleFrequency="1"
targetExactTimestep="0"
target="/Tasks/stateVariableCollection"/>

<!-- Time history output -->
<PeriodicEvent
name="timeHistoryOutput"
cycleFrequency="100"
targetExactTimestep="0"
target="/Outputs/timeHistoryOutput"/>

<PeriodicEvent
name="resarts"
timeFrequency="2e4"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,15 @@ RateAndStateFriction::RateAndStateFriction( string const & name, Group * const p
FrictionBase( name, parent )
{
registerWrapper( viewKeyStruct::aCoefficientString(), &m_a ).
setPlotLevel( PlotLevel::LEVEL_0 ).
setDescription( "Rate- and State-dependent friction coefficient a." );

registerWrapper( viewKeyStruct::bCoefficientString(), &m_b ).
setPlotLevel( PlotLevel::LEVEL_0 ).
setDescription( "Rate- and State-dependent friction coefficient b." );

registerWrapper( viewKeyStruct::DcCoefficientString(), &m_Dc ).
setPlotLevel( PlotLevel::LEVEL_0 ).
setDescription( "Rate- and State-dependent friction characteristic length." );

registerWrapper( viewKeyStruct::referenceVelocityString(), &m_V0 ).
Expand Down
10 changes: 9 additions & 1 deletion src/coreComponents/physicsSolvers/contact/ContactFields.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ DECLARE_FIELD( dispJump,
"Displacement jump vector in the local reference system" );

DECLARE_FIELD( dispJump_n,
"displacementJump",
"displacementJum_n",
array2d< real64 >,
0,
NOPLOT,
Expand All @@ -98,6 +98,14 @@ DECLARE_FIELD( deltaSlip,
WRITE_AND_READ,
"Slip increment" );

DECLARE_FIELD( deltaSlip_n,
"deltaSlip_n",
array2d< real64 >,
0.0,
NOPLOT,
WRITE_AND_READ,
"Initial slip increment at this time step" );

DECLARE_FIELD( deltaDispJump,
"deltaDisplacementJump",
array2d< real64 >,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
# Specify solver headers
set( physicsSolvers_headers
${physicsSolvers_headers}
inducedSeismicity/ExplicitQDRateAndState.hpp
inducedSeismicity/ImplicitQDRateAndState.hpp
inducedSeismicity/inducedSeismicityFields.hpp
inducedSeismicity/QuasiDynamicEarthQuake.hpp
inducedSeismicity/rateAndStateFields.hpp
inducedSeismicity/QuasiDynamicEQ.hpp
inducedSeismicity/ImplicitQDRateAndState.hpp
inducedSeismicity/QuasiDynamicEQRK32.hpp
inducedSeismicity/SeismicityRate.hpp
inducedSeismicity/SpringSlider.hpp
inducedSeismicity/kernels/RateAndStateKernels.hpp
inducedSeismicity/kernels/ExplicitRateAndStateKernels.hpp
inducedSeismicity/kernels/ImplicitRateAndStateKernels.hpp
inducedSeismicity/kernels/RateAndStateKernelsBase.hpp
inducedSeismicity/kernels/SeismicityRateKernels.hpp
inducedSeismicity/tractionUpdateWrapper/FaultTractionUpdate.hpp
inducedSeismicity/tractionUpdateWrapper/FaultTractionUpdateBase.hpp
Expand All @@ -19,9 +21,9 @@ set( physicsSolvers_headers
# Specify solver sources
set( physicsSolvers_sources
${physicsSolvers_sources}
inducedSeismicity/QuasiDynamicEQ.cpp
inducedSeismicity/ExplicitQDRateAndState.cpp
inducedSeismicity/ImplicitQDRateAndState.cpp
inducedSeismicity/QuasiDynamicEQRK32.cpp
inducedSeismicity/QuasiDynamicEarthQuake.cpp
inducedSeismicity/SeismicityRate.cpp
inducedSeismicity/SpringSlider.cpp
inducedSeismicity/tractionUpdateWrapper/OneWayCoupledTractionUpdate.cpp
Expand Down
Loading

0 comments on commit 10f96bb

Please sign in to comment.