from reaktoro import * db = Database("supcrt98.xml") editor = ChemicalEditor(db) editor.addAqueousPhaseWithElements("H O Na Cl Ca Mg C"); editor.addGaseousPhaseWithElements("H O C"); editor.addMineralPhase("Calcite") system = ChemicalSystem(editor) problem1 = EquilibriumInverseProblem(system) problem1.add("H2O", 1, "kg") problem1.add("NaCl", 0.1, "mol") problem1.add("CaCl2", 2, "mmol") problem1.add("MgCl2", 4, "mmol") problem1.pH(3.0, "HCl") problem1.fixSpeciesAmount("CO2(g)", 1.0, "mol") problem1.fixSpeciesActivity("O2(g)", 0.20) state1 = equilibrate(problem1) state1.output("state1.txt") problem2 = EquilibriumInverseProblem(system) problem2.add("H2O", 1, "kg") problem2.add("NaCl", 0.1, "mol") problem2.add("CaCl2", 2, "mmol") problem2.add("MgCl2", 4, "mmol") problem2.pH(4.0, "CO2") state2 = equilibrate(problem2) state2.output("state2.txt") problem3 = EquilibriumInverseProblem(system) problem3.add("H2O", 1.0, "kg") problem3.add("NaCl", 0.1, "mol") problem3.add("Calcite", 1.0, "mol") problem3.pH(8.0, "HCl", "NaOH") state3 = equilibrate(problem3) state3.output("state3.txt")