matscipy.contact_mechanics package¶
Submodules¶
matscipy.contact_mechanics.DMT module¶
-
matscipy.contact_mechanics.DMT.
radius_and_pressure
(N, R, Es, w)¶ 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.
-
matscipy.contact_mechanics.DMT.
surface_displacements
(r, a)¶
-
matscipy.contact_mechanics.DMT.
surface_stress
(r, a, nu)¶ 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.
matscipy.contact_mechanics.Hertz module¶
-
matscipy.contact_mechanics.Hertz.
centerline_stress
(z, poisson=0.5)¶ Given distance from the center of the sphere, contact radius and Poisson number contact, compute the stress at the surface.
- Parameters
z (array_like) – Array of depths (from the center of the sphere in units of contact radius a).
poisson (float) – Poisson number.
- Returns
srr (array) – Radial stress (in units of maximum pressure p0).
szz (array) – Contact pressure (in units of maximum pressure p0).
-
matscipy.contact_mechanics.Hertz.
radius_and_pressure
(N, R, Es)¶ 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.
- Returns
a (float) – Contact radius.
p0 (float) – Maximum pressure inside the contacting area (right under the apex).
-
matscipy.contact_mechanics.Hertz.
stress
(r, z, poisson=0.5)¶ Return components of the stress tensor in the interior of the Hertz solid. This is the solution given by: M.T. Huber, Ann. Phys. 319, 153 (1904)
Note that the stress tensor at any point in the solid has the form below in a cylindrical coordinate system centered at the tip apex. Some off-diagonal components are zero by rotational symmetry. stt is the circumferential component, srr the radial component and szz the normal component of the stress tensor.
/ stt 0 0
- s = | 0 srr srz |
0 srz szz /
- Parameters
r (array_like) – Radial position (in units of the contact radius a).
z (array_like) – Depth (in units of the contact radius a).
poisson (float) – Poisson number.
- Returns
stt (array) – Circumferential component of the stress tensor (in units of maximum pressure p0).
srr (array) – Radial component of the stress tensor (in units of maximum pressure p0).
szz (array) – Normal component of the stress tensor (in units of maximum pressure p0).
srz (array) – Shear component of the stress tensor (in units of maximum pressure p0).
-
matscipy.contact_mechanics.Hertz.
stress_Cartesian
(x, y, z, poisson=0.5)¶ Return components of the stress tensor in the interior of solid due to normal Hertz loading. This is the solution given by: G.M. Hamilton, Proc. Instn. Mech. Engrs. 197C, 53-59 (1983)
- Parameters
y (x,) – In-plane positions (in units of the contact radius a).
z (array_like) – Depth (in units of the contact radius a).
poisson (float) – Poisson number.
- Returns
sxx, syy, szz, syz, sxz, sxy – Individual components of the Cartesian stress tensor.
- Return type
array
-
matscipy.contact_mechanics.Hertz.
stress_for_tangential_loading
(x, y, z, poisson=0.5)¶ Return components of the stress tensor in the interior of solid due to tangential (Hertz) loading. This is the solution given by: G.M. Hamilton, Proc. Instn. Mech. Engrs. 197C, 53-59 (1983)
- Parameters
y (x,) – In-plane positions (in units of the contact radius a).
z (array_like) – Depth (in units of the contact radius a).
poisson (float) – Poisson number.
- Returns
sxx, syy, szz, syz, sxz, sxy – Individual components of the Cartesian stress tensor.
- Return type
array
-
matscipy.contact_mechanics.Hertz.
surface_displacements
(r)¶ Return the displacements at the surface due to an indenting sphere. See: K.L. Johnson, Contact Mechanics, p. 61
- Parameters
r (array_like) – Radial position normalized by contact radius a.
- Returns
uz – Normal displacements at the surface of the contact (in units of p0/Es * a where p0 is maximum pressure, Es contact modulus and a contact radius).
- Return type
array
-
matscipy.contact_mechanics.Hertz.
surface_stress
(r, poisson=0.5)¶ 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 in units of contact radius a).
poisson (float) – Poisson number.
- Returns
pz (array) – Contact pressure (in units of maximum pressure p0).
sr (array) – Radial stress (in units of maximum pressure p0).
stheta (array) – Azimuthal stress (in units of maximum pressure p0).
matscipy.contact_mechanics.JKR module¶
-
matscipy.contact_mechanics.JKR.
radius
(N, R, Es, w)¶ 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.
matscipy.contact_mechanics.greens_function module¶
Contact mechanics module.
This module contains functions creating real and reciprocal space Green’s function. Continuous real space Green’s function can be converted to their discrete reciprocal space representation by real_to_reciprocal_space. Typically, all nonperiodic kernel return real space Green’s functions, all periodic kernel reciprocal space ones.
-
matscipy.contact_mechanics.greens_function.
min_ccg
(h_r, gf_q, u_r=None, pentol=1e-06, maxiter=100000, logger=None)¶ Use a constrained conjugate gradient optimization to find the equilibrium configuration deflection of an elastic manifold. The conjugate gradient iteration is reset using the steepest descent direction whenever the contact area changes. Method is described in I.A. Polonsky, L.M. Keer, Wear 231, 206 (1999)
- Parameters
h_r (array_like) – Height profile of the rigid counterbody.
gf_q (array_like) – Green’s function (in reciprocal space).
u_r (array) – Array used for initial displacements. A new array is created if omitted.
pentol (float) – Maximum penetration of contacting regions required for convergence.
maxiter (float) – Maximum number of iterations.
- Returns
u (array) – 2d-array of displacements.
p (array) – 2d-array of pressure.
-
matscipy.contact_mechanics.greens_function.
point_displacement__periodic
(nx, ny=None, phi0=None, size=None)¶ Return reciprocal space stiffness coefficients (i.e. inverse of the Green’s function) for a periodic system with contact modulus 2 and Poisson number 1/2. This gives force as a function of displacement.
- Parameters
nx (int) – Number of grid points in x-direction.
ny (int) – Number of grid points in y-direction.
phi0 (float) – Stiffness at q=0 (gamma point).
size (tuple) – System size. Assumed to be nx,ny if parameter is omitted.
- Returns
phi – Reciprocal space representation of the stiffness on an nx,ny grid.
- Return type
array
-
matscipy.contact_mechanics.greens_function.
point_traction__nonperiodic
(quantities, x, y, z, G=1.0, poisson=0.5)¶ Real-space representation of Green’s function for the displacement and stress in the bulk of a non-periodic linear elastic half-space in response to a concentrated surface force. This is the Boussinesq-Cerrutti solution. See: K.L. Johnson, Contact Mechanics, p. 51 and p. 69 Sign convention is as in Johnson!
- Parameters
quantities (str) –
Each character in this string defines a return quantity. They are returned in a tuple of the same order. Possible quantities are
- ’x’Displacement for a concentrated surface traction in
x-direction.
’X’ : Stress for a concentrated surface traction in x-direction. ‘Y’ : Stress for a concentrated surface traction in y-direction. ‘Z’ : Stress for a concentrated surface pressure
(i.e. “traction” in z-direction).
x (array_like) – x-coordinates.
y (array_like) – y-coordinates.
z (array_like) – z-coordinates. Into the solid is positive.
G (float) – Shear modulus.
poisson (float) – Poisson number.
- Returns
sxx (array) – Green’s function xx-component of the stress tensor at coordinates given by x,y,z as a function of pressure applied at point 0,0.
syy (array) – yy-component of the stress tensor.
szz (array) – zz-component of the stress tensor.
syz (array) – yz-component of the stress tensor.
sxz (array) – xz-component of the stress tensor.
sxy (array) – xy-component of the stress tensor.
-
matscipy.contact_mechanics.greens_function.
real_to_reciprocal_space
(nx, ny=None, gf=<function square_pressure__nonperiodic>, coordinates=False)¶ Return the reciprocal space representation of a real-space Green’s function on an FFT grid. Note: If the Green’s function is for the non-periodic (free-bounday) problem, then only a section of 1/2 nx by 1/2 ny of the grid can have non-zero pressure. The other region is a padding region. See R.W. Hockney, Methods in Computational Physics, Vol. 9, pp. 135-211 (1970) for an application of this method to the electrostatic problem.
- Parameters
nx (int) – Number of grid points in x-direction.
ny (int) – Number of grid points in y-direction.
gf (function) – Function returning the real-space Green’s function.
coordinates (bool) – If True, return grid coordinates.
- Returns
G (array) – Reciprocal space representation of the stiffness on an nx,ny grid.
x (array) – x-coordinates of grid.
y (array) – y-coordinates of grid.
-
matscipy.contact_mechanics.greens_function.
square_pressure__nonperiodic
(x, y, a=0.5, b=0.5)¶ Real-space representation of Green’s function for the normal displacements of a non-periodic linear elastic half-space with contact modulus 2 and Poisson number 1/2 in response to a uniform pressure applied to a rectangular region. See: K.L. Johnson, Contact Mechanics, p. 54
- Parameters
x (array_like) – x-coordinates.
y (array_like) – y-coordinates.
b (a,) – Size of rectangle. Rectangle has corners at -a,-b and a,b, i.e. rectangle has extend of 2*a x 2*b. Solution converges to Boussinesq-Cerrutti form for a->0 and b->0.
- Returns
gf – Green’s function for displacements at coordinates given by x,y as a function of pressure applied to the rectangular region.
- Return type
array