slippy.contact.Elastic

class slippy.contact.Elastic(name: str, properties: dict, max_load: float = inf, use_frequency_domain: bool = True, periodic_im_repeats: tuple = (1, 1), zero_frequency_value: Optional[float] = None)[source]

A Class for defining elastic materials

Parameters
  • name (str) – The name of the material

  • properties (dict) – dict of properties, dicts must have exactly 2 items. Allowed keys are : ‘E’, ‘v’, ‘G’, ‘K’, ‘M’, ‘Lam’ See notes for definitions

  • max_load (float, optional (float('inf'))) – The maximum load on the surface, loads above this will be cropped during analysis, if this is specified a plastic deformation sub model should be added to the end of each model step to make the deformation permanent

  • use_frequency_domain (bool, optional (True)) – If True the frequency domain definition of the influence matrix is used, otherwise the spatial domain definition is used.

  • periodic_im_repeats (tuple, optional (1,1)) – The number of times the influence matrix should be wrapped in each dimension, used with spatially defined influence matrices and to set the zero frequency value for frequency domain influence matrices. Should not be used with non periodic contacts, for periodic contacts the total size should match the physical size. This is necessary to ensure truly periodic behaviour, no physical limit exists: (an infinitely long contact with any load per unit length will cause infinite displacement).

  • zero_frequency_value (float, optional (None)) – If the frequency domain influence matrix is used the zero frequency value can be set, this defaults to the sum of the spatial influence matrix of the correct size. Should be set to 0 for fully periodic contacts.

speed_of_sound()[source]

Notes

Keys refer to:
  • E - Young’s modulus

  • v - Poission’s ratio

  • K - Bulk Modulus

  • Lam - Lame’s first parameter

  • G - Shear modulus

  • M - P wave modulus

Examples

>>> # Make a material model for elastic steel
>>> steel = Elastic('steel', {'E': 200e9, 'v': 0.3})
>>> # Find it's p-wave modulus:
>>> pwm = steel.M
>>> # Find the speeds of sound:
>>> sos = steel.speed_of_sound(7890)
__init__(name: str, properties: dict, max_load: float = inf, use_frequency_domain: bool = True, periodic_im_repeats: tuple = (1, 1), zero_frequency_value: Optional[float] = None)[source]

Methods

__init__(name, properties[, max_load, ...])

displacement_from_surface_loads(loads, ...)

influence_matrix(components, grid_spacing, span)

Find the influence matrix components for the material relating surface pressures to

loads_from_surface_displacement(...[, ...])

speed_of_sound([density])

find the speed of sound in the material

sss_influence_matrices_normal(components, ...)

Optional, should give the sub surface stress influence matrix components

sss_influence_matrices_tangential_x(...[, ...])

Optional, should give the sub surface stress influence matrix components

sss_influence_matrices_tangential_y(...[, ...])

Optional, overwrite only for non homogenous materials

Attributes

E

The Young's modulus of the material

G

The shear modulus of the material

K

The bulk modulus of the material

Lam

Lame's first parameter for the material

M

The p wave modulus of the material

density

fft

material_type

spatial

v

The Poissions's ratio of the material