pub struct StateAD<'a, E: ParametersAD, D: DualNum<f64> + Copy, const N: usize> {
pub eos: &'a HelmholtzEnergyWrapper<E, D, N>,
pub temperature: Temperature<D>,
pub molar_volume: MolarVolume<D>,
pub molefracs: SVector<D, N>,
pub reduced_temperature: D,
pub reduced_molar_volume: D,
}Expand description
An (intensive) thermodynamic state representing a single phase.
Fields§
§eos: &'a HelmholtzEnergyWrapper<E, D, N>§temperature: Temperature<D>§molar_volume: MolarVolume<D>§molefracs: SVector<D, N>§reduced_temperature: D§reduced_molar_volume: DImplementations§
Source§impl<'a, R: ResidualHelmholtzEnergy<N>, D: DualNum<f64> + Copy, const N: usize> StateAD<'a, R, D, N>
impl<'a, R: ResidualHelmholtzEnergy<N>, D: DualNum<f64> + Copy, const N: usize> StateAD<'a, R, D, N>
Sourcepub fn tp_flash(
&self,
) -> EosResult<(PhaseEquilibriumAD<'a, R, D, N>, Dimensionless<D>)>
pub fn tp_flash( &self, ) -> EosResult<(PhaseEquilibriumAD<'a, R, D, N>, Dimensionless<D>)>
Perform a Tp-flash calculation. Returns the PhaseEquilibriumAD and the vapor fraction.
Source§impl<'a, E: ParametersAD, D: DualNum<f64> + Copy, const N: usize> StateAD<'a, E, D, N>
impl<'a, E: ParametersAD, D: DualNum<f64> + Copy, const N: usize> StateAD<'a, E, D, N>
Sourcepub fn new(
eos: &'a HelmholtzEnergyWrapper<E, D, N>,
temperature: D,
molar_volume: D,
molefracs: SVector<D, N>,
) -> Self
pub fn new( eos: &'a HelmholtzEnergyWrapper<E, D, N>, temperature: D, molar_volume: D, molefracs: SVector<D, N>, ) -> Self
Crate a state from its thermodynamic variables (temperature, molar volume, composition)
Source§impl<'a, E: ResidualHelmholtzEnergy<N>, D: DualNum<f64> + Copy, const N: usize> StateAD<'a, E, D, N>
impl<'a, E: ResidualHelmholtzEnergy<N>, D: DualNum<f64> + Copy, const N: usize> StateAD<'a, E, D, N>
Sourcepub fn new_tp(
eos: &'a HelmholtzEnergyWrapper<E, D, N>,
temperature: Temperature<D>,
pressure: Pressure<D>,
molefracs: SVector<D, N>,
density_initialization: DensityInitialization,
) -> EosResult<Self>
pub fn new_tp( eos: &'a HelmholtzEnergyWrapper<E, D, N>, temperature: Temperature<D>, pressure: Pressure<D>, molefracs: SVector<D, N>, density_initialization: DensityInitialization, ) -> EosResult<Self>
Calculate a state from given temperature, pressure and composition.
pub fn pressure(&self) -> Pressure<D>
Source§impl<'a, E: TotalHelmholtzEnergy<N>, D: DualNum<f64> + Copy, const N: usize> StateAD<'a, E, D, N>
impl<'a, E: TotalHelmholtzEnergy<N>, D: DualNum<f64> + Copy, const N: usize> StateAD<'a, E, D, N>
Sourcepub fn new_ps(
eos: &'a HelmholtzEnergyWrapper<E, D, N>,
pressure: Pressure<D>,
molar_entropy: MolarEntropy<D>,
molefracs: SVector<D, N>,
density_initialization: DensityInitialization,
initial_temperature: Option<Temperature>,
) -> EosResult<Self>
pub fn new_ps( eos: &'a HelmholtzEnergyWrapper<E, D, N>, pressure: Pressure<D>, molar_entropy: MolarEntropy<D>, molefracs: SVector<D, N>, density_initialization: DensityInitialization, initial_temperature: Option<Temperature>, ) -> EosResult<Self>
Calculate a state from given pressure, molar entropy and composition.
Sourcepub fn new_ph(
eos: &'a HelmholtzEnergyWrapper<E, D, N>,
pressure: Pressure<D>,
molar_enthalpy: MolarEnergy<D>,
molefracs: SVector<D, N>,
density_initialization: DensityInitialization,
initial_temperature: Option<Temperature>,
) -> EosResult<Self>
pub fn new_ph( eos: &'a HelmholtzEnergyWrapper<E, D, N>, pressure: Pressure<D>, molar_enthalpy: MolarEnergy<D>, molefracs: SVector<D, N>, density_initialization: DensityInitialization, initial_temperature: Option<Temperature>, ) -> EosResult<Self>
Calculate a state from given pressure, molar enthalpy and composition.
pub fn molar_entropy(&self) -> MolarEntropy<D>
pub fn molar_enthalpy(&self) -> MolarEnergy<D>
pub fn molar_isochoric_heat_capacity(&self) -> MolarEntropy<D>
pub fn molar_isobaric_heat_capacity(&self) -> MolarEntropy<D>
Source§impl<'a, E: ResidualHelmholtzEnergy<1>, D: DualNum<f64> + Copy> StateAD<'a, E, D, 1>
impl<'a, E: ResidualHelmholtzEnergy<1>, D: DualNum<f64> + Copy> StateAD<'a, E, D, 1>
Sourcepub fn critical_point_pure(
eos: &'a HelmholtzEnergyWrapper<E, D, 1>,
) -> EosResult<Self>
pub fn critical_point_pure( eos: &'a HelmholtzEnergyWrapper<E, D, 1>, ) -> EosResult<Self>
Calculate the critical point of a pure component.
Source§impl<'a, E: ResidualHelmholtzEnergy<N>, D: DualNum<f64> + Copy, const N: usize> StateAD<'a, E, D, N>
impl<'a, E: ResidualHelmholtzEnergy<N>, D: DualNum<f64> + Copy, const N: usize> StateAD<'a, E, D, N>
Sourcepub fn critical_point(
eos: &'a HelmholtzEnergyWrapper<E, D, N>,
molefracs: SVector<D, N>,
) -> EosResult<Self>
pub fn critical_point( eos: &'a HelmholtzEnergyWrapper<E, D, N>, molefracs: SVector<D, N>, ) -> EosResult<Self>
Calculate the critical point of a mixture with given composition.
Auto Trait Implementations§
impl<'a, E, D, const N: usize> Freeze for StateAD<'a, E, D, N>where
D: Freeze,
impl<'a, E, D, const N: usize> RefUnwindSafe for StateAD<'a, E, D, N>
impl<'a, E, D, const N: usize> Send for StateAD<'a, E, D, N>
impl<'a, E, D, const N: usize> Sync for StateAD<'a, E, D, N>
impl<'a, E, D, const N: usize> Unpin for StateAD<'a, E, D, N>where
D: Unpin,
impl<'a, E, D, const N: usize> UnwindSafe for StateAD<'a, E, D, N>
Blanket Implementations§
Source§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
Source§fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
Convert the given value into an approximately equivalent representation.
Source§impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
Source§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
The error type produced by a failed conversion.
Source§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
Convert the subject into an approximately equivalent representation.
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
Mutably borrows from an owned value. Read more
Source§impl<T, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
Source§impl<T> ConvUtil for T
impl<T> ConvUtil for T
Source§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
Approximate the subject to a given type with the default scheme.
Source§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
Approximate the subject to a given type with a specific scheme.
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.