1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use crate::prelude::{CorotatedLinearElasticity, MonaghanSphEos, NeoHookeanElasticity};
bitflags::bitflags! {
pub struct ActiveTimestepBounds: u8 {
const NONE = 0;
const CONSTITUTIVE_MODEL_BOUND = 1 << 0;
const PARTICLE_VELOCITY_BOUND = 1 << 1;
const PARTICLE_DISPLACEMENT_BOUND = 1 << 2;
const DEFORMATION_GRADIENT_CHANGE_BOUND = 1 << 3;
const SINGLE_PARTICLE_STABILITY_BOUND = 1 << 4;
}
}
#[cfg_attr(feature = "cuda", derive(cust_core::DeviceCopy))]
#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
#[derive(Copy, Clone, Debug)]
#[repr(C)]
pub enum CoreConstitutiveModel {
CorotatedLinearElasticity(CorotatedLinearElasticity),
NeoHookeanElasticity(NeoHookeanElasticity),
EosMonaghanSph(MonaghanSphEos),
Custom(u32),
}