Adhesion.ReferenceSolutions package

Subpackages

Submodules

Adhesion.ReferenceSolutions.BaneyHui module

Maugis-Dugdale (cohesive zone) model for a cylinder contacting an elastic flat. See: J.M. Baney, C.-Y. Hui, J. Adhesion Sci. Technol. 11, 393 (1997)

Adhesion.ReferenceSolutions.BaneyHui.fm(m, a, lam)[source]
Adhesion.ReferenceSolutions.BaneyHui.load(contact_radius, radius, elastic_modulus, work_of_adhesion, cohesive_stress)[source]
Adhesion.ReferenceSolutions.BaneyHui.maugis_parameter(radius, elastic_modulus, work_of_adhesion, cohesive_stress)[source]

Adhesion.ReferenceSolutions.DMT module

Helper tools for Adhesion

Adhesion.ReferenceSolutions.DMT.radius_and_pressure(N, R, Es, w)[source]

Given normal load, sphere radius and contact modulus compute contact radius and peak pressure.

Parameters:
  • N (float) – Normal force.

  • R (float) – Sphere radius.

  • Es (float) – Contact modulus: Es = E/(1-nu**2) with Young’s modulus E and Poisson number nu.

  • w (float) – Work of adhesion.

Adhesion.ReferenceSolutions.DMT.surface_displacements(r, a)[source]
Adhesion.ReferenceSolutions.DMT.surface_stress(r, a, nu)[source]

Given distance from the center of the sphere, contact radius and Poisson number contact, compute the stress at the surface.

Parameters:
  • r (array_like) – Array of distance (from the center of the sphere).

  • a (float) – Contact radius.

  • nu (float) – Poisson number.

Returns:

  • pz (array) – Contact pressure.

  • sr (array) – Radial stress.

  • stheta (array) – Azimuthal stress.

Adhesion.ReferenceSolutions.JKR module

JKR solutions for the indentation of an elastic halfspace by a paraboloid indenter.

Physical quantities:

The parameters of the system are:

  • radiusfloat, optional

    Sphere (actually paraboloid) radius.

  • contact_modulusfloat, optional

    Contact modulus: \(E^* = E/(1-\nu^2)\) with Young’s modulus E and Poisson number \(\nu\). The default value is so that Maugis’s contact Modulus is one (\(K = 4 / 3 E^*\))

  • work_of_adhesionfloat, optional

    Work of adhesion.

This module provides implementations of the formulas relating the rigid body penetration (penetration), the indentation force (force) and the radius of the contact disk (contact_radius).

If the parameters are not provided, the relations are nondimensional.

Nondimensional units

The nondimensionalisation follows Maugis’s book (p.290):

  • lengths in the vertical direction

    (penetration, heights, displacements, gaps), are in units of

\[(\pi^2 w^2 R / K^2)^{1/3}\]
  • lengths in the lateral direction (contact radius) are in units of

\[(\pi w R^2 / K)^{1/3}\]
  • forces are in unit of

\[\pi w R\]

Function reference:

Adhesion.ReferenceSolutions.JKR.contact_radius(force=None, penetration=None, radius=1.0, contact_modulus=0.75, work_of_adhesion=None)[source]

Given normal load or rigid body penetration, sphere radius and contact modulus compute contact radius on the stable branch.

  • If only force or penetration is provided, it is assumed that the nondimensionalisation from Maugis’s book is used.

  • If force and penetration are given the work of adhesion results from these values and the provided value will be ignored.

    For given force \(F\) and penetration \(\delta\), we solve

    \[F = 2 a E^\prime (\delta - \frac{1}{3} \frac{a^2}{R})\]

    for the contact radius \(a\).

    If you want to determine the energy release rate, call JKR.elastic_energy_release_rate using the penetration and the contact radius afterwards.

Parameters:
  • force (float or array of floats, optional) – Normal force.

  • penetration (float, optional) – rigid body penetration

  • radius (float, optional) – Sphere (actually paraboloid) radius.

  • contact_modulus (float, optional) – Contact modulus: \(E^* = E/(1-\nu^2)\) with Young’s modulus E and Poisson number \(\nu\). The default value is so that Maugis’s contact Modulus is one (\(K = 4 / 3 E^*\))

  • work_of_adhesion (float, optional) – Work of adhesion.

Adhesion.ReferenceSolutions.JKR.deformed_profile(r, contact_radius, radius=1.0, contact_modulus=0.75, work_of_adhesion=0.3183098861837907)[source]

Computes the gap in the JKR contact at radius r :param r: radius at which to compute the gap :type r: float or array of floats :param contact_radius: Normal force. :type contact_radius: float or array of floats :param radius: Sphere (actually paraboloid) radius.

Default 1.

Parameters:
  • contact_modulus (float, optional) – Contact modulus: \(E^* = E/(1-\nu^2)\) with Young’s modulus E and Poisson number \(\nu\). The default value is so that Maugis’s contact Modulus is one (\(K = 4 / 3 E^*\))

  • work_of_adhesion (float, optional) – Work of adhesion. Default \(1 / \pi\)

Returns:

gaps at radius r

Return type:

ndarray

Adhesion.ReferenceSolutions.JKR.displacement_field(r, contact_radius, radius, contact_modulus, work_of_adhesion)[source]

a function of the distance from the contact center giving the displacement

Parameters:
  • contact_radius (contact radius) –

  • radius (float) – Sphere radius.

  • contact_modulus (float) – Contact modulus: \(E^* = E/(1-\nu^2)\) with Young’s modulus E and Poisson number \(\nu\).

  • work_of_adhesion (float) – Work of adhesion.

Returns:

displacements

Return type:

ndarray

Adhesion.ReferenceSolutions.JKR.elastic_energy(penetration, contact_radius)[source]
\[\frac{U_{el}}{\pi w R (\pi^2 w^2 R / K^2)^{1/3}} = \frac{3}{4} A \left(\Delta - \frac{A^2}{3}\right)^2 + \frac{A^5}{15}\]

For the units, see maugis p.290

Parameters:
  • penetration (\(\Delta\) in maugis) –

  • contact_radius (\(A\) in maugis) –

Return type:

elastic energy in units of \(\pi w R (\pi^2 w^2 R / K^2)^{1/3}\)

Adhesion.ReferenceSolutions.JKR.elastic_energy_release_rate(contact_radius, penetration=None, force=None, der='0', radius=1, contact_modulus=0.75)[source]

Returns the energy release rate (with respect to the contact area) at either prescribed force or prescribed rigid body penetration

Prescribed rigid body penetration:

\[\frac{\partial U_\mathrm{el}(\delta, a)}{\partial (\pi a^2)} = \frac{R E^\prime}{2\pi a} \left(\delta - \frac{a^2}{R}\right)^2\]

In Maugis’s units:

\[\frac{\partial U_{el}}{\partial \pi a^2} = \frac{3}{8 \pi} \frac{1}{a} (\Delta - a^2)^2\]

Prescribed force

\[K = \frac{F_H - F} {2 \sqrt{\pi a^3}}\]

with \(F_H = a^3 \frac{4E^\prime}{3R}\)

\[\frac{\partial U_\mathrm{el}(\delta, a)}{\partial (\pi a^2)} = K^2 / 2 E^\prime\]

Notation and units:

\(a\) is the contact radius, \(\Delta\) is the penetration.

With the default values of radius and contact_modulus, this function returns the energy release rate in units of

  • \(w\) if \(\Delta\) and \(a\) are in maugis - JKR units.

  • \(E_M R\) if \(\Delta\) and \(a\) are in units of \(R\)

Note that I think perfect consistent use of the maugis-JKR units would require to express the energy release rate in units of \(\pi w\) instead of just \(w\). I might need to change this at some point.

param contact_radius:

in units of \(R\)

type contact_radius:

float or np.array

param penetration:

rigid body penetration penetration, \(\Delta\) in maugis

type penetration:

float or np.array, optional

param force:

normal force (positive is compressive)

type force:

float or np.ndarray, optional

param radius:

default 1, optional radius of the sphere

type radius:

float

param contact_modulus:

default 3/4, optional johnsons contact modulus

type contact_modulus:

float

param der:

order of the derivative

type der:

{“0”, “1_a”, “1_d”, “2_a”, “2_da”}, optional

Adhesion.ReferenceSolutions.JKR.equilibrium_elastic_energy(contact_radius)[source]
Adhesion.ReferenceSolutions.JKR.force(contact_radius=None, penetration=None, radius=1.0, contact_modulus=0.75, work_of_adhesion=None)[source]
Parameters:
  • contact_radius (float or array of floats, optional) – Normal force.

  • penetration (float, optional) – rigid body penetration

  • radius (float, optional) – Sphere (actually paraboloid) radius.

  • contact_modulus (float, optional) – Contact modulus: \(E^* = E/(1-\nu**2)\) with Young’s modulus E and Poisson number \(\nu\). The default value is so that Maugis’s contact Modulus is one (\(K = 4 / 3 E^*\))

  • work_of_adhesion (float, optional) – Work of adhesion.

Examples

>>> JKR.force(contact_radius=2.)
>>> JKR.force(contact_radius=2., radius=1., contact_modulus=3./4,
...           work_of_adhesion=1/np.pi)
>>> JKR.force(penetration=1.)
>>> JKR.force(penetration=1.,radius=1., contact_modulus=3./4,
...           work_of_adhesion=1/np.pi)
>>> JKR.force(contact_radius=2., penetration=1.)
>>> JKR.force(contact_radius=2., penetration=1., radius=1.,
...           contact_modulus=3./4,)

Note that in the last usage, both contact radius and penetration are given instead of the work of adhesion

Adhesion.ReferenceSolutions.JKR.height_unit(radius, contact_modulus, work_of_adhesion)[source]
Adhesion.ReferenceSolutions.JKR.load_unit(radius, work_of_adhesion)[source]
Adhesion.ReferenceSolutions.JKR.peak_pressure(force=None, penetration=None, radius=1.0, contact_modulus=0.75, work_of_adhesion=0.3183098861837907)[source]

Given normal load or rigid body penetration, sphere radius and contact modulus compute contact radius.

if only force or penetration is provided, it is assumed that the nondimensionalisation from Maugis’s book is used.

Parameters:
  • force (float or array of floats, optional) – Normal force.

  • penetration (float, optional) – rigid body penetration

  • radius (float, optional) – Sphere (actually paraboloid) radius.

  • contact_modulus (float, optional) – Contact modulus: \(E^* = E/(1-\nu**2)\) with Young’s modulus E and Poisson number \(\nu\). The default value is so that Maugis’s contact Modulus is one (\(K = 4 / 3 E^*\))

  • work_of_adhesion (float, optional) – Work of adhesion.

Adhesion.ReferenceSolutions.JKR.penetration(contact_radius=None, force=None, radius=1.0, contact_modulus=0.75, work_of_adhesion=0.3183098861837907)[source]
Parameters:
  • contact_radius (float or array of floats, optional) – Normal force.

  • penetration (float, optional) – rigid body penetration

  • radius (float, optional) – Sphere (actually paraboloid) radius.

  • contact_modulus (float, optional) – Contact modulus: \(E^* = E/(1-\nu^2)\) with Young’s modulus E and Poisson number \(\nu\). The default value is so that Maugis’s contact Modulus is one (\(K = 4 / 3 E^*\))

  • work_of_adhesion (float, optional) – Work of adhesion.

Adhesion.ReferenceSolutions.JKR.radius_unit(radius, contact_modulus, work_of_adhesion)[source]
Adhesion.ReferenceSolutions.JKR.stress_distribution(r, contact_radius, radius, contact_modulus, work_of_adhesion)[source]
Adhesion.ReferenceSolutions.JKR.stress_intensity_factor(contact_radius, penetration=None, force=None, der='0', radius=1, contact_modulus=0.75)[source]

if R is not given, the length and the penetration are epressed in units of R

Prescribed force \(F\)

Flatpunch SIF under load at infinity Tada p.377

\[K = \frac{F_H - F} {2 \sqrt{\pi a^3}}\]

with \(F_H = a^3 \frac{4E^\prime}{3R}\)

param contact_radius:

radius of the contact area

type contact_radius:

float or ndarray of floats

param penetration:

rigid body penetration

type penetration:

float or ndarray of floats

param der:

type der:

{“0”, “1_a”, “2_a”, “1_d”, “2_ad”}

param R:

default 1, optional radius of the sphere

type R:

float

param Es:

default 3/4, optional johnson’s contact modulus

type Es:

float

returns:
  • stress intensity factor K or it’s first derivative according to the

  • contact_radius

  • if R and Es are not given it is in units of 4 / 3 Es sqrt{R} / R^{der}

Adhesion.ReferenceSolutions.MaugisDugdale module

Maugis-Dugdale cohesive zone model for a sphere (paraboloid) contacting an elastic flat. See: D. Maugis, J. Colloid Interf. Sci. 150, 243 (1992)

Adhesion.ReferenceSolutions.MaugisDugdale.afindroot(f, left, right, a, b)[source]
Adhesion.ReferenceSolutions.MaugisDugdale.fm(m, a, lam)[source]
Adhesion.ReferenceSolutions.MaugisDugdale.load_and_displacement(contact_radius, radius, elastic_modulus, work_of_adhesion, cohesive_stress)[source]
Adhesion.ReferenceSolutions.MaugisDugdale.maugis_parameter(radius, elastic_modulus, work_of_adhesion, cohesive_stress)[source]

Adhesion.ReferenceSolutions.PastewkaRobbins module

Maugis-Dugdale (cohesive zone) model for a wedge contacting an elastic flat. See: L. Pastewka, M.O. Robbins, unpublished

Adhesion.ReferenceSolutions.PastewkaRobbins.fm(m, a, lam)[source]
Adhesion.ReferenceSolutions.PastewkaRobbins.load(contact_radius, slope, elastic_modulus, work_of_adhesion, cohesive_stress)[source]
Adhesion.ReferenceSolutions.PastewkaRobbins.maugis_parameter(slope, elastic_modulus, cohesive_stress)[source]

Module contents

Analytical or semi-analytical reference solutions