EquationOfState

Struct EquationOfState 

Source
pub struct EquationOfState<I, R> {
    pub ideal_gas: I,
    pub residual: R,
}
Expand description

An equation of state consisting of an ideal gas model and a residual Helmholtz energy model.

Fields§

§ideal_gas: I§residual: R

Implementations§

Source§

impl<I, R> EquationOfState<I, R>

Source

pub fn new(ideal_gas: I, residual: R) -> Self

Return a new EquationOfState with the given ideal gas and residual models.

Source§

impl<I> EquationOfState<Vec<I>, NoResidual>

Source

pub fn ideal_gas(ideal_gas: Vec<I>) -> Self

Return a new EquationOfState that only consists of an ideal gas models.

Trait Implementations§

Source§

impl<I: Clone, R: Clone> Clone for EquationOfState<I, R>

Source§

fn clone(&self) -> EquationOfState<I, R>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<I, R> Deref for EquationOfState<I, R>

Source§

type Target = R

The resulting type after dereferencing.
Source§

fn deref(&self) -> &R

Dereferences the value.
Source§

impl<I: Clone, R: Residual<Const<N>, D>, D: DualNum<f64> + Copy, const N: usize> Residual<Const<N>, D> for EquationOfState<[I; N], R>

Source§

type Real = EquationOfState<[I; N], <R as Residual<Const<N>, D>>::Real>

The residual model with only the real parts of the model parameters.
Source§

type Lifted<D2: DualNum<f64, Inner = D> + Copy> = EquationOfState<[I; N], <R as Residual<Const<N>, D>>::Lifted<D2>>

The residual model with the model parameters lifted to a higher dual number.
Source§

fn components(&self) -> usize

Return the number of components in the system.
Source§

fn re(&self) -> Self::Real

Return the real part of the residual model.
Source§

fn lift<D2: DualNum<f64, Inner = D> + Copy>(&self) -> Self::Lifted<D2>

Return the lifted residual model.
Source§

fn compute_max_density(&self, molefracs: &SVector<D, N>) -> D

Return the maximum density in Angstrom^-3. Read more
Source§

fn reduced_helmholtz_energy_density_contributions( &self, state: &StateHD<D, Const<N>>, ) -> Vec<(&'static str, D)>

Evaluate the reduced Helmholtz energy density of each individual contribution and return them together with a string representation of the contribution.
Source§

fn reduced_residual_helmholtz_energy_density( &self, state: &StateHD<D, Const<N>>, ) -> D

Evaluate the residual reduced Helmholtz energy density $\beta f^\mathrm{res}$.
Source§

fn pure_molefracs() -> OVector<D, N>

Return a generic composition vector for a pure component. Read more
Source§

fn molar_helmholtz_energy_contributions( &self, temperature: D, molar_volume: D, molefracs: &OVector<D, N>, ) -> Vec<(&'static str, D)>

Evaluate the molar Helmholtz energy of each individual contribution and return them together with a string representation of the contribution.
Source§

fn residual_molar_helmholtz_energy( &self, temperature: D, molar_volume: D, molefracs: &OVector<D, N>, ) -> D

Evaluate the residual molar Helmholtz energy $a^\mathrm{res}$.
Source§

fn residual_helmholtz_energy( &self, temperature: D, volume: D, moles: &OVector<D, N>, ) -> D

Evaluate the residual Helmholtz energy $A^\mathrm{res}$.
Source§

fn residual_helmholtz_energy_unit( &self, temperature: Temperature<D>, volume: Volume<D>, moles: &Moles<OVector<D, N>>, ) -> Energy<D>

Evaluate the residual Helmholtz energy $A^\mathrm{res}$.
Source§

fn validate_molefracs( &self, molefracs: &Option<OVector<D, N>>, ) -> FeosResult<OVector<D, N>>

Check if the provided optional molar concentration is consistent with the equation of state. Read more
Source§

fn max_density( &self, molefracs: &Option<OVector<D, N>>, ) -> FeosResult<Density<D>>

Calculate the maximum density. Read more
Source§

fn second_virial_coefficient( &self, temperature: Temperature<D>, molefracs: &Option<OVector<D, N>>, ) -> MolarVolume<D>

Calculate the second virial coefficient $B(T)$
Source§

fn third_virial_coefficient( &self, temperature: Temperature<D>, molefracs: &Option<OVector<D, N>>, ) -> Quot<MolarVolume<D>, Density<D>>

Calculate the third virial coefficient $C(T)$
Source§

fn second_virial_coefficient_temperature_derivative( &self, temperature: Temperature<D>, molefracs: &Option<OVector<D, N>>, ) -> Quot<MolarVolume<D>, Temperature<D>>

Calculate the temperature derivative of the second virial coefficient $B’(T)$
Source§

fn third_virial_coefficient_temperature_derivative( &self, temperature: Temperature<D>, molefracs: &Option<OVector<D, N>>, ) -> Quot<Quot<MolarVolume<D>, Density<D>>, Temperature<D>>

Calculate the temperature derivative of the third virial coefficient $C’(T)$
Source§

fn p_dpdrho( &self, temperature: D, density: D, molefracs: &OVector<D, N>, ) -> (D, D, D)

calculates a_res, p, dp_drho
Source§

fn p_dpdrho_d2pdrho2( &self, temperature: D, density: D, molefracs: &OVector<D, N>, ) -> (D, D, D)

calculates p, dp_drho, d2p_drho2
Source§

fn dmu_drho( &self, temperature: D, partial_density: &OVector<D, N>, ) -> (D, OVector<D, N>, OVector<D, N>, OMatrix<D, N, N>)

calculates p, mu_res, dp_drho, dmu_drho
Source§

fn dmu_dv( &self, temperature: D, molar_volume: D, molefracs: &OVector<D, N>, ) -> (D, OVector<D, N>, D, OVector<D, N>)
where N: Gradients,

calculates p, mu_res, dp_dv, dmu_dv
Source§

fn dmu_dt( &self, temperature: D, partial_density: &OVector<D, N>, ) -> (D, OVector<D, N>)
where N: Gradients,

calculates dp_dt, dmu_res_dt
Source§

impl<I, R: ResidualDyn> ResidualDyn for EquationOfState<Vec<I>, R>

Source§

fn components(&self) -> usize

Return the number of components in the system.
Source§

fn compute_max_density<D: DualNum<f64> + Copy>( &self, molefracs: &DVector<D>, ) -> D

Return the maximum density in Angstrom^-3. Read more
Source§

fn reduced_helmholtz_energy_density_contributions<D: DualNum<f64> + Copy>( &self, state: &StateHD<D>, ) -> Vec<(&'static str, D)>

Evaluate the reduced Helmholtz energy density of each individual contribution and return them together with a string representation of the contribution.
Source§

impl<I: Clone, R: Subset> Subset for EquationOfState<Vec<I>, R>

Source§

fn subset(&self, component_list: &[usize]) -> Self

Return a model consisting of the components contained in component_list.
Source§

impl<I: IdealGas<D> + Clone, R: Residual<Const<N>, D>, D: DualNum<f64> + Copy, const N: usize> Total<Const<N>, D> for EquationOfState<[I; N], R>

Source§

type IdealGas = I

Source§

fn ideal_gas_model(&self) -> &'static str

Source§

fn ideal_gas(&self) -> impl Iterator<Item = &Self::IdealGas>

Source§

fn ln_lambda3<D2: DualNum<f64, Inner = D> + Copy>( &self, temperature: D2, ) -> OVector<D2, N>

Source§

fn ideal_gas_molar_helmholtz_energy<D2: DualNum<f64, Inner = D> + Copy>( &self, temperature: D2, molar_volume: D2, molefracs: &OVector<D2, N>, ) -> D2

Source§

fn ideal_gas_helmholtz_energy<D2: DualNum<f64, Inner = D> + Copy>( &self, temperature: Temperature<D2>, volume: Volume<D2>, moles: &Moles<OVector<D2, N>>, ) -> Energy<D2>

Auto Trait Implementations§

§

impl<I, R> Freeze for EquationOfState<I, R>
where I: Freeze, R: Freeze,

§

impl<I, R> RefUnwindSafe for EquationOfState<I, R>

§

impl<I, R> Send for EquationOfState<I, R>
where I: Send, R: Send,

§

impl<I, R> Sync for EquationOfState<I, R>
where I: Sync, R: Sync,

§

impl<I, R> Unpin for EquationOfState<I, R>
where I: Unpin, R: Unpin,

§

impl<I, R> UnwindSafe for EquationOfState<I, R>
where I: UnwindSafe, R: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<C, T, N, D> EntropyScaling<N, D> for C
where C: Deref<Target = T>, T: EntropyScaling<N, D>, N: Dim, D: DualNum<f64> + Copy, DefaultAllocator: Allocator<N>,

Source§

fn viscosity_reference( &self, temperature: Quantity<D, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, ATerm>>>>>>>>, volume: Quantity<D, <<TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>> as Add>::Output as Add<TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>>>>::Output>, moles: &Quantity<Matrix<D, N, Const<1>, <DefaultAllocator as Allocator<N>>::Buffer<D>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, ATerm>>>>>>>>, ) -> Quantity<D, <<<<TArr<Z0, TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>> as Add<<<TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>> as Sub<TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>>>>::Output as Sub<TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>>>>::Output>>::Output as Add<TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>>>>::Output as Sub<<<TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>> as Add>::Output as Add<TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>>>>::Output>>::Output as Add<TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>>>>::Output>

Source§

fn viscosity_correlation( &self, s_res: D, x: &Matrix<D, N, Const<1>, <DefaultAllocator as Allocator<N>>::Buffer<D>>, ) -> D

Source§

fn diffusion_reference( &self, temperature: Quantity<D, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, ATerm>>>>>>>>, volume: Quantity<D, <<TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>> as Add>::Output as Add<TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>>>>::Output>, moles: &Quantity<Matrix<D, N, Const<1>, <DefaultAllocator as Allocator<N>>::Buffer<D>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, ATerm>>>>>>>>, ) -> Quantity<D, <<TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>> as Sub<TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>>>>::Output as Add<TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>>>>::Output>

Source§

fn diffusion_correlation( &self, s_res: D, x: &Matrix<D, N, Const<1>, <DefaultAllocator as Allocator<N>>::Buffer<D>>, ) -> D

Source§

fn thermal_conductivity_reference( &self, temperature: Quantity<D, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, ATerm>>>>>>>>, volume: Quantity<D, <<TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>> as Add>::Output as Add<TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>>>>::Output>, moles: &Quantity<Matrix<D, N, Const<1>, <DefaultAllocator as Allocator<N>>::Buffer<D>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, ATerm>>>>>>>>, ) -> Quantity<D, <<<<TArr<Z0, TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>> as Add<<<TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>> as Sub<TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>>>>::Output as Sub<TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>>>>::Output>>::Output as Add<TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>>>>::Output as Sub<TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>>>>::Output as Sub<<TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, ATerm>>>>>>> as Add<TArr<Z0, TArr<Z0, TArr<Z0, TArr<Z0, TArr<PInt<UInt<UTerm, B1>>, TArr<Z0, TArr<Z0, ATerm>>>>>>>>>::Output>>::Output>

Source§

fn thermal_conductivity_correlation( &self, s_res: D, x: &Matrix<D, N, Const<1>, <DefaultAllocator as Allocator<N>>::Buffer<D>>, ) -> D

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<C, T, N, D> Molarweight<N, D> for C
where C: Deref<Target = T>, T: Molarweight<N, D>, N: Dim, D: DualNum<f64> + Copy, DefaultAllocator: Allocator<N>,

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PropertiesAD for T

Source§

fn vapor_pressure<const P: usize>( &self, temperature: Temperature, ) -> FeosResult<Pressure<DualSVec<f64, f64, P>>>
where Self: Residual<U1, DualSVec<f64, f64, P>>,

Source§

fn equilibrium_liquid_density<const P: usize>( &self, temperature: Temperature, ) -> FeosResult<(Pressure<DualSVec<f64, f64, P>>, Density<DualSVec<f64, f64, P>>)>
where Self: Residual<U1, DualSVec<f64, f64, P>>,

Source§

fn liquid_density<const P: usize>( &self, temperature: Temperature, pressure: Pressure, ) -> FeosResult<Density<DualSVec<f64, f64, P>>>
where Self: Residual<U1, DualSVec<f64, f64, P>>,

Source§

fn vapor_pressure_parallel<const P: usize>( parameter_names: [String; P], parameters: ArrayView2<'_, f64>, input: ArrayView2<'_, f64>, ) -> (Array1<f64>, Array2<f64>, Array1<bool>)
where Self: ParametersAD<1>,

Source§

fn liquid_density_parallel<const P: usize>( parameter_names: [String; P], parameters: ArrayView2<'_, f64>, input: ArrayView2<'_, f64>, ) -> (Array1<f64>, Array2<f64>, Array1<bool>)
where Self: ParametersAD<1>,

Source§

fn equilibrium_liquid_density_parallel<const P: usize>( parameter_names: [String; P], parameters: ArrayView2<'_, f64>, input: ArrayView2<'_, f64>, ) -> (Array1<f64>, Array2<f64>, Array1<bool>)
where Self: ParametersAD<1>,

Source§

fn bubble_point_pressure<const P: usize>( &self, temperature: Temperature, pressure: Option<Pressure>, liquid_molefracs: SVector<f64, 2>, ) -> FeosResult<Pressure<DualSVec<f64, f64, P>>>
where Self: Residual<U2, DualSVec<f64, f64, P>>,

Source§

fn dew_point_pressure<const P: usize>( &self, temperature: Temperature, pressure: Option<Pressure>, vapor_molefracs: SVector<f64, 2>, ) -> FeosResult<Pressure<DualSVec<f64, f64, P>>>
where Self: Residual<U2, DualSVec<f64, f64, P>>,

Source§

fn bubble_point_pressure_parallel<const P: usize>( parameter_names: [String; P], parameters: ArrayView2<'_, f64>, input: ArrayView2<'_, f64>, ) -> (Array1<f64>, Array2<f64>, Array1<bool>)
where Self: ParametersAD<2>,

Source§

fn dew_point_pressure_parallel<const P: usize>( parameter_names: [String; P], parameters: ArrayView2<'_, f64>, input: ArrayView2<'_, f64>, ) -> (Array1<f64>, Array2<f64>, Array1<bool>)
where Self: ParametersAD<2>,

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<C, T, D> Residual<Dyn, D> for C
where C: Deref<Target = T> + Clone, T: ResidualDyn, D: DualNum<f64> + Copy,

Source§

type Real = C

The residual model with only the real parts of the model parameters.
Source§

type Lifted<D2: DualNum<f64, Inner = D> + Copy> = C

The residual model with the model parameters lifted to a higher dual number.
Source§

fn re(&self) -> <C as Residual<Dyn, D>>::Real

Return the real part of the residual model.
Source§

fn lift<D2>(&self) -> <C as Residual<Dyn, D>>::Lifted<D2>
where D2: DualNum<f64, Inner = D> + Copy,

Return the lifted residual model.
Source§

fn components(&self) -> usize

Return the number of components in the system.
Source§

fn compute_max_density( &self, molefracs: &Matrix<D, Dyn, Const<1>, VecStorage<D, Dyn, Const<1>>>, ) -> D

Return the maximum density in Angstrom^-3. Read more
Source§

fn reduced_helmholtz_energy_density_contributions( &self, state: &StateHD<D>, ) -> Vec<(&'static str, D)>

Evaluate the reduced Helmholtz energy density of each individual contribution and return them together with a string representation of the contribution.
Source§

fn pure_molefracs() -> OVector<D, N>

Return a generic composition vector for a pure component. Read more
Source§

fn reduced_residual_helmholtz_energy_density(&self, state: &StateHD<D, N>) -> D

Evaluate the residual reduced Helmholtz energy density $\beta f^\mathrm{res}$.
Source§

fn molar_helmholtz_energy_contributions( &self, temperature: D, molar_volume: D, molefracs: &OVector<D, N>, ) -> Vec<(&'static str, D)>

Evaluate the molar Helmholtz energy of each individual contribution and return them together with a string representation of the contribution.
Source§

fn residual_molar_helmholtz_energy( &self, temperature: D, molar_volume: D, molefracs: &OVector<D, N>, ) -> D

Evaluate the residual molar Helmholtz energy $a^\mathrm{res}$.
Source§

fn residual_helmholtz_energy( &self, temperature: D, volume: D, moles: &OVector<D, N>, ) -> D

Evaluate the residual Helmholtz energy $A^\mathrm{res}$.
Source§

fn residual_helmholtz_energy_unit( &self, temperature: Temperature<D>, volume: Volume<D>, moles: &Moles<OVector<D, N>>, ) -> Energy<D>

Evaluate the residual Helmholtz energy $A^\mathrm{res}$.
Source§

fn validate_molefracs( &self, molefracs: &Option<OVector<D, N>>, ) -> FeosResult<OVector<D, N>>

Check if the provided optional molar concentration is consistent with the equation of state. Read more
Source§

fn max_density( &self, molefracs: &Option<OVector<D, N>>, ) -> FeosResult<Density<D>>

Calculate the maximum density. Read more
Source§

fn second_virial_coefficient( &self, temperature: Temperature<D>, molefracs: &Option<OVector<D, N>>, ) -> MolarVolume<D>

Calculate the second virial coefficient $B(T)$
Source§

fn third_virial_coefficient( &self, temperature: Temperature<D>, molefracs: &Option<OVector<D, N>>, ) -> Quot<MolarVolume<D>, Density<D>>

Calculate the third virial coefficient $C(T)$
Source§

fn second_virial_coefficient_temperature_derivative( &self, temperature: Temperature<D>, molefracs: &Option<OVector<D, N>>, ) -> Quot<MolarVolume<D>, Temperature<D>>

Calculate the temperature derivative of the second virial coefficient $B’(T)$
Source§

fn third_virial_coefficient_temperature_derivative( &self, temperature: Temperature<D>, molefracs: &Option<OVector<D, N>>, ) -> Quot<Quot<MolarVolume<D>, Density<D>>, Temperature<D>>

Calculate the temperature derivative of the third virial coefficient $C’(T)$
Source§

fn p_dpdrho( &self, temperature: D, density: D, molefracs: &OVector<D, N>, ) -> (D, D, D)

calculates a_res, p, dp_drho
Source§

fn p_dpdrho_d2pdrho2( &self, temperature: D, density: D, molefracs: &OVector<D, N>, ) -> (D, D, D)

calculates p, dp_drho, d2p_drho2
Source§

fn dmu_drho( &self, temperature: D, partial_density: &OVector<D, N>, ) -> (D, OVector<D, N>, OVector<D, N>, OMatrix<D, N, N>)

calculates p, mu_res, dp_drho, dmu_drho
Source§

fn dmu_dv( &self, temperature: D, molar_volume: D, molefracs: &OVector<D, N>, ) -> (D, OVector<D, N>, D, OVector<D, N>)
where N: Gradients,

calculates p, mu_res, dp_dv, dmu_dv
Source§

fn dmu_dt( &self, temperature: D, partial_density: &OVector<D, N>, ) -> (D, OVector<D, N>)
where N: Gradients,

calculates dp_dt, dmu_res_dt
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

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

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<I, C, R> Total for C
where I: IdealGas + Clone + 'static, C: Deref<Target = EquationOfState<Vec<I>, R>> + Clone, R: ResidualDyn + 'static,

Source§

type IdealGas = I

Source§

fn ideal_gas_model(&self) -> &'static str

Source§

fn ideal_gas(&self) -> impl Iterator<Item = &<C as Total>::IdealGas>

Source§

fn ln_lambda3<D2: DualNum<f64, Inner = D> + Copy>( &self, temperature: D2, ) -> OVector<D2, N>

Source§

fn ideal_gas_molar_helmholtz_energy<D2: DualNum<f64, Inner = D> + Copy>( &self, temperature: D2, molar_volume: D2, molefracs: &OVector<D2, N>, ) -> D2

Source§

fn ideal_gas_helmholtz_energy<D2: DualNum<f64, Inner = D> + Copy>( &self, temperature: Temperature<D2>, volume: Volume<D2>, moles: &Moles<OVector<D2, N>>, ) -> Energy<D2>

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.