Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
7c745ad
starting implementation
jafranc Nov 4, 2025
67b1df9
first working v
jafranc Nov 5, 2025
833f25a
Add tau lim
jafranc Nov 5, 2025
4911621
fixes
jafranc Nov 6, 2025
da107af
fixes
jafranc Nov 6, 2025
92a1987
Merge branch 'develop' into jafranc/feat/ALMDriver
jafranc Feb 24, 2026
e7982ab
Merge remote-tracking branch 'origin/develop' into jafranc/feat/ALMDr…
jafranc Apr 23, 2026
965fdf9
fix std::runtime_error usage
jafranc Apr 23, 2026
cd3d4fe
Friction driver suggestions (#4037)
dkachuma Apr 24, 2026
9c11524
Merge branch 'develop' into jafranc/feat/ALMDriver
OmarDuran May 14, 2026
28139da
Merge remote-tracking branch 'origin/develop' into jafranc/feat/ALMDr…
jafranc May 26, 2026
937b3a7
wip
jafranc Jun 1, 2026
0f7ed36
wip
jafranc Jun 3, 2026
a66fa9e
Merge branch 'jafranc/feat/ALMDriver' of https://github.com/GEOS-DEV/…
jafranc Jun 3, 2026
2521e23
to static function
jafranc Jun 3, 2026
d56ab6f
clean up
jafranc Jun 4, 2026
0dcf7a4
correct column ordering
jafranc Jun 4, 2026
e24a7a1
parametrize
jafranc Jun 4, 2026
22f75d6
update FS prior/posterior
jafranc Jun 4, 2026
a9014b8
minus sign handling
jafranc Jun 8, 2026
db6f9f1
extracting computeTolerances for Driver
jafranc Jun 8, 2026
709305f
integrating computeTolerances
jafranc Jun 8, 2026
e2764a8
adding iterative Penalty
jafranc Jun 9, 2026
38bd5f1
index fix
jafranc Jun 9, 2026
a2c3e98
correct rotation
jafranc Jun 9, 2026
2d8dfd7
changing the tilt angles
jafranc Jun 9, 2026
2f62fa0
Merge remote-tracking branch 'origin/develop' into jafranc/feat/ALMDr…
jafranc Jun 9, 2026
db21cb7
adding tolerances in report
jafranc Jun 9, 2026
cc4b31b
Merge remote-tracking branch 'origin/develop' into jafranc/feat/ALMDr…
jafranc Aug 18, 2026
1718f69
wip
jafranc Aug 18, 2026
2cf8550
with rotation
jafranc Aug 19, 2026
b48d661
testing
jafranc Aug 21, 2026
da36d79
testing - wip
jafranc Aug 21, 2026
f28d7ed
Merge branch 'jafranc/feat/ALMDriver' of https://github.com/GEOS-DEV/…
jafranc Aug 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?xml version="1.0" ?>

<Problem>
<!-- SPHINX_TASK -->
<Tasks>
<FrictionDriver
name="frictionDriver"
friction="fractureContact0"
dispControl="jFunction"
dJumpControl="djFunction"
stressControlsL="sLFunction"
stressControlsR="sRFunction"
yTiltAngle="0"
zTiltAngle="0"
steps="1"
simultaneous="1"
tolJumpN="1e-1"
tolJumpT="1e-5"
tolNormalTrac="1e-1"
iterPenNFac="10"
iterPenTFac="1"
faceArea="1"
neighborsVolume="{1,1}"
neighborsShear="{1e9,1e9}"
neighborsBulk="{1e7,1e7}"
output="frictionDriver_Coulomb.txt" />
</Tasks>

<Included>
<File name="./frictionDriver_base.xml"/>
</Included>
</Problem>
63 changes: 63 additions & 0 deletions inputFiles/constitutiveDriver/friction/frictionDriver_base.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?xml version="1.0" ?>

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

<!-- SPHINX_EVENTS -->
<Events
maxTime="1">
<SoloEvent
name="frictionDriver"
targetTime="0"
target="/Tasks/frictionDriver"/>

<PeriodicEvent
name="restarts"
timeFrequency="1"
targetExactTimestep="0"
target="/Outputs/restartOutput"/>
</Events>
<!-- SPHINX_EVENTS_END -->

<Constitutive>
<Coulomb
name="fractureContact0"
defaultCohesion="0.0e6"
defaultFrictionCoefficient="0.01"/>
<Coulomb
name="fractureContact1"
defaultCohesion="1.0e6"
defaultFrictionCoefficient="0.01"/>

</Constitutive>

<!-- SPHINX_FUNCTION -->
<Functions>
<TableFunction
name="jFunction"
inputVarNames="{ time }"
coordinateFiles="{ tables/time.geos }"
voxelFile="tables/jumps.geos"/>

<TableFunction
name="djFunction"
inputVarNames="{ time }"
coordinateFiles="{ tables/time.geos }"
voxelFile="tables/djumps.geos"/>

<TableFunction
name="sLFunction"
inputVarNames="{ time }"
coordinateFiles="{ tables/time.geos }"
voxelFile="tables/tractions.geos"/>
<TableFunction
name="sRFunction"
inputVarNames="{ time }"
coordinateFiles="{ tables/time.geos }"
voxelFile="tables/constant.geos"/>
</Functions>
<!-- SPHINX_FUNCTION_END -->
</Problem>
2 changes: 2 additions & 0 deletions inputFiles/constitutiveDriver/friction/tables/constant.geos
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
1e2
1e2
2 changes: 2 additions & 0 deletions inputFiles/constitutiveDriver/friction/tables/djumps.geos
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
0
0
2 changes: 2 additions & 0 deletions inputFiles/constitutiveDriver/friction/tables/jumps.geos
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
0
-5e-3
2 changes: 2 additions & 0 deletions inputFiles/constitutiveDriver/friction/tables/time.geos
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
0
5
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
0
-5e2
9 changes: 9 additions & 0 deletions src/coreComponents/constitutive/contact/CoulombFriction.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,15 @@ class CoulombFriction : public FrictionBase
*/
KernelWrapper createKernelUpdates() const;

// TODO (jafranc) make sure it is only helpers for FrictionDriver
/// getting cohesion value
real64 getCohesion() const
{ return m_cohesion[0]; }

/// getting friction coeff
real64 getFrictionCoeff() const
{ return m_frictionCoefficient[0]; }

/**
* @struct Set of "char const *" and keys for data specified in this class.
*/
Expand Down
4 changes: 4 additions & 0 deletions src/coreComponents/constitutiveDrivers/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,16 @@ set( constitutiveDrivers_headers
relativePermeability/RelpermDriver.hpp
relativePermeability/RelpermDriverRunTest.hpp
solid/TriaxialDriver.hpp
contact/FrictionDriver.hpp
contact/FrictionDriverRunTest.hpp
)
#
# Specify all sources
#
set( constitutiveDrivers_sources
ConstitutiveDriver.cpp
contact/FrictionDriver.cpp
contact/FrictionDriverRunTest.cpp
fluid/multiFluid/PVTDriver.cpp
fluid/multiFluid/constant/PVTDriverRunTestInvariantImmiscibleFluid.cpp
fluid/multiFluid/blackOil/PVTDriverRunTestDeadOilFluid.cpp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,9 @@ void ConstitutiveDriver::outputToFile() const

integer const precision = LvArray::math::max( LvArray::math::min( m_precision, maxPrecision ), minPrecision );
file << std::scientific << std::setprecision( precision );
integer const width = precision+7;
integer const width = precision+7+1;//spacing for minus sign

for( integer step = 0; step <= m_numSteps; ++step )
for( integer step = 0; step < m_table.size(0); ++step )
{
file << std::setw( width ) << m_table( step, 0 );
for( integer col = 1; col < numColumns; ++col )
Expand Down Expand Up @@ -213,7 +213,7 @@ void ConstitutiveDriver::outputToConsole() const
TableData tableData;

stdVector< TableData::CellData > tableRow( numColumns );
for( integer step = 0; step <= m_numSteps; ++step )
for( integer step = 0; step < m_table.size(0); ++step )
{
for( integer col = 0; col < numColumns; ++col )
{
Expand Down
Loading
Loading