Sign in

    zhaoyuanjuns/moonbit_extractor/design does not have a README file

    ContactPattern

    pub(all) enum ContactPattern {
    SingleStage
    Crosscurrent(Int)
    Countercurrent(Int)
    } derive(Eq, ToJson,
    Debug
    )

    ScreeningWeights

    pub(all) struct ScreeningWeights {
    extraction : Double
    handling : Double
    sustainability : Double
    } derive(Eq, ToJson,
    Debug
    )

    SensitivityPoint

    pub(all) struct SensitivityPoint {
    parameter : String
    base_value : Double
    lower_value : Double
    upper_value : Double
    base_recovery : Double
    lower_recovery : Double
    upper_recovery : Double
    normalized_sensitivity : Double
    } derive(Eq, ToJson,
    Debug
    )

    SolventDesign

    pub(all) struct SolventDesign {
    pattern : ContactPattern
    solvent_flow : Double
    solvent_to_feed_ratio : Double
    achieved_raffinate : Double
    achieved_recovery : Double
    iterations : Int
    target_raffinate : Double
    target_residual : Double
    } derive(Eq, ToJson,
    Debug
    )

    SolventOption

    pub(all) struct SolventOption {
    name : String
    distribution_coefficient : Double
    selectivity : Double
    density_difference : Double
    viscosity : Double
    volatility : Double
    cost_index : Double
    safety_index : Double
    } derive(Eq, ToJson,
    Debug
    )

    Solvent shortlist scoring for practical extraction design decisions.

    SolventOption::new

    fn SolventOption::new(name~ : String, distribution_coefficient~ : Double, selectivity~ : Double, density_difference~ : Double, viscosity~ : Double, volatility~ : Double, cost_index~ : Double, safety_index~ : Double) -> SolventOption

    SolventOption::validate

    fn SolventOption::validate(self : SolventOption) -> Bool

    SolventScore

    pub(all) struct SolventScore {
    option : SolventOption
    extraction_score : Double
    handling_score : Double
    sustainability_score : Double
    total_score : Double
    rank : Int
    recommendation : String
    } derive(Eq, ToJson,
    Debug
    )

    compare_contact_patterns

    fn compare_contact_patterns(carrier_flow~ : Double, feed_concentration~ : Double, distribution~ : Double, target_raffinate~ : Double, maximum_stages? : Int) -> Array[SolventDesign] raise
    ExtractionError

    Compare feasible ideal contact patterns at the same target.

    normalized_score

    fn normalized_score(value : Double, reference : Double) -> Double

    phase_split_gate

    fn phase_split_gate(option : SolventOption, minimum_density_difference : Double) -> Bool

    safety_gate

    fn safety_gate(option : SolventOption, minimum_safety : Double) -> Bool

    screening_weights_equal

    fn screening_weights_equal() -> ScreeningWeights

    sensitivity_to_weight

    fn sensitivity_to_weight(options : ArrayView[SolventOption], extraction_weight : Double, handling_weight : Double, sustainability_weight : Double) -> Array[Double] raise
    ExtractionError

    single_stage_sensitivity

    fn single_stage_sensitivity(carrier_flow~ : Double, feed_concentration~ : Double, solvent_flow~ : Double, distribution~ : Double, relative_step? : Double) -> Array[SensitivityPoint] raise
    ExtractionError

    Central finite-difference sensitivity of single-stage recovery.

    solvent_extraction_score

    fn solvent_extraction_score(option : SolventOption) -> Double

    solvent_for_countercurrent

    fn solvent_for_countercurrent(carrier_flow~ : Double, feed_concentration~ : Double, distribution~ : Double, target_raffinate~ : Double, stage_count~ : Int, solvent_inlet_concentration? : Double, tolerance? : Double) -> SolventDesign raise
    ExtractionError

    solvent_for_crosscurrent

    fn solvent_for_crosscurrent(carrier_flow~ : Double, feed_concentration~ : Double, distribution~ : Double, target_raffinate~ : Double, stage_count~ : Int, tolerance? : Double) -> SolventDesign raise
    ExtractionError

    solvent_for_single_stage

    fn solvent_for_single_stage(carrier_flow~ : Double, feed_concentration~ : Double, distribution~ : Double, target_raffinate~ : Double) -> SolventDesign raise
    ExtractionError

    Closed-form fresh-solvent requirement for one ideal stage.

    solvent_handling_score

    fn solvent_handling_score(option : SolventOption) -> Double

    solvent_is_usable

    fn solvent_is_usable(option : SolventOption, minimum_safety : Double, minimum_density_difference : Double) -> Bool

    solvent_score_gap

    fn solvent_score_gap(scores : ArrayView[SolventScore]) -> Double

    solvent_screening_csv

    fn solvent_screening_csv(scores : ArrayView[SolventScore]) -> String

    solvent_screening_markdown

    fn solvent_screening_markdown(scores : ArrayView[SolventScore]) -> String

    solvent_sustainability_score

    fn solvent_sustainability_score(option : SolventOption) -> Double

    top_solvent

    fn top_solvent(scores : ArrayView[SolventScore]) -> SolventScore?

    usable_solvents

    fn usable_solvents(options : ArrayView[SolventOption], minimum_safety : Double, minimum_density_difference : Double) -> Array[SolventOption]

    Powered by MoonBit

    Site sourceReport issuePackagesBuild queueSkillsStatistics

    © 2026 mooncakes.io