[−][src]Trait salva2d::solver::NonPressureForce
Trait implemented by non-pressure forces.
This includes all non-pressure forces internal to a same fluid, or acting between a fluid and a boundary.
Required methods
fn solve(
&mut self,
timestep: &TimestepManager<N>,
kernel_radius: N,
fluid_fluid_contacts: &ParticlesContacts<N>,
fluid_boundaries_contacts: &ParticlesContacts<N>,
fluid: &mut Fluid<N>,
boundaries: &[Boundary<N>],
densities: &[N]
)
&mut self,
timestep: &TimestepManager<N>,
kernel_radius: N,
fluid_fluid_contacts: &ParticlesContacts<N>,
fluid_boundaries_contacts: &ParticlesContacts<N>,
fluid: &mut Fluid<N>,
boundaries: &[Boundary<N>],
densities: &[N]
)
Compute and applies the non-pressure forces to the given fluid.
The force application should result in adding accelerations to the
fluid.accelerations
field.
Provided methods
fn apply_permutation(&mut self, _permutation: &[usize])
Apply the given permutation to all relevant field of this non-pressure force.
This is currently not used so it can be left empty.
Implementors
impl<N: RealField> NonPressureForce<N> for Akinci2013SurfaceTension<N>
[src]
fn solve(
&mut self,
_timestep: &TimestepManager<N>,
kernel_radius: N,
fluid_fluid_contacts: &ParticlesContacts<N>,
fluid_boundaries_contacts: &ParticlesContacts<N>,
fluid: &mut Fluid<N>,
boundaries: &[Boundary<N>],
densities: &[N]
)
[src]
&mut self,
_timestep: &TimestepManager<N>,
kernel_radius: N,
fluid_fluid_contacts: &ParticlesContacts<N>,
fluid_boundaries_contacts: &ParticlesContacts<N>,
fluid: &mut Fluid<N>,
boundaries: &[Boundary<N>],
densities: &[N]
)
fn apply_permutation(&mut self, _: &[usize])
[src]
impl<N: RealField> NonPressureForce<N> for ArtificialViscosity<N>
[src]
fn solve(
&mut self,
_timestep: &TimestepManager<N>,
kernel_radius: N,
fluid_fluid_contacts: &ParticlesContacts<N>,
fluid_boundaries_contacts: &ParticlesContacts<N>,
fluid: &mut Fluid<N>,
boundaries: &[Boundary<N>],
densities: &[N]
)
[src]
&mut self,
_timestep: &TimestepManager<N>,
kernel_radius: N,
fluid_fluid_contacts: &ParticlesContacts<N>,
fluid_boundaries_contacts: &ParticlesContacts<N>,
fluid: &mut Fluid<N>,
boundaries: &[Boundary<N>],
densities: &[N]
)
fn apply_permutation(&mut self, _: &[usize])
[src]
impl<N: RealField> NonPressureForce<N> for DFSPHViscosity<N>
[src]
fn solve(
&mut self,
timestep: &TimestepManager<N>,
_kernel_radius: N,
fluid_fluid_contacts: &ParticlesContacts<N>,
_fluid_boundaries_contacts: &ParticlesContacts<N>,
fluid: &mut Fluid<N>,
_boundaries: &[Boundary<N>],
densities: &[N]
)
[src]
&mut self,
timestep: &TimestepManager<N>,
_kernel_radius: N,
fluid_fluid_contacts: &ParticlesContacts<N>,
_fluid_boundaries_contacts: &ParticlesContacts<N>,
fluid: &mut Fluid<N>,
_boundaries: &[Boundary<N>],
densities: &[N]
)
fn apply_permutation(&mut self, _: &[usize])
[src]
impl<N: RealField> NonPressureForce<N> for He2014SurfaceTension<N>
[src]
fn solve(
&mut self,
_timestep: &TimestepManager<N>,
_kernel_radius: N,
fluid_fluid_contacts: &ParticlesContacts<N>,
fluid_boundary_contacts: &ParticlesContacts<N>,
fluid: &mut Fluid<N>,
boundaries: &[Boundary<N>],
densities: &[N]
)
[src]
&mut self,
_timestep: &TimestepManager<N>,
_kernel_radius: N,
fluid_fluid_contacts: &ParticlesContacts<N>,
fluid_boundary_contacts: &ParticlesContacts<N>,
fluid: &mut Fluid<N>,
boundaries: &[Boundary<N>],
densities: &[N]
)
fn apply_permutation(&mut self, _: &[usize])
[src]
impl<N: RealField> NonPressureForce<N> for WCSPHSurfaceTension<N>
[src]
fn solve(
&mut self,
_timestep: &TimestepManager<N>,
_kernel_radius: N,
fluid_fluid_contacts: &ParticlesContacts<N>,
_fluid_boundaries_contacts: &ParticlesContacts<N>,
fluid: &mut Fluid<N>,
boundaries: &[Boundary<N>],
_densities: &[N]
)
[src]
&mut self,
_timestep: &TimestepManager<N>,
_kernel_radius: N,
fluid_fluid_contacts: &ParticlesContacts<N>,
_fluid_boundaries_contacts: &ParticlesContacts<N>,
fluid: &mut Fluid<N>,
boundaries: &[Boundary<N>],
_densities: &[N]
)
fn apply_permutation(&mut self, _: &[usize])
[src]
impl<N: RealField> NonPressureForce<N> for XSPHViscosity<N>
[src]
fn solve(
&mut self,
timestep: &TimestepManager<N>,
_kernel_radius: N,
fluid_fluid_contacts: &ParticlesContacts<N>,
fluid_boundaries_contacts: &ParticlesContacts<N>,
fluid: &mut Fluid<N>,
boundaries: &[Boundary<N>],
densities: &[N]
)
[src]
&mut self,
timestep: &TimestepManager<N>,
_kernel_radius: N,
fluid_fluid_contacts: &ParticlesContacts<N>,
fluid_boundaries_contacts: &ParticlesContacts<N>,
fluid: &mut Fluid<N>,
boundaries: &[Boundary<N>],
densities: &[N]
)
fn apply_permutation(&mut self, _: &[usize])
[src]
impl<N: RealField, KernelDensity: Kernel, KernelGradient: Kernel> NonPressureForce<N> for Becker2009Elasticity<N, KernelDensity, KernelGradient>
[src]
fn solve(
&mut self,
_timestep: &TimestepManager<N>,
kernel_radius: N,
_fluid_fluid_contacts: &ParticlesContacts<N>,
_fluid_boundaries_contacts: &ParticlesContacts<N>,
fluid: &mut Fluid<N>,
_boundaries: &[Boundary<N>],
_densities: &[N]
)
[src]
&mut self,
_timestep: &TimestepManager<N>,
kernel_radius: N,
_fluid_fluid_contacts: &ParticlesContacts<N>,
_fluid_boundaries_contacts: &ParticlesContacts<N>,
fluid: &mut Fluid<N>,
_boundaries: &[Boundary<N>],
_densities: &[N]
)