sparkl2d_core/dynamics/models/
failure_model.rs1use crate::dynamics::models::MaximumStressFailure;
2use crate::math::{Matrix, Real};
3
4#[cfg_attr(feature = "cuda", derive(cust_core::DeviceCopy))]
5#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
6#[derive(Copy, Clone, Debug, PartialEq)]
7#[repr(C)]
8pub enum CoreFailureModel {
9 MaximumStress(MaximumStressFailure),
10 Custom(u32),
11}
12
13impl CoreFailureModel {
14 pub fn particle_failed(&self, particle_stress: &Matrix<Real>) -> bool {
15 match self {
16 Self::MaximumStress(m) => m.particle_failed(particle_stress),
17 Self::Custom(_) => false,
18 }
19 }
20}