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