use crate::geometry::{HGrid, HGridEntry};
use crate::math::Real;
use crate::object::{BoundarySet, Fluid};
use crate::TimestepManager;
pub trait CouplingManager {
fn update_boundaries(
&mut self,
timestep: &TimestepManager,
h: Real,
particle_radius: Real,
hgrid: &HGrid<HGridEntry>,
fluids: &mut [Fluid],
boundaries: &mut BoundarySet,
);
fn transmit_forces(&mut self, timestep: &TimestepManager, boundaries: &BoundarySet);
}
impl CouplingManager for () {
fn update_boundaries(
&mut self,
_: &TimestepManager,
_: Real,
_: Real,
_: &HGrid<HGridEntry>,
_: &mut [Fluid],
_: &mut BoundarySet,
) {
}
fn transmit_forces(&mut self, _: &TimestepManager, _: &BoundarySet) {}
}