Peridynamics documentation

Note: These are the peridynamics methods for the cython implementation. For the OpenCL implementation

peripy.peridynamics.bond_force()

Calculate the force due to bonds on each node.

Parameters:
  • r (numpy.ndarray) – The current coordinates of each node.
  • r0 (numpy.ndarray) – The initial coordinates of each node.
  • nlist (numpy.ndarray) – The neighbour list
  • n_neigh (numpy.ndarray) – The number of neighbours for each node.
  • volume (numpy.ndarray) – The volume of each node.
  • bond_stiffness (float) – The bond stiffness.
  • force_bc_values (numpy.ndarray) – The force boundary condition values for each node.
  • force_bc_types (numpy.ndarray) – The force boundary condition types for each node.
  • bc_scale (double) – The scalar value applied to the force boundary conditions.
peripy.peridynamics.break_bonds()

Update the neighbour list and number of neighbours by breaking bonds which have exceeded the critical strain.

Parameters:
  • r (numpy.ndarray) – The current coordinates of each node.
  • r0 (numpy.ndarray) – The initial coordinates of each node.
  • nlist (numpy.ndarray) – The neighbour list
  • n_neigh (numpy.ndarray) – The number of neighbours for each node.
  • critical_strain (float) – The critical strain.
peripy.peridynamics.damage()

Calculate the damage for each node.

Damage is defined as the ratio of broken bonds at a node to the total number of bonds at that node.

Parameters:
  • n_neigh (numpy.ndarray) – The current number of neighbours for each node, i.e. the number of unbroken bonds. dtype=numpy.int32.
  • family (numpy.ndarray) – The total (initial) number of bonds for each node. dtype=numpy.int32.
peripy.peridynamics.update_displacement()

Update the displacement of each node for each node using an Euler integrator.

Parameters:
  • u (numpy.ndarray) – The current displacements of each node.
  • bc_values (numpy.ndarray) – An (n,3) array of the boundary condition values.
  • bc_types (numpy.ndarray) – An (n,3) array of the boundary condition types, where a zero value represents an unconstrained node.
  • force (numpy.ndarray) – The force due to bonds on each node.
  • bc_scale (float) – The scalar value applied to the displacement boundary conditions.
  • dt (float) – The length of the timestep in seconds.