use crate::CfdScalar;
use crate::solvers::dec::DecNsSolver;
use crate::solvers::dec::step_output::StepOutput;
use crate::traits::Marcher;
use crate::types::Ambient;
use deep_causality_physics::{PhysicsError, SolenoidalField};
impl<'m, const D: usize, R: CfdScalar> Marcher<R> for DecNsSolver<'m, D, R> {
type State = SolenoidalField<R>;
type Ambient = Ambient<R>;
type Output = StepOutput<R>;
fn advance(
&self,
state: &SolenoidalField<R>,
ambient: &Ambient<R>,
) -> Result<StepOutput<R>, PhysicsError> {
self.rate().set_nu(*ambient.nu());
self.step(state)
}
}