jaxdem.bonded_forces.plastic_bending_deformable_particle#
Implementation of the deformable particle model with plastic bending angles.
Classes
|
Deformable particle model with plastic bending angles. |
- class jaxdem.bonded_forces.plastic_bending_deformable_particle.PlasticBendingDeformableParticleModel(elements: Array | None, edges: Array | None, element_adjacency: Array | None, element_adjacency_edges: Array | None, elements_id: Array | None, initial_body_contents: Array | None, initial_element_measures: Array | None, initial_edge_lengths: Array | None, initial_bendings: Array | None, w_b: Array | None, em: Array | None, ec: Array | None, eb: Array | None, el: Array | None, gamma: Array | None, tau_s: Array | None = None)#
Bases:
DeformableParticleModelDeformable particle model with plastic bending angles.
Elastic forces are identical to
DeformableParticleModel(individual edge springs, measure, content, bending, and surface-tension terms are all preserved; see its docstring for the full energy definition and shape conventions). The only difference is in the plastic update rule for the reference bending angles.Instead of relaxing each edge rest length (as in
PlasticDeformableParticleModel), the reference bending angle of each adjacency relaxes toward the current bending angle:\[\theta_{a,0}(t+dt) = \theta_{a,0}(t) + \frac{1}{\tau_{s,a}} (\theta_a(t) - \theta_{a,0}(t))\,dt\]where \(\theta_{a,0}\) is the reference (rest) bending angle (
initial_bendings), \(\theta_a\) is the current bending angle, \(\tau_{s,a}\) is the relaxation time (tau_s), and \(dt\) is the simulation time step.Shapes (see
DeformableParticleModelfor definitions of K, M, E, A):tau_s:(A,)— one relaxation time per adjacency (bending hinge).
- tau_s: Array | None#
(A,).
- Type:
Plastic relaxation time for each adjacency (bending hinge). Shape
- classmethod Create(*, vertices: Array | ndarray | bool | number | bool | int | float | complex | None = None, elements: Array | ndarray | bool | number | bool | int | float | complex | None = None, edges: Array | ndarray | bool | number | bool | int | float | complex | None = None, element_adjacency: Array | ndarray | bool | number | bool | int | float | complex | None = None, element_adjacency_edges: Array | ndarray | bool | number | bool | int | float | complex | None = None, elements_id: Array | ndarray | bool | number | bool | int | float | complex | None = None, initial_body_contents: Array | ndarray | bool | number | bool | int | float | complex | None = None, initial_element_measures: Array | ndarray | bool | number | bool | int | float | complex | None = None, initial_edge_lengths: Array | ndarray | bool | number | bool | int | float | complex | None = None, initial_bendings: Array | ndarray | bool | number | bool | int | float | complex | None = None, em: Array | ndarray | bool | number | bool | int | float | complex | None = None, ec: Array | ndarray | bool | number | bool | int | float | complex | None = None, eb: Array | ndarray | bool | number | bool | int | float | complex | None = None, el: Array | ndarray | bool | number | bool | int | float | complex | None = None, gamma: Array | ndarray | bool | number | bool | int | float | complex | None = None, tau_s: Array | ndarray | bool | number | bool | int | float | complex | None = None, w_b: Array | ndarray | bool | number | bool | int | float | complex | None = None) Self[source]#
- update_reference_state(pos: jax.Array, state: State, system: System) DeformableParticleModel[source]#
Relax each reference bending angle toward the current bending angle.