#[derive(Debug, Clone, Copy)]
pub enum FluidBoundaryCondition {
NoSlip,
FreeSlip,
Periodic,
Inflow(f64, f64),
Outflow,
}
impl FluidBoundaryCondition {
pub fn is_wall(&self) -> bool {
matches!(
self,
FluidBoundaryCondition::NoSlip | FluidBoundaryCondition::FreeSlip
)
}
pub fn requires_velocity(&self) -> bool {
matches!(self, FluidBoundaryCondition::Inflow(_, _))
}
pub fn get_inflow_velocity(&self) -> Option<(f64, f64)> {
match self {
FluidBoundaryCondition::Inflow(u, v) => Some((*u, *v)),
_ => None,
}
}
}
impl Default for FluidBoundaryCondition {
fn default() -> Self {
FluidBoundaryCondition::NoSlip
}
}