Struct salva2d::solver::DFSPHSolver
source · pub struct DFSPHSolver<KernelDensity: Kernel = CubicSplineKernel, KernelGradient: Kernel = CubicSplineKernel> {
pub min_pressure_iter: usize,
pub max_pressure_iter: usize,
pub max_density_error: Real,
pub min_divergence_iter: usize,
pub max_divergence_iter: usize,
pub max_divergence_error: Real,
/* private fields */
}
Expand description
A DFSPH (Divergence Free Smoothed Particle Hydrodynamics) pressure solver.
Fields§
§min_pressure_iter: usize
Minimum number of iterations that must be executed for pressure resolution.
max_pressure_iter: usize
Maximum number of iterations that must be executed for pressure resolution.
max_density_error: Real
Maximum acceptable density error (in percents).
The pressure solver will continue iterating until the density error drops bellow this threshold, or until the maximum number of pressure iterations is reached.
min_divergence_iter: usize
Minimum number of iterations that must be executed for divergence resolution.
max_divergence_iter: usize
Maximum number of iterations that must be executed for divergence resolution.
max_divergence_error: Real
Maximum acceptable divergence error (in percents).
The pressure solver will continue iterating until the divergence error drops bellow this threshold, or until the maximum number of pressure iterations is reached.
Implementations§
Trait Implementations§
source§impl<KernelDensity, KernelGradient> PressureSolver for DFSPHSolver<KernelDensity, KernelGradient>
impl<KernelDensity, KernelGradient> PressureSolver for DFSPHSolver<KernelDensity, KernelGradient>
source§fn init_with_fluids(&mut self, fluids: &[Fluid])
fn init_with_fluids(&mut self, fluids: &[Fluid])
source§fn init_with_boundaries(&mut self, _boundaries: &[Boundary])
fn init_with_boundaries(&mut self, _boundaries: &[Boundary])
source§fn predict_advection(
&mut self,
timestep: &TimestepManager,
kernel_radius: Real,
contact_manager: &ContactManager,
gravity: &Vector<Real>,
fluids: &mut [Fluid],
boundaries: &[Boundary]
)
fn predict_advection( &mut self, timestep: &TimestepManager, kernel_radius: Real, contact_manager: &ContactManager, gravity: &Vector<Real>, fluids: &mut [Fluid], boundaries: &[Boundary] )
source§fn evaluate_kernels(
&mut self,
kernel_radius: Real,
contact_manager: &mut ContactManager,
fluids: &[Fluid],
boundaries: &[Boundary]
)
fn evaluate_kernels( &mut self, kernel_radius: Real, contact_manager: &mut ContactManager, fluids: &[Fluid], boundaries: &[Boundary] )
contact_manager
.source§fn compute_densities(
&mut self,
contact_manager: &ContactManager,
fluids: &[Fluid],
boundaries: &mut [Boundary]
)
fn compute_densities( &mut self, contact_manager: &ContactManager, fluids: &[Fluid], boundaries: &mut [Boundary] )
Auto Trait Implementations§
impl<KernelDensity, KernelGradient> RefUnwindSafe for DFSPHSolver<KernelDensity, KernelGradient>where
KernelDensity: RefUnwindSafe,
KernelGradient: RefUnwindSafe,
impl<KernelDensity, KernelGradient> Send for DFSPHSolver<KernelDensity, KernelGradient>
impl<KernelDensity, KernelGradient> Sync for DFSPHSolver<KernelDensity, KernelGradient>
impl<KernelDensity, KernelGradient> Unpin for DFSPHSolver<KernelDensity, KernelGradient>
impl<KernelDensity, KernelGradient> UnwindSafe for DFSPHSolver<KernelDensity, KernelGradient>where
KernelDensity: UnwindSafe,
KernelGradient: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.