Sign in

    zhaoyuanjuns/moonbit_extractor/thermo does not have a README file

    ActivityModel

    pub(all) enum ActivityModel {
    ConstantK(k~ : Double)
    Margules(two_sided~ : Double, three_sided~ : Double)
    } derive(Eq, ToJson,
    Debug
    )

    Lightweight activity-coefficient relations for screening non-ideal data.

    ActivityModel::equilibrium

    ActivityPair

    pub(all) struct ActivityPair {
    first_fraction : Double
    second_fraction : Double
    first_coefficient : Double
    second_coefficient : Double
    first_ln_coefficient : Double
    second_ln_coefficient : Double
    excess_gibbs_over_rt : Double
    } derive(Eq, ToJson,
    Debug
    )

    Activity coefficients and excess Gibbs-energy diagnostics for a binary pair.

    AntoineCorrelation

    pub(all) struct AntoineCorrelation {
    component : String
    a : Double
    b : Double
    c : Double
    pressure_unit : String
    } derive(Eq, ToJson,
    Debug
    )

    Auditable property correlations used for preliminary process screening.

    AntoineCorrelation::vapor_pressure

    BinaryEquilibriumPoint

    pub(all) struct BinaryEquilibriumPoint {
    liquid_fraction : Double
    vapor_fraction : Double
    first_k_value : Double
    second_k_value : Double
    bubble_pressure :
    Pressure

    excess_gibbs_energy : Double
    } derive(Eq, ToJson,
    Debug
    )

    A binary equilibrium estimate from activity and vapor-pressure data.

    ComponentProperty

    pub(all) struct ComponentProperty {
    name : String
    molecular_weight : Double
    density : Double
    boiling_temperature : Double
    heat_capacity : Double
    viscosity : Double
    } derive(Eq, ToJson,
    Debug
    )

    DensityCorrelation

    pub(all) struct DensityCorrelation {
    component : String
    reference_temperature : Double
    reference_density : Double
    expansion_coefficient : Double
    } derive(Eq, ToJson,
    Debug
    )

    EnvelopeCurve

    pub(all) struct EnvelopeCurve {
    component : String
    points : Array[EnvelopePoint]
    bubble_pressure : Double
    dew_pressure : Double
    minimum_temperature : Double
    maximum_temperature : Double
    } derive(Eq, ToJson,
    Debug
    )

    EnvelopePoint

    pub(all) struct EnvelopePoint {
    temperature : Double
    pressure : Double
    liquid_fraction : Double
    vapor_fraction : Double
    liquid_composition : Double
    vapor_composition : Double
    k_value : Double
    phase : String
    } derive(Eq, ToJson,
    Debug
    )

    Screening calculations for binary equilibrium envelopes.

    EquilibriumCurve

    pub(all) struct EquilibriumCurve {
    model : ActivityModel
    points : Array[Double]
    values : Array[Double]
    monotone : Bool
    maximum : Double
    } derive(Eq, ToJson,
    Debug
    )

    FlashDiagnostic

    pub(all) struct FlashDiagnostic {
    name : String
    value : Double
    threshold : Double
    passed : Bool
    message : String
    } derive(Eq, ToJson,
    Debug
    )

    Diagnostics for an isothermal flash result.

    FlashResult

    pub(all) struct FlashResult {
    vapor_fraction : Double
    liquid_composition : Array[Double]
    vapor_composition : Array[Double]
    feed_composition : Array[Double]
    rachford_rice_residual : Double
    iterations : Int
    converged : Bool
    } derive(Eq, ToJson,
    Debug
    )

    Flash calculation result for a multicomponent feed.

    FlashSensitivity

    pub(all) struct FlashSensitivity {
    component : Int
    base_fraction : Double
    perturbed_fraction : Double
    change : Double
    normalized_change : Double
    } derive(Eq, ToJson,
    Debug
    )

    MixtureProperty

    pub(all) struct MixtureProperty {
    temperature : Double
    pressure : Double
    composition : Array[Double]
    molecular_weight : Double
    density : Double
    heat_capacity : Double
    viscosity : Double
    boiling_temperature : Double
    } derive(Eq, ToJson,
    Debug
    )

    NonIdealActivityModel

    pub(all) enum NonIdealActivityModel {
    SymmetricMargules(parameter~ : Double)
    TwoSuffixMargules(first_to_second~ : Double, second_to_first~ : Double)
    PolynomialCorrection(first~ : Double, second~ : Double, third~ : Double)
    } derive(Eq, ToJson,
    Debug
    )

    A binary liquid activity model for non-ideal equilibrium screening.

    PhaseEnvelopePoint

    pub(all) struct PhaseEnvelopePoint {
    vapor_fraction : Double
    liquid_composition : Array[Double]
    vapor_composition : Array[Double]
    separation : Double
    } derive(Eq, ToJson,
    Debug
    )

    PropertyPoint

    pub(all) struct PropertyPoint {
    temperature : Double
    pressure : Double
    vapor_pressure : Double
    density : Double
    viscosity : Double
    surface_tension : Double
    } derive(Eq, ToJson,
    Debug
    )

    PropertySensitivity

    pub(all) struct PropertySensitivity {
    component : String
    composition_change : Double
    density_change : Double
    viscosity_change : Double
    boiling_change : Double
    } derive(Eq, ToJson,
    Debug
    )

    TieLine

    pub(all) struct TieLine {
    liquid_composition : Double
    vapor_composition : Double
    temperature : Double
    lever_liquid : Double
    lever_vapor : Double
    separation : Double
    } derive(Eq, ToJson,
    Debug
    )

    VaporPressureCorrelation

    pub(all) struct VaporPressureCorrelation {
    reference_temperature_kelvin : Double
    coefficient_zero : Double
    coefficient_one : Double
    coefficient_two : Double
    coefficient_three : Double
    minimum_temperature_kelvin : Double
    maximum_temperature_kelvin : Double
    pressure_unit :
    PressureUnit

    } derive(Eq, ToJson,
    Debug
    )

    Polynomial vapor-pressure correlation in a bounded temperature range.

    VaporPressureCorrelation::new

    ViscosityCorrelation

    pub(all) struct ViscosityCorrelation {
    component : String
    reference_temperature : Double
    reference_viscosity : Double
    temperature_sensitivity : Double
    } derive(Eq, ToJson,
    Debug
    )

    activity_coefficient

    fn activity_coefficient(model : NonIdealActivityModel, component_fraction~ : Double, component_index~ : Int) -> Double raise
    ExtractionError

    activity_factor

    fn activity_factor(model : ActivityModel, x : Double) -> Double raise
    ExtractionError

    activity_pair

    Evaluate activity coefficients for a binary liquid composition.

    all_components_recovered_above

    fn all_components_recovered_above(result : FlashResult, threshold~ : Double) -> Bool raise
    ExtractionError

    approximate_ten_power

    fn approximate_ten_power(exponent : Double) -> Double

    bubble_pressure

    fn bubble_pressure(liquid_composition : Double, saturation_pressure_one : Double, saturation_pressure_two : Double) -> Double raise
    ExtractionError

    bubble_temperature_estimate

    fn bubble_temperature_estimate(pressure : Double, normal_boiling_one : Double, normal_boiling_two : Double, liquid_composition : Double) -> Double raise
    ExtractionError

    build_envelope

    fn build_envelope(component~ : String, temperatures : ArrayView[Double], pressures : ArrayView[Double], relative_volatility : Double) -> EnvelopeCurve raise
    ExtractionError

    capillary_number

    fn capillary_number(viscosity : Double, velocity : Double, surface_tension : Double) -> Double raise
    ExtractionError

    classify_relative_volatility

    fn classify_relative_volatility(relative_volatility : Double) -> String

    component_contribution

    fn component_contribution(property : ComponentProperty, composition : Double) -> (Double, Double, Double, Double)

    corrected_k_value

    fn corrected_k_value(k_value~ : Double, correction~ : Double) -> Double raise
    ExtractionError

    Apply a pressure correction to a K-value while preserving its sign.

    density_at

    fn density_at(correlation : DensityCorrelation, temperature : Double, pressure_factor : Double) -> Double raise
    ExtractionError

    dew_pressure

    fn dew_pressure(vapor_composition : Double, saturation_pressure_one : Double, saturation_pressure_two : Double) -> Double raise
    ExtractionError

    dew_temperature_estimate

    fn dew_temperature_estimate(pressure : Double, normal_boiling_one : Double, normal_boiling_two : Double, vapor_composition : Double) -> Double raise
    ExtractionError

    envelope_average_temperature

    fn envelope_average_temperature(curve : EnvelopeCurve) -> Double

    envelope_csv

    fn envelope_csv(curve : EnvelopeCurve) -> String

    envelope_filter_phase

    fn envelope_filter_phase(curve : EnvelopeCurve, phase : String) -> Array[EnvelopePoint]

    envelope_markdown

    fn envelope_markdown(curve : EnvelopeCurve) -> String

    envelope_maximum_k

    fn envelope_maximum_k(curve : EnvelopeCurve) -> Double

    envelope_minimum_separation

    fn envelope_minimum_separation(curve : EnvelopeCurve) -> Double

    envelope_points_at_pressure

    fn envelope_points_at_pressure(curve : EnvelopeCurve, pressure : Double, tolerance : Double) -> Array[EnvelopePoint]

    envelope_points_at_temperature

    fn envelope_points_at_temperature(curve : EnvelopeCurve, temperature : Double, tolerance : Double) -> Array[EnvelopePoint]

    envelope_recovery_factor

    fn envelope_recovery_factor(curve : EnvelopeCurve, target_separation : Double) -> Double

    equilibrium_k_value

    fn equilibrium_k_value(relative_volatility : Double, composition : Double) -> Double raise
    ExtractionError

    excess_gibbs_energy

    flash_component_recovery

    fn flash_component_recovery(result : FlashResult, component : Int) -> Double raise
    ExtractionError

    flash_component_split

    fn flash_component_split(result : FlashResult, component : Int) -> Double raise
    ExtractionError

    flash_diagnostics

    fn flash_diagnostics(result : FlashResult, composition_tolerance? : Double) -> Array[FlashDiagnostic] raise
    ExtractionError

    flash_envelope

    fn flash_envelope(feed : ArrayView[Double], k_values : ArrayView[Double], vapor_fractions : ArrayView[Double]) -> Array[PhaseEnvelopePoint] raise
    ExtractionError

    flash_recovery_vector

    flash_sensitivity

    fn flash_sensitivity(feed : ArrayView[Double], k_values : ArrayView[Double], component : Int, relative_step? : Double) -> FlashSensitivity raise
    ExtractionError

    interpolate_envelope_point

    fn interpolate_envelope_point(first : EnvelopePoint, second : EnvelopePoint, temperature : Double) -> EnvelopePoint raise
    ExtractionError

    isothermal_flash

    fn isothermal_flash(feed_composition~ : ArrayView[Double], k_values~ : ArrayView[Double], tolerance? : Double, maximum_iterations? : Int) -> FlashResult raise
    ExtractionError

    Solve the isothermal Rachford–Rice flash equation for supplied K-values.

    k_value

    Estimate the K-value of a component from activity and vapor pressure.

    limiting_flash_component

    liquid_composition_from_k

    fn liquid_composition_from_k(vapor_composition : Double, k_value : Double) -> Double raise
    ExtractionError

    make_envelope_point

    fn make_envelope_point(temperature : Double, pressure : Double, liquid_composition : Double, relative_volatility : Double) -> EnvelopePoint raise
    ExtractionError

    mixture_boiling_temperature

    fn mixture_boiling_temperature(components : ArrayView[ComponentProperty], composition : ArrayView[Double]) -> Double raise
    ExtractionError

    mixture_component_count

    fn mixture_component_count(mixture : MixtureProperty) -> Int

    mixture_composition_distance

    fn mixture_composition_distance(first : MixtureProperty, second : MixtureProperty) -> Double

    mixture_density

    fn mixture_density(components : ArrayView[ComponentProperty], composition : ArrayView[Double]) -> Double raise
    ExtractionError

    mixture_density_factor

    fn mixture_density_factor(mixture : MixtureProperty, reference_density : Double) -> Double

    mixture_dominant_component

    fn mixture_dominant_component(mixture : MixtureProperty) -> Int

    mixture_excess_density

    fn mixture_excess_density(mixture : MixtureProperty, ideal_density : Double) -> Double

    mixture_heat_capacity

    fn mixture_heat_capacity(components : ArrayView[ComponentProperty], composition : ArrayView[Double]) -> Double raise
    ExtractionError

    mixture_minor_fraction

    fn mixture_minor_fraction(mixture : MixtureProperty) -> Double

    mixture_molecular_weight

    fn mixture_molecular_weight(components : ArrayView[ComponentProperty], composition : ArrayView[Double]) -> Double raise
    ExtractionError

    mixture_normalize_composition

    fn mixture_normalize_composition(composition : ArrayView[Double]) -> Array[Double] raise
    ExtractionError

    mixture_pressure_shift

    fn mixture_pressure_shift(mixture : MixtureProperty, target_pressure : Double, compressibility : Double) -> MixtureProperty

    mixture_property

    fn mixture_property(temperature : Double, pressure : Double, components : ArrayView[ComponentProperty], composition : ArrayView[Double]) -> MixtureProperty raise
    ExtractionError

    mixture_property_csv

    fn mixture_property_csv(properties : ArrayView[MixtureProperty]) -> String

    mixture_property_report

    fn mixture_property_report(property : MixtureProperty) -> String

    mixture_temperature_shift

    fn mixture_temperature_shift(mixture : MixtureProperty, target_temperature : Double, thermal_expansion : Double) -> MixtureProperty

    mixture_viscosity

    fn mixture_viscosity(components : ArrayView[ComponentProperty], composition : ArrayView[Double]) -> Double raise
    ExtractionError

    mixture_viscosity_factor

    fn mixture_viscosity_factor(mixture : MixtureProperty, reference_viscosity : Double) -> Double

    phase_composition_difference

    fn phase_composition_difference(result : FlashResult) -> Double raise
    ExtractionError

    pressure_correction

    A pressure correction for a simple vapor-phase fugacity factor.

    property_average

    fn property_average(points : ArrayView[PropertyPoint]) -> PropertyPoint

    property_csv

    fn property_csv(points : ArrayView[PropertyPoint]) -> String

    property_grid

    fn property_grid(temperatures : ArrayView[Double], pressures : ArrayView[Double], vapor_pressure_model : AntoineCorrelation, density_model : DensityCorrelation, viscosity_model : ViscosityCorrelation, reference_surface_tension : Double, critical_temperature : Double) -> Array[PropertyPoint] raise
    ExtractionError

    property_maximum

    fn property_maximum(points : ArrayView[PropertyPoint]) -> PropertyPoint

    property_minimum

    fn property_minimum(points : ArrayView[PropertyPoint]) -> PropertyPoint

    property_point

    fn property_point(temperature : Double, pressure : Double, vapor_pressure_model : AntoineCorrelation, density_model : DensityCorrelation, viscosity_model : ViscosityCorrelation, reference_surface_tension : Double, critical_temperature : Double) -> PropertyPoint raise
    ExtractionError

    property_report

    fn property_report(points : ArrayView[PropertyPoint]) -> String

    property_sensitivity

    fn property_sensitivity(baseline : MixtureProperty, perturbed : MixtureProperty, component : String, composition_change : Double) -> PropertySensitivity

    relative_volatility

    fn relative_volatility(k_values : ArrayView[Double], reference_index : Int) -> Array[Double] raise
    ExtractionError

    Convert K-values into relative volatility ratios against a reference component.

    reynolds_number

    fn reynolds_number(density : Double, velocity : Double, diameter : Double, viscosity : Double) -> Double raise
    ExtractionError

    surface_tension_at

    fn surface_tension_at(reference_surface_tension : Double, reference_temperature : Double, temperature : Double, critical_temperature : Double) -> Double raise
    ExtractionError

    tie_line

    fn tie_line(liquid_composition : Double, vapor_composition : Double, overall_composition : Double, temperature : Double) -> TieLine raise
    ExtractionError

    tie_line_reconstruct

    fn tie_line_reconstruct(line : TieLine) -> Double

    validate_composition

    fn validate_composition(composition : ArrayView[Double]) -> Bool

    validate_curve

    fn validate_curve(curve : EquilibriumCurve, tolerance~ : Double) -> Array[String] raise
    ExtractionError

    vapor_composition_from_k

    fn vapor_composition_from_k(liquid_composition : Double, k_value : Double) -> Double raise
    ExtractionError

    viscosity_at

    fn viscosity_at(correlation : ViscosityCorrelation, temperature : Double) -> Double raise
    ExtractionError