use twine_core::TimeIntegrable;
use uom::si::f64::{MassDensity, SpecificHeatCapacity, ThermodynamicTemperature, Time};
use crate::model::incompressible::IncompressibleFluid;
#[derive(Debug, Clone, PartialEq)]
#[non_exhaustive]
pub struct IncompressibleCustom {
pub name: Option<String>,
pub specific_heat: SpecificHeatCapacity,
pub reference_temperature: ThermodynamicTemperature,
pub reference_density: MassDensity,
}
impl IncompressibleFluid for IncompressibleCustom {
fn specific_heat(&self) -> SpecificHeatCapacity {
self.specific_heat
}
fn reference_temperature(&self) -> ThermodynamicTemperature {
self.reference_temperature
}
fn reference_density(&self) -> MassDensity {
self.reference_density
}
}
impl TimeIntegrable for IncompressibleCustom {
type Derivative = ();
fn step(self, _derivative: Self::Derivative, _dt: Time) -> Self {
self
}
}