Trait ParticleUpdater

Source
pub trait ParticleUpdater {
    // Required methods
    unsafe fn estimate_particle_timestep_length(
        &self,
        cell_width: Real,
        particle_id: u32,
        particle_status: &ParticleStatus,
        particle_volume: &ParticleVolume,
        particle_vel: &ParticleVelocity,
    ) -> (ActiveTimestepBounds, Real);
    unsafe fn update_particle_and_compute_kirchhoff_stress(
        &self,
        dt: Real,
        cell_width: Real,
        colliders: &GpuColliderSet,
        particle_id: u32,
        particle_status: &mut ParticleStatus,
        particle_pos: &mut ParticlePosition,
        particle_vel: &mut ParticleVelocity,
        particle_volume: &mut ParticleVolume,
        particle_phase: &mut ParticlePhase,
        interpolated_data: &mut InterpolatedParticleData,
    ) -> Option<(Matrix<Real>, Vector<Real>)>;

    // Provided method
    fn artificial_pressure_stiffness(&self) -> f32 { ... }
}

Required Methods§

Source

unsafe fn estimate_particle_timestep_length( &self, cell_width: Real, particle_id: u32, particle_status: &ParticleStatus, particle_volume: &ParticleVolume, particle_vel: &ParticleVelocity, ) -> (ActiveTimestepBounds, Real)

Source

unsafe fn update_particle_and_compute_kirchhoff_stress( &self, dt: Real, cell_width: Real, colliders: &GpuColliderSet, particle_id: u32, particle_status: &mut ParticleStatus, particle_pos: &mut ParticlePosition, particle_vel: &mut ParticleVelocity, particle_volume: &mut ParticleVolume, particle_phase: &mut ParticlePhase, interpolated_data: &mut InterpolatedParticleData, ) -> Option<(Matrix<Real>, Vector<Real>)>

Provided Methods§

Implementors§