pub struct EquationOfState<I, R> {
pub ideal_gas: Arc<I>,
pub residual: Arc<R>,
}
Expand description
An equation of state consisting of an ideal gas model and a residual Helmholtz energy model.
Fields§
§ideal_gas: Arc<I>
§residual: Arc<R>
Implementations§
Source§impl<I, R> EquationOfState<I, R>
impl<I, R> EquationOfState<I, R>
Sourcepub fn new(ideal_gas: Arc<I>, residual: Arc<R>) -> Self
pub fn new(ideal_gas: Arc<I>, residual: Arc<R>) -> Self
Return a new EquationOfState with the given ideal gas and residual models.
Source§impl<I: IdealGas> EquationOfState<I, NoResidual>
impl<I: IdealGas> EquationOfState<I, NoResidual>
Sourcepub fn ideal_gas(ideal_gas: Arc<I>) -> Self
pub fn ideal_gas(ideal_gas: Arc<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>
impl<I: Clone, R: Clone> Clone for EquationOfState<I, R>
Source§fn clone(&self) -> EquationOfState<I, R>
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)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<I: Components, R: Components> Components for EquationOfState<I, R>
impl<I: Components, R: Components> Components for EquationOfState<I, R>
Source§impl<I: IdealGas, R: Residual + EntropyScaling> EntropyScaling for EquationOfState<I, R>
impl<I: IdealGas, R: Residual + EntropyScaling> EntropyScaling for EquationOfState<I, R>
fn viscosity_reference( &self, temperature: Temperature, volume: Volume, moles: &Moles<Array1<f64>>, ) -> EosResult<Viscosity>
fn viscosity_correlation(&self, s_res: f64, x: &Array1<f64>) -> EosResult<f64>
fn diffusion_reference( &self, temperature: Temperature, volume: Volume, moles: &Moles<Array1<f64>>, ) -> EosResult<Diffusivity>
fn diffusion_correlation(&self, s_res: f64, x: &Array1<f64>) -> EosResult<f64>
fn thermal_conductivity_reference( &self, temperature: Temperature, volume: Volume, moles: &Moles<Array1<f64>>, ) -> EosResult<ThermalConductivity>
fn thermal_conductivity_correlation( &self, s_res: f64, x: &Array1<f64>, ) -> EosResult<f64>
Source§impl<I: IdealGas, R: Components + Sync + Send> IdealGas for EquationOfState<I, R>
impl<I: IdealGas, R: Components + Sync + Send> IdealGas for EquationOfState<I, R>
Source§fn ln_lambda3<D: DualNum<f64> + Copy>(&self, temperature: D) -> Array1<D>
fn ln_lambda3<D: DualNum<f64> + Copy>(&self, temperature: D) -> Array1<D>
Implementation of an ideal gas model in terms of the
logarithm of the cubic thermal de Broglie wavelength
in units ln(A³) for each component in the system.
Source§fn ideal_gas_model(&self) -> String
fn ideal_gas_model(&self) -> String
Short description (usually the name) of the model.
Source§impl<I, R: Molarweight> Molarweight for EquationOfState<I, R>
impl<I, R: Molarweight> Molarweight for EquationOfState<I, R>
fn molar_weight(&self) -> MolarWeight<Array1<f64>>
Source§impl<I: IdealGas, R: Residual> Residual for EquationOfState<I, R>
impl<I: IdealGas, R: Residual> Residual for EquationOfState<I, R>
Source§fn compute_max_density(&self, moles: &Array1<f64>) -> f64
fn compute_max_density(&self, moles: &Array1<f64>) -> f64
Return the maximum density in Angstrom^-3. Read more
Source§fn residual_helmholtz_energy_contributions<D: DualNum<f64> + Copy + ScalarOperand>(
&self,
state: &StateHD<D>,
) -> Vec<(String, D)>
fn residual_helmholtz_energy_contributions<D: DualNum<f64> + Copy + ScalarOperand>( &self, state: &StateHD<D>, ) -> Vec<(String, D)>
Evaluate the reduced Helmholtz energy of each individual contribution
and return them together with a string representation of the contribution.
Source§fn residual_helmholtz_energy<D: DualNum<f64> + Copy + ScalarOperand>(
&self,
state: &StateHD<D>,
) -> D
fn residual_helmholtz_energy<D: DualNum<f64> + Copy + ScalarOperand>( &self, state: &StateHD<D>, ) -> D
Evaluate the residual reduced Helmholtz energy $\beta A^\mathrm{res}$.
Source§fn validate_moles(
&self,
moles: Option<&Moles<Array1<f64>>>,
) -> EosResult<Moles<Array1<f64>>>
fn validate_moles( &self, moles: Option<&Moles<Array1<f64>>>, ) -> EosResult<Moles<Array1<f64>>>
Check if the provided optional mole number is consistent with the
equation of state. Read more
Source§fn max_density(&self, moles: Option<&Moles<Array1<f64>>>) -> EosResult<Density>
fn max_density(&self, moles: Option<&Moles<Array1<f64>>>) -> EosResult<Density>
Calculate the maximum density. Read more
Source§fn second_virial_coefficient(
&self,
temperature: Temperature,
moles: Option<&Moles<Array1<f64>>>,
) -> EosResult<Quot<f64, Density>>
fn second_virial_coefficient( &self, temperature: Temperature, moles: Option<&Moles<Array1<f64>>>, ) -> EosResult<Quot<f64, Density>>
Calculate the second virial coefficient $B(T)$
Source§fn third_virial_coefficient(
&self,
temperature: Temperature,
moles: Option<&Moles<Array1<f64>>>,
) -> EosResult<<<f64 as Div<Density>>::Output as Div<Density>>::Output>
fn third_virial_coefficient( &self, temperature: Temperature, moles: Option<&Moles<Array1<f64>>>, ) -> EosResult<<<f64 as Div<Density>>::Output as Div<Density>>::Output>
Calculate the third virial coefficient $C(T)$
Source§fn second_virial_coefficient_temperature_derivative(
&self,
temperature: Temperature,
moles: Option<&Moles<Array1<f64>>>,
) -> EosResult<<<f64 as Div<Density>>::Output as Div<Temperature>>::Output>
fn second_virial_coefficient_temperature_derivative( &self, temperature: Temperature, moles: Option<&Moles<Array1<f64>>>, ) -> EosResult<<<f64 as Div<Density>>::Output as Div<Temperature>>::Output>
Calculate the temperature derivative of the second virial coefficient $B’(T)$
Source§fn third_virial_coefficient_temperature_derivative(
&self,
temperature: Temperature,
moles: Option<&Moles<Array1<f64>>>,
) -> EosResult<<<<f64 as Div<Density>>::Output as Div<Density>>::Output as Div<Temperature>>::Output>
fn third_virial_coefficient_temperature_derivative( &self, temperature: Temperature, moles: Option<&Moles<Array1<f64>>>, ) -> EosResult<<<<f64 as Div<Density>>::Output as Div<Density>>::Output as Div<Temperature>>::Output>
Calculate the temperature derivative of the third virial coefficient $C’(T)$
Auto Trait Implementations§
impl<I, R> Freeze for EquationOfState<I, R>
impl<I, R> RefUnwindSafe for EquationOfState<I, R>where
I: RefUnwindSafe,
R: RefUnwindSafe,
impl<I, R> Send for EquationOfState<I, R>
impl<I, R> Sync for EquationOfState<I, R>
impl<I, R> Unpin for EquationOfState<I, R>
impl<I, R> UnwindSafe for EquationOfState<I, R>where
I: RefUnwindSafe,
R: RefUnwindSafe,
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
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.