Struct feos_core::PhaseEquilibrium
source · [−]pub struct PhaseEquilibrium<U, E, const N: usize>(_);
Expand description
A thermodynamic equilibrium state.
The struct is parametrized over the number of phases with most features being implemented for the two phase vapor/liquid or liquid/liquid case.
Contents
Implementations
sourceimpl<U: EosUnit, E: EquationOfState> PhaseEquilibrium<U, E, 2>
impl<U: EosUnit, E: EquationOfState> PhaseEquilibrium<U, E, 2>
sourcepub fn bubble_point(
eos: &Rc<E>,
temperature_or_pressure: QuantityScalar<U>,
liquid_molefracs: &Array1<f64>,
tp_init: Option<QuantityScalar<U>>,
vapor_molefracs: Option<&Array1<f64>>,
options: (SolverOptions, SolverOptions)
) -> EosResult<Self> where
QuantityScalar<U>: Display,
pub fn bubble_point(
eos: &Rc<E>,
temperature_or_pressure: QuantityScalar<U>,
liquid_molefracs: &Array1<f64>,
tp_init: Option<QuantityScalar<U>>,
vapor_molefracs: Option<&Array1<f64>>,
options: (SolverOptions, SolverOptions)
) -> EosResult<Self> where
QuantityScalar<U>: Display,
Calculate a phase equilibrium for a given temperature or pressure and composition of the liquid phase.
sourcepub fn dew_point(
eos: &Rc<E>,
temperature_or_pressure: QuantityScalar<U>,
vapor_molefracs: &Array1<f64>,
tp_init: Option<QuantityScalar<U>>,
liquid_molefracs: Option<&Array1<f64>>,
options: (SolverOptions, SolverOptions)
) -> EosResult<Self> where
QuantityScalar<U>: Display,
pub fn dew_point(
eos: &Rc<E>,
temperature_or_pressure: QuantityScalar<U>,
vapor_molefracs: &Array1<f64>,
tp_init: Option<QuantityScalar<U>>,
liquid_molefracs: Option<&Array1<f64>>,
options: (SolverOptions, SolverOptions)
) -> EosResult<Self> where
QuantityScalar<U>: Display,
Calculate a phase equilibrium for a given temperature or pressure and composition of the vapor phase.
sourceimpl<U: EosUnit, E: EquationOfState> PhaseEquilibrium<U, E, 3> where
QuantityScalar<U>: Display + LowerExp,
impl<U: EosUnit, E: EquationOfState> PhaseEquilibrium<U, E, 3> where
QuantityScalar<U>: Display + LowerExp,
sourcepub fn heteroazeotrope(
eos: &Rc<E>,
temperature_or_pressure: QuantityScalar<U>,
x_init: (f64, f64),
options: SolverOptions,
bubble_dew_options: (SolverOptions, SolverOptions)
) -> EosResult<Self>
pub fn heteroazeotrope(
eos: &Rc<E>,
temperature_or_pressure: QuantityScalar<U>,
x_init: (f64, f64),
options: SolverOptions,
bubble_dew_options: (SolverOptions, SolverOptions)
) -> EosResult<Self>
Calculate a heteroazeotrope (three phase equilbrium) for a binary system and given pressure.
sourceimpl<U: EosUnit, E: EquationOfState> PhaseEquilibrium<U, E, 2>
impl<U: EosUnit, E: EquationOfState> PhaseEquilibrium<U, E, 2>
sourcepub fn tp_flash(
eos: &Rc<E>,
temperature: QuantityScalar<U>,
pressure: QuantityScalar<U>,
feed: &QuantityArray1<U>,
initial_state: Option<&PhaseEquilibrium<U, E, 2>>,
options: SolverOptions,
non_volatile_components: Option<Vec<usize>>
) -> EosResult<Self>
pub fn tp_flash(
eos: &Rc<E>,
temperature: QuantityScalar<U>,
pressure: QuantityScalar<U>,
feed: &QuantityArray1<U>,
initial_state: Option<&PhaseEquilibrium<U, E, 2>>,
options: SolverOptions,
non_volatile_components: Option<Vec<usize>>
) -> EosResult<Self>
Perform a Tp-flash calculation. If no initial values are given, the solution is initialized using a stability analysis.
The algorithm can be use to calculate phase equilibria of systems containing non-volatile components (e.g. ions).
sourceimpl<U: EosUnit, E: EquationOfState> PhaseEquilibrium<U, E, 2>
impl<U: EosUnit, E: EquationOfState> PhaseEquilibrium<U, E, 2>
sourcepub fn pure(
eos: &Rc<E>,
temperature_or_pressure: QuantityScalar<U>,
initial_state: Option<&PhaseEquilibrium<U, E, 2>>,
options: SolverOptions
) -> EosResult<Self> where
QuantityScalar<U>: Display + LowerExp,
pub fn pure(
eos: &Rc<E>,
temperature_or_pressure: QuantityScalar<U>,
initial_state: Option<&PhaseEquilibrium<U, E, 2>>,
options: SolverOptions
) -> EosResult<Self> where
QuantityScalar<U>: Display + LowerExp,
Calculate a phase equilibrium for a pure component.
sourceimpl<U: EosUnit, E: EquationOfState> PhaseEquilibrium<U, E, 2>
impl<U: EosUnit, E: EquationOfState> PhaseEquilibrium<U, E, 2>
sourcepub fn vapor_pressure(
eos: &Rc<E>,
temperature: QuantityScalar<U>
) -> Vec<Option<QuantityScalar<U>>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
where
QuantityScalar<U>: Display + LowerExp,
pub fn vapor_pressure(
eos: &Rc<E>,
temperature: QuantityScalar<U>
) -> Vec<Option<QuantityScalar<U>>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
where
QuantityScalar<U>: Display + LowerExp,
A: Allocator,
Calculate the pure component vapor pressures of all components in the system for the given temperature.
sourcepub fn boiling_temperature(
eos: &Rc<E>,
pressure: QuantityScalar<U>
) -> Vec<Option<QuantityScalar<U>>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
where
QuantityScalar<U>: Display + LowerExp,
pub fn boiling_temperature(
eos: &Rc<E>,
pressure: QuantityScalar<U>
) -> Vec<Option<QuantityScalar<U>>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
where
QuantityScalar<U>: Display + LowerExp,
A: Allocator,
Calculate the pure component boiling temperatures of all components in the system for the given pressure.
sourcepub fn vle_pure_comps(
eos: &Rc<E>,
temperature_or_pressure: QuantityScalar<U>
) -> Vec<Option<PhaseEquilibrium<U, E, 2>>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
where
QuantityScalar<U>: Display + LowerExp,
pub fn vle_pure_comps(
eos: &Rc<E>,
temperature_or_pressure: QuantityScalar<U>
) -> Vec<Option<PhaseEquilibrium<U, E, 2>>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
where
QuantityScalar<U>: Display + LowerExp,
A: Allocator,
Calculate the pure component phase equilibria of all components in the system.
sourceimpl<U, E, const N: usize> PhaseEquilibrium<U, E, N> where
QuantityScalar<U>: Display,
QuantityArray1<U>: Display,
E: EquationOfState,
impl<U, E, const N: usize> PhaseEquilibrium<U, E, N> where
QuantityScalar<U>: Display,
QuantityArray1<U>: Display,
E: EquationOfState,
pub fn _repr_markdown_(&self) -> String
sourceimpl<U: EosUnit, E: EquationOfState> PhaseEquilibrium<U, E, 2>
impl<U: EosUnit, E: EquationOfState> PhaseEquilibrium<U, E, 2>
sourceimpl<U: EosUnit, E: EquationOfState> PhaseEquilibrium<U, E, 3>
impl<U: EosUnit, E: EquationOfState> PhaseEquilibrium<U, E, 3>
sourceimpl<U: EosUnit, E: EquationOfState, const N: usize> PhaseEquilibrium<U, E, N>
impl<U: EosUnit, E: EquationOfState, const N: usize> PhaseEquilibrium<U, E, N>
pub fn update_chemical_potential(
&mut self,
chemical_potential: &QuantityArray1<U>
) -> EosResult<()>
sourceimpl<U: EosUnit, E: EquationOfState> PhaseEquilibrium<U, E, 2>
impl<U: EosUnit, E: EquationOfState> PhaseEquilibrium<U, E, 2>
sourcepub fn is_trivial_solution(state1: &State<U, E>, state2: &State<U, E>) -> bool
pub fn is_trivial_solution(state1: &State<U, E>, state2: &State<U, E>) -> bool
Check if the two states form a trivial solution
Trait Implementations
sourceimpl<U: Clone, E, const N: usize> Clone for PhaseEquilibrium<U, E, N>
impl<U: Clone, E, const N: usize> Clone for PhaseEquilibrium<U, E, N>
sourceimpl<U, E, const N: usize> Display for PhaseEquilibrium<U, E, N> where
QuantityScalar<U>: Display,
QuantityArray1<U>: Display,
E: EquationOfState,
impl<U, E, const N: usize> Display for PhaseEquilibrium<U, E, N> where
QuantityScalar<U>: Display,
QuantityArray1<U>: Display,
E: EquationOfState,
Auto Trait Implementations
impl<U, E, const N: usize> !RefUnwindSafe for PhaseEquilibrium<U, E, N>
impl<U, E, const N: usize> !Send for PhaseEquilibrium<U, E, N>
impl<U, E, const N: usize> !Sync for PhaseEquilibrium<U, E, N>
impl<U, E, const N: usize> Unpin for PhaseEquilibrium<U, E, N> where
U: Unpin,
impl<U, E, const N: usize> UnwindSafe for PhaseEquilibrium<U, E, N> where
E: RefUnwindSafe,
U: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more