python3 scripts/aqueous.py solve --fixture carbonate
moon run equilibrium/cmd/main fixture-json carbonatepub(all) struct MineralDef {
name : String
component_terms : Array[ComponentTerm]
log_ksp : Double
source : String
} derive(ToJson, Debug, FromJson)pub(all) struct Problem {
temperature_k : Double
volume_l : Double
elements : Array[ElementDef]
species : Array[SpeciesDef]
minerals : Array[MineralDef]
hydrogen_component : Int
fixed_p_h : Double?
alkalinity_mol_l : Double?
activity_model : String
database_version : String
thermodynamics : ThermodynamicData
} derive(ToJson, Debug, FromJson)pub(all) struct SensitivityReport {
difference_method : String
perturbation : Perturbation
input_value : Double
input_unit : String
d_p_h_d_input : Double
d_ionic_strength_d_input : Double
species : Array[SpeciesSensitivity]
minerals : Array[MineralSensitivity]
base_result : SpeciationResult
minus_result : SpeciationResult
plus_result : SpeciationResult
diagnostics : Array[String]
} derive(ToJson, Debug, FromJson)pub(all) struct SensitivityRequest {
problem : Problem
perturbation : Perturbation
} derive(ToJson, Debug, FromJson)pub(all) enum SolveError {
InvalidInput(String)
DatabaseInconsistent(String)
InconsistentConstraints(String)
DimensionMismatch(String)
Stalled(String)
MultipleSolutionsSuspected(String)
ActivityModelOutOfRange(String)
NegativeConcentration(String)
} derive(Debug)pub(all) struct SpeciationResult {
status : String
temperature_k : Double
volume_l : Double
activity_model : String
p_h : Double
ionic_strength : Double
charge_residual_mol_l : Double
alkalinity_mol_l : Double
element_residuals_mol_l : Array[Double]
species : Array[SpeciesResult]
saturation : Array[SaturationResult]
activity_coefficients : Array[Double]
inner_iterations : Int
outer_iterations : Int
max_scaled_residual : Double
diagnostics : Array[String]
database_version : String
solver_options : SolveOptions
thermodynamics : ThermodynamicData
iteration_trace : Array[IterationRecord]
max_log_gamma_error : Double
} derive(ToJson, Debug, FromJson)pub(all) struct ThermodynamicData {
adaptation_notice : String
version : String
reference_url : String
reference_sha256 : String
source_standard_state : String
solver_standard_state : String
reference_temperature_k : Double
min_temperature_k : Double
max_temperature_k : Double
pressure_atm : Double
license : String
license_url : String
limitations : String
records : Array[ThermoRecord]
} derive(ToJson, Debug, FromJson)fn sensitivity(problem : Problem, perturbation : Perturbation, options? : SolveOptions) -> Result[SensitivityReport, SolveError]Install
Download zipJoint sample-handling history reconciliation and zero-net-transfer checks for shared-source Ca-carbonate-Na-Cl water aliquots