Smooth-Joint Model

The smooth-joint model can be installed at ball-ball contacts and is referred to in commands and FISH by the name smoothjoint.

Introduction

The smooth-joint model simulates the behavior of a planar interface with dilation regardless of the local particle contact orientations along the interface. The behavior of a frictional or bonded joint can be modeled by assigning smooth-joint models to all contacts between particles that lie on opposite sides of the joint.

Behavior Summary

The smooth-joint model provides the macroscopic behavior of a linear elastic and either bonded or frictional interface with dilation (see Figure 1). The behavior of the bonded interface is linear elastic until the strength limit is exceeded and the bond breaks, making the interface unbonded; the behavior of an unbonded interface is linear elastic and frictional with dilation, with slip accommodated by imposing a Coulomb limit on the shear force. The interface does not resist relative rotation (Mc0). The force is updated as described in the force-displacement law below.

../../../../../_images/smoothjoint_fig1.png

Figure 1: Behavior and rheological components of the smooth-joint model.

Activity-Deletion Criteria

If in small-strain mode (Sl=false), a contact with the smooth-joint model is always active. In this mode, the contact will never be deleted. If in large-strain mode (Sl=true), a contact with the smooth-joint model is active if the contact is bonded or if the contact gap is negative (i.e., the two pieces are overlapping).

Kinematic Variables

A typical smooth-joint contact is shown in Figure 2. The joint geometry consists of a planar interface separating two surfaces (denoted as surface 1 and surface 2). The interface orientation is defined by the unit-normal vector ˆnj, and surface 2 is defined such that ˆnj points into surface 2. The unit normal is defined as:

(1)ˆnj=(sin(θp),cos(θp))(2D)ˆnj=(sin(θp)sin(θd),sin(θp)cos(θd),cos(θp))(3D)

where θp is the dip angle and θd the dip direction.

Joint orientation is fixed with respect to the global axes, and can only be changed by modifying the dip angle or dip direction. Whenever the joint orientation is changed (or is set initially), the two contacting entities (called piece 1 and piece 2) are associated with the appropriate joint surfaces. The contact unit-normal vector, ˆnc, is directed from the center of piece 1 to the center of piece 2. The dot product of ˆnc and ˆnj is used to determine in which surface each piece lies, such that piece 2 lies in surface 2 if and only if ˆncˆnj0.


../../../../../_images/smoothjoint_fig2.png

Figure 2: Joint and smooth-joint contact.


A smooth joint can be envisioned as a set of elastic springs uniformly distributed over a circular cross-section, centered at the contact point and oriented parallel with the joint plane. The area of the smooth-joint cross-section is given by:

(2)A=πR2withR=λmin(R(1),R(2))

where R(1) and R(2) are the piece radii.

Force-Displacement Law

As the smooth-joint orientation is not aligned with the contact normal, the relative displacement increment is resolved into joint normal and shear directions:

(3)Δδδ=Δδnˆnj+Δδδs

The accumulated normal and shear displacements are updated as:

(4)δn=δnΔδnδδs=δδs+Δδδs

The elastic portions of the normal (Δδne) and shear (Δδδse) displacement increments are determined based on the value of the gap (gi where gi=0 when the smooth joint is created). If bonded, then the entire displacement increment is elastic; if not bonded, then only the portion of the displacement increment that occurs while gi<0 is elastic.

The force-displacement law for the smooth-joint model updates the contact force:

(5)Fc=F

where F is the smooth-joint force. The force is resolved into normal and shear forces:

(6)F=Fnˆnj+Fs

where Fn>0 is tension.

The force-displacement law consists of the following steps (see Figure 3 and Figure 4):

  1. Update the normal force:

    (7)Fn=(Fn)o+knAΔδne

    where (Fn)o is the smooth joint normal force at the beginning of the timestep and A is the bond cross-sectional area.

  2. Calculate a trial shear force:

    (8)Fs=(Fs)oksAΔδδse

    where (Fs)o is the shear force at the beginning of the timestep.

    The frictional shear-strength limit is also computed:

    (9)Fμs=μFn.
  3. The forces, slip state, and bonding state are updated based on the bonding status.

    • If the smooth-joint model is unbonded (Sj<3), the shear force is updated:

      (10)Fs={Fs,FsFμsFμs(Fs/FsFsFs),otherwise.

      The slip state is updated:

      (11)s={true,Fs=Fμsfalse,otherwise.

      If the slip state is true, then the contact is sliding. Whenever the slip states changes, the slip_change callback event occurs. While slipping, shear displacements produce an increase in normal force due to dilation:

      (12)Fn=(Fn)o+[δstanψ]knA=(Fn)o+(FsFμsks)kntanψ

      where μ is the friction coefficient and ψ is the dilation angle.

    • If the smooth-joint model is bonded (Sj=3), one updates the bonding status:

      (13)Sj={1,FnσcA(brokenintension)2,FsτcA(brokeninshear)3,otherwise.

      where σc is the bond normal strength and τc is the bond shear strength (τc=c(FnA)tanϕ). The following conditions are applied in each case:

      • If the bond has broken in tension (Sj=1), the normal and shear forces are reset:

        (14)Fn=Fs=0.
      • If the bond has broken in shear (Sj=2) and the bond is in tension, the normal and shear forces are reset as in Equation (14). If the bond is not in tension, the shear force is limited by Equation (10) but no dilation can occur. The slip state is updated as in Equation (11).

      • If the bond remains intact (Sj=3), the shear force is set to the trial shear force:

        (15)Fs=Fs.
../../../../../_images/smoothjoint_fig3.png

Figure 3: Force-displacement law for an unbonded joint: (a) normal force versus normal displacement; (b) shear force versus shear displacement; (c) strength envelope; and (d) normal displacement versus shear displacement during sliding.

../../../../../_images/smoothjoint_fig4.png

Figure 4: Force-displacement law for a bonded joint: (a) normal force versus normal displacement; (b) shear force versus shear displacement; and (c) strength envelope.

Energy Partitions

The smooth-joint model provides two energy partitions:

  • strain energy, Ek, stored in the linear springs; and

  • slip energy, Eμ, defined as the total energy dissipated by frictional slip.

If energy tracking is activated, these energy partitions are updated as follows:

  1. Update the strain energy:

    (16)Ek=12((Fn)2kn+Fs2ks)
  2. Update the slip energy:

    (17)Eμ:=Eμ+12((Fs)o+Fs)Δδδμs[3mm]withΔδδμs=ΔδδsΔδδes=Δδδs(Fs(Fs)oks)

    where (Fs)o is the shear force at the beginning of the timestep, and the relative shear-displacement increment of this equation of the “Contact Resolution” section has been decomposed into an elastic (Δδδes) and a slip (Δδδμs) component. The dot product of the slip component and the average shear force occurring during the timestep gives the increment of slip energy.

Additional information, including the keywords by which these partitions are referred to in commands and FISH, is provided in the table below.


Table 1: Smooth-Joint Contact Model Energies

Name

Symbol

Description

Range

Accumulated

energy‑strain

Ek

Strain energy

[0.0,+)

NO

energy‑slip

Eμ

Total energy dissipated by slip

[0.0,+)

YES

Properties

The properties defined by the smooth-joint contact model are listed in the table below as a concise reference; see the “Contact Properties” section for a description of the information in the table columns. The mapping from the surface inheritable properties to the contact model properties is also discussed below.

Table 2: Smooth-Joint Model Properties

Keyword

Symbol

Description

Type

Range

Default

Modifiable

Inheritable

smoothjoint

Model name

sj_kn

kn

Normal stiffness per unit area [force/volume]

FLT

[0.0,+)

0.0

YES

YES

sj_ks

ks

Shear stiffness per unit area [force/volume]

FLT

[0.0,+)

0.0

YES

YES

sj_fric

μ

Friction coefficient [-]

FLT

[0.0,+)

0.0

YES

YES

sj_da

ψ

Dilation angle [degrees]

FLT

[0.0,+)

0.0

YES

NO

sj_state

Sj

Joint bond state [-]

INT

{0;1;2;3}

0

YES

NO

{0: unbonded1: unbonded \& broke in tension2: unbonded \& broke in shear3: bonded

sj_large

Sl

Large strain flag [-]

BOOL

{false,true}

false

YES

NO

sj_ten

σc

Tensile strength [stress]

FLT

[0.0,+)

0.0

YES

NO

sj_coh

c

Cohesion

FLT

[0.0,+)

0.0

YES

NO

sj_fa

ϕ

Joint friction angle [degrees]

FLT

[0.0,+)

0.0

YES

NO

sj_shear

τc

Shear strength [stress]

FLT

[0.0,+)

0.0

NO

NO

sj_rmul

λ

Joint radius multiplier [-]

FLT

[0.0,+)

1.0

YES

NO

sj_radius

R

Joint radius [length]

FLT

[0.0,+)

N/A

NO

N/A

sj_area

A

Joint area [surface]

FLT

[0.0,+)

N/A

NO

N/A

sj_slip

s

Slip state [-]

BOOL

{false,true}

false

NO

N/A

sj_gap

gj

Joint gap [length]

FLT

R

0.0

YES

NO

sj_unorm

ˆnj

Joint unit normal [force]

VEC

R3

0

NO

NO

sj_un

δn

Normal displacement [length]

FLT

R

0.0

NO

N/A

sj_us

δδs

Shear displacement [length]

VEC

R3

0

NO

N/A

dip

θp

Joint dip [degrees]

FLT

[0.0,360.0]

0.0

YES

NO

ddir (3D)

θd

Joint dip direction [degrees]

FLT

[0.0,180.0]

0.0

YES

NO

sj_fn

Fn

Normal force magnitude [force]

FLT

R

0.0

YES

NO

sj_fs

Fs

Shear force vector [force]

VEC

R3

0

YES

NO

Surface Property Inheritance

The linear stiffness per unit area, kn and ks, and the friction coefficient, μ, may be inherited from the contacting pieces. Remember that for a property to be inherited, the inheritance flag for this property must be set to true, and both contacting pieces must hold a property with this name.

The stiffness are inherited assuming that both pieces’ stiffness act in series:

(18)1kn=1k(1)n+1k(2)n1ks=1k(1)s+1k(2)s

where (1) and (2) denote the properties of piece 1 and 2, respectively. The friction coefficient is inherited using the minimum friction coefficient:

(19)μ=min

Methods

Table 3: Smooth-Joint Model Methods

Method

Arguments

Symbol

Type

Range

Default

Description

sj_setforce

N/A

Set the force

bond

Bond the joint if g_j \in G

gap

\mathbb{G}

VEC2

\mathbb{R}^2

(-\infty,0]

Gap interval

unbond

Unbond the joint if g_j \in G

gap

G

VEC2

\mathbb{R}^2

(-\infty,0]

Gap interval


sj_setforce

Set the smooth-joint normal force (F_n) from the current contact force:

(20)F_n = \mathbf{F_c} \cdot \mathbf{\hat{n}_j}.

Bond

Create a smooth-joint bond (S_j=3) by bonding the interface if the contact gap between the pieces is within the bonding-gap interval. If no gap is specified, then the contact is bonded if the pieces overlap. A single value can be specified with the gap keyword corresponding to the maximum gap. One can ensure the existence of contacts between all pieces with a contact gap less than a specified bonding gap (g_{b}) by specifying g_{b} as the proximity in the contact cmat default command of the Contact Model Assignment Table (CMAT).

Unbond

Remove a smooth-joint bond by unbonding (S_j=0) the interface if the contact gap between the pieces is within the bonding-gap interval. If no gap is specified, then the contact is unbonded if the pieces overlap. A single value can be specified with the gap keyword corresponding to the maximum gap. If the interface becomes unbonded, then the bond state becomes unbonded. The smooth-joint force is unaffected and will be updated during the next cycle.


Callback Events

Table 4: Smooth-Joint Model Callback Events

Event

Array slot

Value Type

Range

Description

contact_activated

Contact becomes active

1

C_PNT

N/A

Contact pointer

slip_change

Slip state has changed

1

C_PNT

N/A

Contact pointer

2

INT

{0;1}

Slip change mode

{0;1}

\;\;\;\;\;\;\begin{cases} \mbox{0: slip has initiated} \\ \mbox{1: slip has ended} \end{cases}

bond_break

Bond has broken

1

C_PNT

N/A

Contact pointer

2

INT

{1;2}

Failure mode

\;\;\;\;\;\;\begin{cases} \mbox{1: failed in tension} \\ \mbox{2: failed in shear} \end{cases}

3

FLT

[0.0,+\infty)

Failure strength [stress] (tension or shear, according to the failure mode)


Usage and Verification Examples

The smooth-joint contact model is demonstrated in the “Slip on a Fault” tutorial.

Model Summary

An alphabetical list of the smoothjoint model methods is given here. An alphabetical list of the smoothjoint model properties is given here.