Sign in

    zhaoyuanjuns/moonbit_extractor/leaching does not have a README file

    CircuitMetrics

    pub(all) struct CircuitMetrics {
    stages : Array[CircuitStage]
    feed_solute : Double
    recovered_solute : Double
    residual_solute : Double
    recovery : Double
    solvent_to_solute : Double
    diminishing_returns : Bool
    } derive(Eq, ToJson,
    Debug
    )

    CircuitStage

    pub(all) struct CircuitStage {
    stage : Int
    feed_solute : Double
    wash_solvent : Double
    extracted_solute : Double
    retained_solute : Double
    local_recovery : Double
    cumulative_recovery : Double
    } derive(Eq, ToJson,
    Debug
    )

    Circuit-level metrics for leaching and washing campaigns.

    CrosscurrentLeachingResult

    pub(all) struct CrosscurrentLeachingResult {
    stages : Array[LeachingStage]
    final_underflow_concentration : Double
    final_solute_remaining : Double
    recovered_solute : Double
    recovery : Double
    balance_residual : Double
    } derive(Eq, ToJson,
    Debug
    )

    LeachingStage

    pub(all) struct LeachingStage {
    stage : Int
    wash_solution : Double
    inlet_concentration : Double
    outlet_concentration : Double
    overflow_solution : Double
    overflow_solute : Double
    solute_remaining : Double
    } derive(Eq, ToJson,
    Debug
    )

    LeachingStageResult

    pub(all) struct LeachingStageResult {
    equilibrium_concentration : Double
    retained_solution : Double
    overflow_solution : Double
    solute_in_underflow : Double
    solute_in_overflow : Double
    dissolved_recovery : Double
    balance_residual : Double
    } derive(Eq, ToJson,
    Debug
    )

    build_circuit_metrics

    fn build_circuit_metrics(feed_solute : Double, wash_solvent : ArrayView[Double], stage_recoveries : ArrayView[Double]) -> CircuitMetrics raise
    ExtractionError

    circuit_alerts

    fn circuit_alerts(metrics : CircuitMetrics, minimum_stage_recovery : Double) -> Array[String]

    circuit_csv

    fn circuit_csv(metrics : CircuitMetrics) -> String

    circuit_marginal_recoveries

    fn circuit_marginal_recoveries(metrics : CircuitMetrics) -> Array[Double]

    circuit_markdown

    fn circuit_markdown(metrics : CircuitMetrics) -> String

    circuit_meets_target

    fn circuit_meets_target(metrics : CircuitMetrics, target : Double) -> Bool

    circuit_residual_fraction

    fn circuit_residual_fraction(metrics : CircuitMetrics) -> Double

    circuit_solvent_efficiency

    fn circuit_solvent_efficiency(metrics : CircuitMetrics) -> Double

    crosscurrent_equal_wash

    fn crosscurrent_equal_wash(dry_solid_mass~ : Double, initial_solution_mass~ : Double, initial_solute_fraction~ : Double, total_wash_mass~ : Double, stage_count~ : Int, retention_ratio~ : Double) -> CrosscurrentLeachingResult raise
    ExtractionError

    crosscurrent_leach

    fn crosscurrent_leach(dry_solid_mass~ : Double, initial_solution_mass~ : Double, initial_solute_fraction~ : Double, wash_masses : ArrayView[Double], wash_solute_fractions? : Array[Double], retention_ratio~ : Double) -> CrosscurrentLeachingResult raise
    ExtractionError

    Repeatedly wash a retained solution with fresh or specified wash streams.

    minimum_stages_for_target

    fn minimum_stages_for_target(feed_solute : Double, wash_solvent : Double, per_stage_recovery : Double, target : Double, maximum_stages : Int) -> Int raise
    ExtractionError

    optimize_wash_allocation

    fn optimize_wash_allocation(feed_solute : Double, total_wash : Double, stage_count : Int, base_recovery : Double) -> Array[Double] raise
    ExtractionError

    single_stage_leach

    fn single_stage_leach(dry_solid_mass~ : Double, initial_solution_mass~ : Double, initial_solute_fraction~ : Double, wash_solution_mass~ : Double, wash_solute_fraction? : Double, retention_ratio~ : Double) -> LeachingStageResult raise
    ExtractionError

    Solve one ideal solid-liquid washing/leaching contact.

    retention_ratio is kg solution retained per kg insoluble dry solid.

    stage_count

    fn stage_count(metrics : CircuitMetrics) -> Int

    wash_for_target

    fn wash_for_target(dry_solid_mass~ : Double, initial_solution_mass~ : Double, initial_solute_fraction~ : Double, stage_count~ : Int, retention_ratio~ : Double, target_remaining_fraction~ : Double, tolerance? : Double, max_wash_mass? : Double) -> CrosscurrentLeachingResult raise
    ExtractionError

    Evaluate a grid of stage counts and select the least wash meeting a target.

    Powered by MoonBit

    Site sourceReport issuePackagesBuild queueSkillsStatistics

    © 2026 mooncakes.io