GaPFlow.topography.ElasticDeformation#

class GaPFlow.topography.ElasticDeformation(E: float, v: float, alpha_underrelax: float, grid: dict, n_images: int)#

Bases: object

Thin wrapper around the FFTElasticHalfSpace classes from ContactMechanics.

Selects the appropriate Half-Space class based on the periodicity of the problem.

__init__(E: float, v: float, alpha_underrelax: float, grid: dict, n_images: int) None#

Constructor

Parameters:
  • E (float) – Young’s modulus.

  • v (float) – Poisson’s ratio.

  • alpha_underrelax (float) – Underrelaxation factor.

  • grid (dict) – Parameters controlling spatial discretization.

  • n_images (int) – Number of periodic images for semi-periodic grids.

Methods

__init__(E, v, alpha_underrelax, grid, n_images)

Constructor

get_G_real()

For analysis and illustration purposes.

get_G_real_slices()

For analysis and illustration purposes.

get_deformation(p)

Calculation of the elastic deformation due to given pressure field p.

get_deformation_underrelax(p)

Updates elastic deformation using underrelaxation

get_G_real() ndarray[tuple[Any, ...], dtype[floating]]#

For analysis and illustration purposes. Returns the ‘ordered’ G_real numpy array with centered zero frequency component.

Returns:

G_real_ordered – Green’s function array in real space.

Return type:

ndarray

get_G_real_slices() Tuple[ndarray[tuple[Any, ...], dtype[floating]], ndarray[tuple[Any, ...], dtype[floating]]]#

For analysis and illustration purposes. Returns two middle slices of the G_real array, in x- and y-direction

Returns:

  • x_slice (ndarray of shape (M,)) – middle slice of G_real in x-direction

  • y_slice (ndarray of shape (N,)) – middle slice of G_real in y-direction

get_deformation(p: ndarray[tuple[Any, ...], dtype[floating]]) ndarray[tuple[Any, ...], dtype[floating]]#

Calculation of the elastic deformation due to given pressure field p. Convention: positive displacement for positive pressure.

Parameters:

p (ndarray) – Pressure array [Pa]

Returns:

disp – Array of resulting displacements [m].

Return type:

ndarray

get_deformation_underrelax(p: ndarray[tuple[Any, ...], dtype[floating]]) ndarray[tuple[Any, ...], dtype[floating]]#

Updates elastic deformation using underrelaxation

Parameters:

p (ndarray of shape (M, N)) – Pressure field.

Returns:

u_relaxed – Updated, underrelaxed deformation field.

Return type:

ndarray of shape (M, N)