zhaoyuanjuns/moonbit_extractor/process does not have a README file
pub(all) struct BalanceLedger {
entries : Array[StreamBalance]
total_carrier_error : Double
total_solvent_error : Double
total_solute_error : Double
maximum_relative_error : Double
closed : Bool
} derive(Eq, ToJson, Debug)pub(all) struct EquipmentSizing {
name : String
kind : EquipmentKind
working_volume : Double
design_volume : Double
cross_section_area : Double
diameter : Double
heat_transfer_area : Double
pump_head : Double
warnings : Array[String]
} derive(Eq, ToJson, Debug)pub(all) struct EquipmentSpec {
name : String
kind : EquipmentKind
design_flow : Double
design_residence_time : Double
design_pressure : Double
design_temperature : Double
safety_factor : Double
} derive(Eq, ToJson, Debug)fn EquipmentSpec::new(name~ : String, kind~ : EquipmentKind, design_flow~ : Double, design_residence_time~ : Double, design_pressure~ : Double, design_temperature~ : Double, safety_factor? : Double) -> EquipmentSpec raise ExtractionErrorpub(all) struct FlowsheetResult {
name : String
inlet : ProcessStream
outlet : ProcessStream
steps : Array[StepResult]
total_residual : Double
maximum_step_residual : Double
passed : Bool
} derive(Eq, ToJson, Debug)fn OperatingLimit::new(name~ : String, lower~ : Double, upper~ : Double, unit? : String, critical? : Bool) -> OperatingLimit raise ExtractionErrorfn OperatingPoint::margin_vector(self : OperatingPoint, limits : ArrayView[OperatingLimit]) -> Array[Double]fn OperatingPoint::new(name~ : String, values~ : ArrayView[Double], limits~ : ArrayView[OperatingLimit]) -> OperatingPoint raise ExtractionErrorfn OperatingWindow::contains(self : OperatingWindow, flow : Double, concentration : Double, distribution : Double, recovery : Double) -> Boolfn OperatingWindow::new(flow~ : Range, concentration~ : Range, distribution~ : Range, recovery~ : Range) -> OperatingWindowfn OperatingWindow::validate(self : OperatingWindow, flow : Double, concentration : Double, distribution : Double, recovery : Double) -> Array[Violation]pub(all) struct ProcessStream {
name : String
carrier_flow : Double
solvent_flow : Double
carrier_concentration : Double
solvent_concentration : Double
temperature : Temperature
pressure : Pressure
} derive(Eq, ToJson, Debug)fn ProcessStream::new(name~ : String, carrier_flow~ : Double, solvent_flow~ : Double, carrier_concentration~ : Double, solvent_concentration? : Double, temperature~ : Temperature, pressure~ : Pressure) -> ProcessStream raise ExtractionErrorfn ProcessStream::scale(self : ProcessStream, factor : Double) -> ProcessStream raise ExtractionErrorfn ProcessStream::with_temperature(self : ProcessStream, temperature : Temperature) -> ProcessStreampub(all) struct RecycleResult {
converged_stream : ProcessStream
iterations : Int
residual : Double
converged : Bool
} derive(Eq, ToJson, Debug)pub(all) struct StepResult {
step_name : String
inlet : ProcessStream
outlet : ProcessStream
residual : Double
duty : Double
warning : String
} derive(Eq, ToJson, Debug)pub(all) struct UtilityNetwork {
kind : String
nodes : Array[UtilityNode]
total_demand : Double
total_capacity : Double
utilization : Double
feasible : Bool
curtailed_demand : Double
} derive(Eq, ToJson, Debug)fn component_ledger(component : String, feed : Double, product : Double, waste : Double, tolerance : Double) -> ComponentLedger raise ExtractionErrorfn envelope_recovery(temperature : Double, pressure : Double, flow : Double, solvent_ratio : Double, equilibrium_factor : Double, stage_count : Int) -> Double raise ExtractionErrorfn equipment_utilization(actual_flow~ : Double, design_flow~ : Double) -> Double raise ExtractionErrorfn estimate_heat_duty(result : FlowsheetResult, heat_capacity_kj_per_kg_k~ : Double) -> Energy raise ExtractionErrorfn evaluate_grid(names : ArrayView[String], axes : ArrayView[Array[Double]], limits : ArrayView[OperatingLimit]) -> Array[OperatingPoint] raise ExtractionErrorfn ledger_entry(name~ : String, inlet~ : Double, outlet~ : Double, generated? : Double, consumed? : Double) -> LedgerEntry raise ExtractionErrorfn make_scenario(name~ : String, temperature~ : Double, pressure~ : Double, flow~ : Double, solvent_ratio~ : Double, equilibrium_factor~ : Double, stage_count~ : Int) -> ScenarioPoint raise ExtractionErrorfn merge_streams(first : ProcessStream, second : ProcessStream, name : String) -> ProcessStream raise ExtractionErrorfn mix_streams(first : ProcessStream, second : ProcessStream, name~ : String) -> ProcessStream raise ExtractionErrorfn near_limit_points(points : ArrayView[OperatingPoint], threshold : Double) -> Array[OperatingPoint]fn network_sensitivity(network : UtilityNetwork, demand_factors : ArrayView[Double]) -> Array[Double]fn recommended_safety_factor(uncertainty_fraction : Double, minimum? : Double) -> Double raise ExtractionErrorfn recovery_percentile_band(scenarios : ArrayView[ScenarioPoint], lower_probability? : Double, upper_probability? : Double) -> (Double, Double) raise ExtractionErrorfn recovery_quantile(scenarios : ArrayView[ScenarioPoint], probability : Double) -> Double raise ExtractionErrorfn required_recovery_per_stage(target_recovery : Double, stage_count : Int) -> Double raise ExtractionErrorfn scenario_sensitivity(baseline : ScenarioPoint, perturbations : ArrayView[ScenarioPoint]) -> Array[Double]fn simulate(flowsheet : Flowsheet, inlet : ProcessStream, tolerance? : Double) -> FlowsheetResult raise ExtractionErrorfn simulate_recycle(flowsheet : Flowsheet, inlet : ProcessStream, recycle_fraction~ : Double, tolerance? : Double, maximum_iterations? : Int) -> RecycleResult raise ExtractionErrorfn size_equipment(spec : EquipmentSpec, density~ : Double, velocity~ : Double, heat_duty~ : Double, heat_transfer_coefficient~ : Double) -> EquipmentSizing raise ExtractionErrorfn size_heat_exchanger(duty~ : Double, overall_coefficient~ : Double, hot_inlet_temperature~ : Double, hot_outlet_temperature~ : Double, cold_inlet_temperature~ : Double, cold_outlet_temperature~ : Double) -> HeatExchangerSizing raise ExtractionErrorfn size_mixer(flow~ : Double, residence_time~ : Double, density~ : Double, power_number~ : Double, rotation_per_second~ : Double, impeller_diameter~ : Double) -> MixerSizing raise ExtractionErrorfn size_pump(flow~ : Double, pressure_rise~ : Double, density~ : Double, efficiency~ : Double) -> PumpSizing raise ExtractionErrorfn size_settler(total_flow~ : Double, residence_time~ : Double, length_to_width? : Double, width_to_height? : Double) -> SettlerSizing raise ExtractionErrorfn split_stream(stream : ProcessStream, fraction : Double, first_name : String, second_name : String) -> (ProcessStream, ProcessStream) raise ExtractionErrorfn statistics_filter_dilute(statistics : ArrayView[StreamStatistics], threshold : Double) -> Array[StreamStatistics]fn statistics_filter_rich(statistics : ArrayView[StreamStatistics], threshold : Double) -> Array[StreamStatistics]fn stream_balance(name : String, inlet : ProcessStream, outlet : ProcessStream, tolerance : Double) -> StreamBalancefn stream_energy_change(first : ProcessStream, second : ProcessStream, heat_capacity : Double) -> Doublefn summarize_scenarios(scenarios : ArrayView[ScenarioPoint]) -> EnvelopeSummary raise ExtractionErrorfn vessel_volume_for_batch(batch_mass~ : Double, density~ : Density, fill_fraction~ : Double, safety_factor? : Double) -> Volume raise ExtractionErrorInstall
Download zipExtraction process calculation toolkit for liquid-liquid extraction and solid-liquid leaching