Skip to content

feat: Friction Driver#3901

Draft
jafranc wants to merge 28 commits into
developfrom
jafranc/feat/ALMDriver
Draft

feat: Friction Driver#3901
jafranc wants to merge 28 commits into
developfrom
jafranc/feat/ALMDriver

Conversation

@jafranc

@jafranc jafranc commented Nov 4, 2025

Copy link
Copy Markdown
Contributor

Create a FrictionDriver to map states. tau lim wrt displacement jumps and tractions.
As relperm driver under specification of jumps and traction output predicted state and tau limit

<?xml version="1.0" ?>

<Problem>
  <!-- SPHINX_TASK -->
  <Tasks>
  <FrictionDriver
      name="frictionDriver"
      friction="fractureContact0"
      jumpControl="jFunction"
      dJumpControl="djFunction"
      tractionControl="tFunction"
      yTiltAngle="0"
      zTiltAngle="1"
      steps="10"
      simultaneous="1"
      tolJumpN="1e-15"
      tolJumpT="1e-5"
      tolNormalTrac="1e2"
      iterPenNFac="10"
      iterPenTFac="1"
      faceArea="1"
      neighborsVolume="{1,1}"
      neighborsShear="{1e9,1e9}"
      neighborsBulk="{1e7,1e7}"
  </Tasks>
  <!-- SPHINX_TASK_END -->

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

with base description:

<?xml version="1.0" ?>

<Problem>
  <Events
    maxTime="1">
    <SoloEvent
      name="frictionDriver"
      target="/Tasks/frictionDriver"/>
  </Events>

  <Constitutive>  
    <Coulomb
      name="fractureContact"
      cohesion="0.0e6"
      frictionCoefficient="0.01"/>
  </Constitutiv>

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

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

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


  <ElementRegions>
    <CellElementRegion
      name="dummy"
      cellBlocks="{ * }"
      materialList="{ dummy }"/>
  </ElementRegions>
</Problem>

Providing the output:

# column 1 = time
# column 2 = traction,normal
# column 3 = traction,tangent1
# column 4 = traction,tangent2
# column 5 = displacement jump,normal
# column 6 = displacement jump,tangent1
# column 7 = displacement jump,tangent2
# column 8 = delta displacement jump,normal
# column 9 = delta displacement jump,tangent1
# column 10 = delta displacement jump,tangent2
# column 11 = encoded constaint (0:converged, 1:stick & gn>0 (opening), 2: interpenetration, 3: stick & gt>lim (disp-sliding), 4: tau>taulim (trac-sliding) )
# column 12 = fracture state (0:stick, 1:slip , 2: new slip, 3: open)
# column 13 = newtraction,normal
# column 14 = newtraction,tangent1
# column 15 = newtraction,tangent2
# column 16 = iterative penalty, normal
# column 17 = iterative penalty, tangent
# column 18 = tau limit
  0.0000e+00 -9.9985e-03 -1.7452e-04  0.0000e+00 -9.9985e-11 -1.7452e-12 -0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  4.0000e+00  0.0000e+00 -1.3531e+00 -1.7452e-04  0.0000e+00  1.3433e+10  1.3433e+09  9.9985e-05
  5.0000e-01 -5.4992e-02 -9.5988e-04  0.0000e+00 -9.9985e-11 -1.7452e-12 -0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  4.0000e+00  0.0000e+00 -1.3981e+00 -9.5988e-04  0.0000e+00  1.3433e+10  1.3433e+09  5.4992e-04
  1.0000e+00 -9.9985e-02 -1.7452e-03  0.0000e+00 -9.9985e-11 -1.7452e-12 -0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  4.0000e+00  0.0000e+00 -1.4431e+00 -1.7452e-03  0.0000e+00  1.3433e+10  1.3433e+09  9.9985e-04
  1.5000e+00 -5.4992e-01 -9.5988e-03  0.0000e+00 -9.9985e-11 -1.7452e-12 -0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  4.0000e+00  0.0000e+00 -1.8930e+00 -9.5988e-03  0.0000e+00  1.3433e+10  1.3433e+09  5.4992e-03
  2.0000e+00 -9.9985e-01 -1.7452e-02  0.0000e+00 -9.9985e-11 -1.7452e-12 -0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  4.0000e+00  0.0000e+00 -2.3430e+00 -1.7452e-02  0.0000e+00  1.3433e+10  1.3433e+09  9.9985e-03
  2.5000e+00 -5.4992e+00 -9.5988e-02  0.0000e+00 -9.9985e-11 -1.7452e-12 -0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  4.0000e+00  2.0000e+00 -6.8423e+00 -9.5988e-02  0.0000e+00  1.3433e+10  1.3433e+09  5.4992e-02
  3.0000e+00 -9.9985e+00 -1.7452e-01  0.0000e+00 -9.9985e-11 -1.7452e-12 -0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  4.0000e+00  2.0000e+00 -1.1342e+01 -1.7452e-01  0.0000e+00  1.3433e+10  1.3433e+09  9.9985e-02
  3.5000e+00 -5.4992e+01 -9.5988e-01  0.0000e+00 -9.9985e-11 -1.7452e-12 -0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  4.0000e+00  2.0000e+00 -5.6335e+01 -9.5988e-01  0.0000e+00  1.3433e+10  1.3433e+09  5.4992e-01
  4.0000e+00 -9.9985e+01 -1.7452e+00  0.0000e+00 -9.9985e-11 -1.7452e-12 -0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  4.0000e+00  2.0000e+00 -1.0133e+02 -1.7452e+00  0.0000e+00  1.3433e+10  1.3433e+09  9.9985e-01
  4.5000e+00 -5.4992e+02 -9.5988e+00  0.0000e+00 -9.9985e-11 -1.7452e-12 -0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  4.0000e+00  2.0000e+00 -5.5126e+02 -9.5988e+00  0.0000e+00  1.3433e+10  1.3433e+09  5.4992e+00
  5.0000e+00 -9.9985e+02 -1.7452e+01  0.0000e+00 -9.9985e-11 -1.7452e-12 -0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  4.0000e+00  2.0000e+00 -1.0012e+03 -1.7452e+01  0.0000e+00  1.3433e+10  1.3433e+09  9.9985e+00

this allow exposure of the traction's update and fracture state update and action of the tolerances and iterativePenalties.

plot_config plot_config

Caution

It does not include triggering of the contact solver, so it cannot be used (yet) to investigate convergence.

@jafranc jafranc self-assigned this Nov 4, 2025
@jafranc jafranc changed the title starting implementation feat: Friction Driver Nov 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants