pyEQL 1.4.0rc9__cp310-cp310-macosx_10_9_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pyEQL/__init__.py +50 -0
- pyEQL/_phreeqc.cpython-310-darwin.so +0 -0
- pyEQL/activity_correction.py +879 -0
- pyEQL/database/geothermal.dat +5693 -0
- pyEQL/database/llnl.dat +19305 -0
- pyEQL/database/phreeqc_license.txt +54 -0
- pyEQL/database/pyeql_db.json +35607 -0
- pyEQL/engines.py +1153 -0
- pyEQL/equilibrium.py +227 -0
- pyEQL/functions.py +281 -0
- pyEQL/phreeqc/__init__.py +5 -0
- pyEQL/phreeqc/bindings.cpp +84 -0
- pyEQL/phreeqc/core.py +239 -0
- pyEQL/phreeqc/database/Amm.dat +1968 -0
- pyEQL/phreeqc/database/CMakeLists.txt +32 -0
- pyEQL/phreeqc/database/ColdChem.dat +267 -0
- pyEQL/phreeqc/database/Concrete_PHR.dat +158 -0
- pyEQL/phreeqc/database/Concrete_PZ.dat +195 -0
- pyEQL/phreeqc/database/Kinec.v2.dat +12039 -0
- pyEQL/phreeqc/database/Kinec_v3.dat +12159 -0
- pyEQL/phreeqc/database/Makefile.am +28 -0
- pyEQL/phreeqc/database/Makefile.in +530 -0
- pyEQL/phreeqc/database/PHREEQC_ThermoddemV1.10_15Dec2020.dat +12965 -0
- pyEQL/phreeqc/database/Tipping_Hurley.dat +4137 -0
- pyEQL/phreeqc/database/__init__.py +0 -0
- pyEQL/phreeqc/database/core10.dat +6824 -0
- pyEQL/phreeqc/database/frezchem.dat +634 -0
- pyEQL/phreeqc/database/iso.dat +7235 -0
- pyEQL/phreeqc/database/llnl.dat +19310 -0
- pyEQL/phreeqc/database/minteq.dat +5654 -0
- pyEQL/phreeqc/database/minteq.v4.dat +13212 -0
- pyEQL/phreeqc/database/phreeqc.dat +1972 -0
- pyEQL/phreeqc/database/phreeqc_rates.dat +3158 -0
- pyEQL/phreeqc/database/pitzer.dat +1044 -0
- pyEQL/phreeqc/database/sit.dat +14348 -0
- pyEQL/phreeqc/database/wateq4f.dat +4036 -0
- pyEQL/phreeqc/ext/README.md +10 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/CMakeLists.txt +476 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/INSTALL +302 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/IPhreeqc.rc +61 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/IPhreeqcConfig.cmake.in +4 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/Makefile.am +8 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/Makefile.in +816 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/aclocal.m4 +1217 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/CTestScript.cmake +167 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/CSelectedOutput.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/IPhreeqc.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/IPhreeqcLib.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/IPhreeqc_interface_F.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/Var.c.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Dictionary.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/ExchComp.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Exchange.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/GasComp.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/GasPhase.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/ISolution.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/ISolutionComp.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/KineticsComp.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/NameDouble.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/NumKeyword.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/PBasic.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/PHRQ_io_output.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/PPassemblage.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/PPassemblageComp.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Phreeqc.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/PhreeqcKeywords/Keywords.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Pressure.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Reaction.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/ReadClass.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/SS.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/SSassemblage.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/SScomp.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/SelectedOutput.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Serializer.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Solution.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/SolutionIsotope.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/StorageBin.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/StorageBinList.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Surface.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/SurfaceCharge.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/SurfaceComp.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/System.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Temperature.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Use.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/UserPunch.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/advection.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/basicsubs.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/cl1.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/common/PHRQ_base.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/common/PHRQ_io.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/common/Parser.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/common/Utils.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/cvdense.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/cvode.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/cxxKinetics.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/cxxMix.cxx.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/dense.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/dumper.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/gases.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/input.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/integrate.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/inverse.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/isotopes.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/kinetics.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/mainsubs.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/model.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/nvector.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/nvector_serial.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/parse.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/phqalloc.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/pitzer.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/pitzer_structures.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/prep.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/print.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/read.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/readtr.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/runner.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/sit.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/smalldense.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/spread.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/step.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/structures.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/sundialsmath.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/tally.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/tidy.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/transport.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/utilities.cpp.o +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CTestTestfile.cmake +6 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/DartConfiguration.tcl +109 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/cmake_install.cmake +45 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/libIPhreeqc.a +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/ar-lib +270 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/compile +347 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/config.guess +1441 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/config.sub +1813 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/depcomp +791 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/install-sh +508 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/ltmain.sh +11156 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/missing +215 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/test-driver +148 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/configure +23867 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/configure.ac +136 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Amm.dat +1968 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/CMakeLists.txt +32 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/ColdChem.dat +267 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Concrete_PHR.dat +158 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Concrete_PZ.dat +195 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Kinec.v2.dat +12039 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Kinec_v3.dat +12159 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Makefile.am +28 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Makefile.in +530 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/PHREEQC_ThermoddemV1.10_15Dec2020.dat +12965 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Tipping_Hurley.dat +4137 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/core10.dat +6824 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/frezchem.dat +634 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/iso.dat +7235 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/llnl.dat +19310 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/minteq.dat +5654 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/minteq.v4.dat +13212 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/phreeqc.dat +1972 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/phreeqc_rates.dat +3158 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/pitzer.dat +1044 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/sit.dat +14348 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/wateq4f.dat +4036 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/CMakeLists.txt +35 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/IPhreeqc.pdf +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/Makefile.am +24 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/Makefile.in +545 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/NOTICE +51 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/Phreeqc_2_1999_manual.pdf +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/Phreeqc_3_2013_manual.pdf +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/README +428 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/RELEASE +7294 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/IPhreeqc_8h.html +5096 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/IPhreeqc_8h_source.html +389 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/IPhreeqc_8hpp.html +83 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/IPhreeqc_8hpp_source.html +478 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/Var_8h.html +318 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/Var_8h_source.html +200 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/bc_s.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/bdwn.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/classIPhreeqc.html +2274 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/classIPhreeqc.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/classIPhreeqcStop.html +69 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/classIPhreeqcStop.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/closed.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html +68 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/doxygen.css +1440 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/doxygen.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/dynsections.js +97 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2blank.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2doc.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2folderclosed.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2folderopen.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2lastnode.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2link.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2mlastnode.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2mnode.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2node.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2plastnode.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2pnode.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2splitbar.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2vertline.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/index.html +58 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/jquery.js +31 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/nav_f.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/nav_g.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/nav_h.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/open.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/structVAR.html +143 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/sync_off.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/sync_on.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/tab_a.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/tab_b.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/tab_h.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/tab_s.png +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/tabs.css +60 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/phreeqc3.chm +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/CMakeLists.txt +11 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/Makefile.am +88 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/Makefile.in +696 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/CMakeLists.txt +1 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/CMakeLists.txt +35 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/CMakeLists.txt.in +21 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/README.txt +44 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/advect.c +101 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/ic +17 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/phreeqc.dat +1579 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/CMakeLists.txt +10 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/README.txt +3 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/excel/CMakeLists.txt +9 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/excel/phreeqc.dat +1582 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/excel/runphreeqc.xls +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/excel/withcallback.xls +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/CMakeLists.txt +11 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/Gypsum.py +52 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/parallel_advect.py +465 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/phreeqc.dat +1582 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/pitzer.dat +790 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/wateq4f.dat +3846 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/CMakeLists.txt +1 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/CMakeLists.txt +35 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/CMakeLists.txt.in +20 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/README.txt +45 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/advect.cpp +110 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/ic +17 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/phreeqc.dat +1579 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/CMakeLists.txt +1 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/CMakeLists.txt +44 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/CMakeLists.txt.in +24 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/README.txt +45 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/advect.F90 +102 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/ic +17 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/phreeqc.dat +1579 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/CMakeLists.txt +26 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/CMakeLists.txt.in +20 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/README.txt +37 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/ex2 +26 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/main.cpp +20 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/phreeqc.dat +1837 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/post-install.cmake.in +7 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/CMakeLists.txt +185 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/FileTest.cpp +171 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/FileTest.h +34 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/Makefile.am +18 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/Makefile.in +466 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/TestCVar.cpp +9 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/TestIPhreeqc.cpp +4901 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/TestIPhreeqcLib.cpp +4644 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/TestSelectedOutput.cpp +669 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/TestVar.cpp +10 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/conv_fail.in +11 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/dump +42 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/iso.dat +7231 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/kinn20140218 +349 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/missing_e.dat +1556 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/multi_punch +105 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/multi_punch_no_set +102 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/phreeqc.dat.90a6449 +1935 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/phreeqc.dat.old +1556 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/m4/libtool.m4 +8388 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/m4/ltoptions.m4 +437 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/m4/ltsugar.m4 +124 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/m4/ltversion.m4 +23 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/m4/lt~obsolete.m4 +99 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/resource.h +14 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/CSelectedOutput.cpp +401 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/CSelectedOutput.hxx +77 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/CVar.hxx +162 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Debug.h +12 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/ErrorReporter.hxx +70 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc.cpp +1889 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc.f.inc +91 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc.f90.inc +603 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc.h +2182 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc.hpp +1027 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqcCallbacks.h +19 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqcF.f +653 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqcLib.cpp +1098 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc_interface.F90 +1283 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc_interface_F.cpp +535 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc_interface_F.h +162 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Makefile.am +210 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Makefile.in +1294 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/README.Fortran +17 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Var.c +84 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Var.h +152 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Version.h +36 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fimpl.h +282 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap.cpp +646 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap.h +163 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap1.cpp +24 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap2.cpp +24 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap3.cpp +24 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap4.cpp +24 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap5.cpp +24 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap6.cpp +25 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap7.cpp +25 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap8.cpp +24 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ChartHandler.cpp +225 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ChartHandler.h +59 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ChartObject.cpp +1382 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ChartObject.h +444 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/CurveObject.cpp +42 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/CurveObject.h +79 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Dictionary.cpp +41 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Dictionary.h +28 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ExchComp.cxx +398 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ExchComp.h +117 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Exchange.cxx +466 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Exchange.h +74 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Form1.h +1184 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Form1.resX +36 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/GasComp.cxx +265 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/GasComp.h +59 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/GasPhase.cxx +659 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/GasPhase.h +103 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ISolution.cxx +40 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ISolution.h +53 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ISolutionComp.cxx +202 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ISolutionComp.h +138 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/KineticsComp.cxx +318 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/KineticsComp.h +81 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/NA.h +1 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/NameDouble.cxx +537 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/NameDouble.h +66 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/NumKeyword.cxx +190 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/NumKeyword.h +67 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PBasic.cpp +8350 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PBasic.h +572 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PHRQ_io_output.cpp +411 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PPassemblage.cxx +375 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PPassemblage.h +70 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PPassemblageComp.cxx +441 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PPassemblageComp.h +83 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Phreeqc.cpp +2087 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Phreeqc.h +2164 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PhreeqcKeywords/Keywords.cpp +242 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PhreeqcKeywords/Keywords.h +104 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Pressure.cxx +417 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Pressure.h +43 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Reaction.cxx +284 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Reaction.h +57 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ReadClass.cxx +1150 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SS.cxx +609 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SS.h +128 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SSassemblage.cxx +317 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SSassemblage.h +59 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SScomp.cxx +297 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SScomp.h +66 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SelectedOutput.cpp +115 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SelectedOutput.h +209 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Serializer.cxx +213 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Serializer.h +42 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Solution.cxx +1795 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Solution.h +154 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SolutionIsotope.cxx +333 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SolutionIsotope.h +85 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/StorageBin.cxx +1507 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/StorageBin.h +141 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/StorageBinList.cpp +358 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/StorageBinList.h +81 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Surface.cxx +837 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Surface.h +108 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SurfaceCharge.cxx +617 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SurfaceCharge.h +137 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SurfaceComp.cxx +509 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SurfaceComp.h +70 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/System.cxx +103 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/System.h +89 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Temperature.cxx +423 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Temperature.h +42 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Use.cpp +78 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Use.h +159 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/UserPunch.cpp +32 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/UserPunch.h +39 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ZedGraph.dll +0 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/advection.cpp +140 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/basicsubs.cpp +4333 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cl1.cpp +881 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/PHRQ_base.cxx +117 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/PHRQ_base.h +48 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/PHRQ_exports.h +20 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/PHRQ_io.cpp +914 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/PHRQ_io.h +207 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/Parser.cxx +1331 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/Parser.h +310 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/Utils.cxx +263 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/Utils.h +29 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/phrqtype.h +18 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cvdense.cpp +566 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cvdense.h +267 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cvode.cpp +3939 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cvode.h +940 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cxxKinetics.cxx +617 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cxxKinetics.h +78 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cxxMix.cxx +154 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cxxMix.h +58 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/dense.cpp +175 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/dense.h +341 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/dumper.cpp +277 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/dumper.h +60 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/gases.cpp +748 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/global_structures.h +1672 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/input.cpp +133 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/integrate.cpp +1219 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/inverse.cpp +5135 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/isotopes.cpp +1813 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/kinetics.cpp +3180 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/mainsubs.cpp +2320 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/model.cpp +5843 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/nvector.cpp +272 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/nvector.h +485 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/nvector_serial.cpp +1032 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/nvector_serial.h +369 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/parse.cpp +1044 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/phqalloc.cpp +316 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/phqalloc.h +47 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/pitzer.cpp +2709 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/pitzer_structures.cpp +225 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/prep.cpp +6267 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/print.cpp +3673 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/read.cpp +10245 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/readtr.cpp +1495 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/runner.cpp +158 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/runner.h +33 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/sit.cpp +1684 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/smalldense.cpp +324 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/smalldense.h +261 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/spread.cpp +1309 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/step.cpp +1566 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/structures.cpp +3381 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/sundialsmath.cpp +133 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/sundialsmath.h +162 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/sundialstypes.h +183 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/tally.cpp +1288 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/tidy.cpp +5600 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/transport.cpp +6403 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/utilities.cpp +1339 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/thread.h +64 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/CMakeLists.txt +133 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/Makefile.am +45 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/Makefile.in +1128 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/ex2.in +26 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/main.f90 +31 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/main77.f +6 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/main_fortran.cxx +8 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/phreeqc.dat.in +1556 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/test_c.c +148 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/test_cxx.cxx +152 -0
- pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/test_f90.F90 +328 -0
- pyEQL/phreeqc/iphreeqc_wrapper.cpp +75 -0
- pyEQL/phreeqc/solution.py +74 -0
- pyEQL/phreeqc/var.py +50 -0
- pyEQL/presets/Ringers lactate.yaml +20 -0
- pyEQL/presets/__init__.py +17 -0
- pyEQL/presets/normal saline.yaml +17 -0
- pyEQL/presets/rainwater.yaml +17 -0
- pyEQL/presets/seawater.yaml +29 -0
- pyEQL/presets/urine.yaml +26 -0
- pyEQL/presets/wastewater.yaml +21 -0
- pyEQL/py.typed +0 -0
- pyEQL/salt_ion_match.py +112 -0
- pyEQL/solute.py +163 -0
- pyEQL/solution.py +2714 -0
- pyEQL/utils.py +237 -0
- pyeql-1.4.0rc9.dist-info/METADATA +130 -0
- pyeql-1.4.0rc9.dist-info/RECORD +491 -0
- pyeql-1.4.0rc9.dist-info/WHEEL +6 -0
- pyeql-1.4.0rc9.dist-info/licenses/AUTHORS.md +21 -0
- pyeql-1.4.0rc9.dist-info/licenses/LICENSE.txt +20 -0
|
@@ -0,0 +1,1672 @@
|
|
|
1
|
+
#ifndef _INC_GLOBAL_STRUCTURES_H
|
|
2
|
+
#define _INC_GLOBAL_STRUCTURES_H
|
|
3
|
+
#include "Surface.h"
|
|
4
|
+
#include "GasPhase.h"
|
|
5
|
+
/* ----------------------------------------------------------------------
|
|
6
|
+
* #define DEFINITIONS
|
|
7
|
+
* ---------------------------------------------------------------------- */
|
|
8
|
+
#if !defined(NAN)
|
|
9
|
+
# if defined(_MSC_VER) && (_MSC_VER <= 1700) // VS2012
|
|
10
|
+
// https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-170
|
|
11
|
+
# include <limits>
|
|
12
|
+
# define NAN std::numeric_limits<double>::signaling_NaN()
|
|
13
|
+
# else
|
|
14
|
+
# define NAN nan("1")
|
|
15
|
+
# endif
|
|
16
|
+
#endif
|
|
17
|
+
#define MISSING -9999.999
|
|
18
|
+
#include "NA.h" /* NA = not available */
|
|
19
|
+
|
|
20
|
+
#define F_C_MOL 96493.5 /* C/mol or joule/volt-eq */
|
|
21
|
+
#define F_KJ_V_EQ 96.4935 /* kJ/volt-eq */
|
|
22
|
+
#define F_KCAL_V_EQ 23.0623 /* kcal/volt-eq */
|
|
23
|
+
#define R_LITER_ATM 0.0820597 /* L-atm/deg-mol */
|
|
24
|
+
#define R_KCAL_DEG_MOL 0.00198726 /* kcal/deg-mol */
|
|
25
|
+
#define R_KJ_DEG_MOL 0.00831470 /* kJ/deg-mol */
|
|
26
|
+
#define EPSILON 78.5 /* dialectric constant, dimensionless. Is calculated as eps_r(P, T) in calc_dielectrics. Update the code?? */
|
|
27
|
+
#define EPSILON_ZERO 8.854e-12 /* permittivity of free space, C/V-m = C**2/m-J */
|
|
28
|
+
#define JOULES_PER_CALORIE 4.1840
|
|
29
|
+
#define PASCAL_PER_ATM 1.01325E5 /* conversion from atm to Pa */
|
|
30
|
+
#define AVOGADRO 6.02252e23 /* atoms / mole */
|
|
31
|
+
#define pi 3.14159265358979
|
|
32
|
+
#define AH2O_FACTOR 0.017
|
|
33
|
+
|
|
34
|
+
#define TRUE 1
|
|
35
|
+
#define FALSE 0
|
|
36
|
+
#define OK 1
|
|
37
|
+
#define ERROR 0
|
|
38
|
+
#define STOP 1
|
|
39
|
+
#define CONTINUE 0
|
|
40
|
+
|
|
41
|
+
#define OPTION_EOF -1
|
|
42
|
+
#define OPTION_KEYWORD -2
|
|
43
|
+
#define OPTION_ERROR -3
|
|
44
|
+
#define OPTION_DEFAULT -4
|
|
45
|
+
#define OPT_1 -5
|
|
46
|
+
|
|
47
|
+
#define DISP 2
|
|
48
|
+
#define STAG 3
|
|
49
|
+
#define NOMIX 4
|
|
50
|
+
#define MIX_BS 5 // mix boundary solutions in electromigration
|
|
51
|
+
|
|
52
|
+
#define CONVERGED 2
|
|
53
|
+
#define MASS_BALANCE 3
|
|
54
|
+
|
|
55
|
+
#define REWRITE 2
|
|
56
|
+
#define INIT -1
|
|
57
|
+
|
|
58
|
+
/* check_line values, plus EMPTY, EOF, OK */
|
|
59
|
+
#define KEYWORD 3
|
|
60
|
+
|
|
61
|
+
/* copy_token values */
|
|
62
|
+
#define EMPTY 2
|
|
63
|
+
#define UPPER 4
|
|
64
|
+
#define LOWER 5
|
|
65
|
+
#define DIGIT 6
|
|
66
|
+
#define UNKNOWN 7
|
|
67
|
+
#define OPTION 8
|
|
68
|
+
|
|
69
|
+
/* species types */
|
|
70
|
+
#define AQ 0
|
|
71
|
+
#define HPLUS 1
|
|
72
|
+
#define H2O 2
|
|
73
|
+
#define EMINUS 3
|
|
74
|
+
#define SOLID 4
|
|
75
|
+
#define EX 5
|
|
76
|
+
#define SURF 6
|
|
77
|
+
#define SURF_PSI 7
|
|
78
|
+
#define SURF_PSI1 8
|
|
79
|
+
#define SURF_PSI2 9
|
|
80
|
+
|
|
81
|
+
/* unknown types */
|
|
82
|
+
#define MB 10
|
|
83
|
+
#define ALK 11
|
|
84
|
+
#define CB 12
|
|
85
|
+
#define SOLUTION_PHASE_BOUNDARY 13
|
|
86
|
+
#define MU 14
|
|
87
|
+
#define AH2O 15
|
|
88
|
+
#define MH 16
|
|
89
|
+
#define MH2O 17
|
|
90
|
+
#define PP 18
|
|
91
|
+
#define EXCH 19
|
|
92
|
+
#define SURFACE 20
|
|
93
|
+
#define SURFACE_CB 21
|
|
94
|
+
#define SURFACE_CB1 22
|
|
95
|
+
#define SURFACE_CB2 23
|
|
96
|
+
#define GAS_MOLES 24
|
|
97
|
+
#define SS_MOLES 25
|
|
98
|
+
#define PITZER_GAMMA 26
|
|
99
|
+
#define SLACK 28
|
|
100
|
+
/* state */
|
|
101
|
+
#define INITIALIZE 0
|
|
102
|
+
#define INITIAL_SOLUTION 1
|
|
103
|
+
#define INITIAL_EXCHANGE 2
|
|
104
|
+
#define INITIAL_SURFACE 3
|
|
105
|
+
#define INITIAL_GAS_PHASE 4
|
|
106
|
+
#define REACTION 5
|
|
107
|
+
#define INVERSE 6
|
|
108
|
+
#define ADVECTION 7
|
|
109
|
+
#define TRANSPORT 8
|
|
110
|
+
#define PHAST 9
|
|
111
|
+
|
|
112
|
+
/* constraints in mass balance */
|
|
113
|
+
#define EITHER 0
|
|
114
|
+
#define DISSOLVE 1
|
|
115
|
+
#define PRECIPITATE -1
|
|
116
|
+
|
|
117
|
+
/* gas phase type */
|
|
118
|
+
#define PRESSURE 1
|
|
119
|
+
#define VOLUME 2
|
|
120
|
+
|
|
121
|
+
#define MAX_PP_ASSEMBLAGE 10 /* default estimate of the number of phase assemblages */
|
|
122
|
+
#define MAX_ADD_EQUATIONS 20 /* maximum number of equations added together to reduce eqn to
|
|
123
|
+
master species */
|
|
124
|
+
#define MAX_ELEMENTS 50 /* default estimate of the number of elements */
|
|
125
|
+
#define MAX_LENGTH 256 /* maximum number of characters component name */
|
|
126
|
+
#define MAX_LINE 4096 /* estimate of maximum line length */
|
|
127
|
+
#define MAX_MASS_BALANCE 10 /* initial guess of number mass balance equations for a solution */
|
|
128
|
+
#define MAX_MASTER 50 /* default estimate of the number of master species */
|
|
129
|
+
#define MAX_ELTS 15 /* default estimate for maximum number of times elements occur in
|
|
130
|
+
an equation */
|
|
131
|
+
#define MAX_PHASES 500 /* initial guess of number of phases defined */
|
|
132
|
+
#define MAX_S 500 /* default estimate for maximum number of species in aqueous model */
|
|
133
|
+
#define MAX_SUM_JACOB0 50 /* list used to calculate jacobian */
|
|
134
|
+
#define MAX_SUM_JACOB1 500 /* list used to calculate jacobian */
|
|
135
|
+
#define MAX_SUM_JACOB2 500 /* list used to calculate jacobian */
|
|
136
|
+
#define MAX_SUM_MB 500 /* list used to calculate mass balance sums */
|
|
137
|
+
#define MAX_TRXN 16 /* default estimate for maximum number of components in an eqn */
|
|
138
|
+
#define MAX_UNKNOWNS 15 /* default estimate for maximum number of unknowns in model */
|
|
139
|
+
#define TOL 1e-9 /* tolerance for comparisons of double numbers */
|
|
140
|
+
#define MAX_LM 3.0 /* maximum log molality allowed in intermediate iterations */
|
|
141
|
+
#define MAX_M 1000.0
|
|
142
|
+
#ifdef USE_DECIMAL128
|
|
143
|
+
// #define MIN_LM -80.0 /* minimum log molality allowed before molality set to zero */
|
|
144
|
+
// #define LOG_ZERO_MOLALITY -80 /* molalities <= LOG_ZERO_MOLALITY are considered equal to zero */
|
|
145
|
+
// #define MIN_TOTAL 1e-60
|
|
146
|
+
// #define MIN_TOTAL_SS MIN_TOTAL/100
|
|
147
|
+
// #define MIN_RELATED_SURFACE MIN_TOTAL*100
|
|
148
|
+
// #define MIN_RELATED_LOG_ACTIVITY -60
|
|
149
|
+
#else
|
|
150
|
+
// #define MIN_LM -30.0 /* minimum log molality allowed before molality set to zero */
|
|
151
|
+
// #define LOG_ZERO_MOLALITY -30 /* molalities <= LOG_ZERO_MOLALITY are considered equal to zero */
|
|
152
|
+
// #define MIN_TOTAL 1e-25
|
|
153
|
+
// #define MIN_TOTAL_SS MIN_TOTAL/100
|
|
154
|
+
// #define MIN_RELATED_SURFACE MIN_TOTAL*100
|
|
155
|
+
// #define MIN_RELATED_LOG_ACTIVITY -30
|
|
156
|
+
#endif
|
|
157
|
+
#define REF_PRES_PASCAL 1.01325E5 /* Reference pressure: 1 atm */
|
|
158
|
+
#define MAX_P_NONLLNL 1500.0
|
|
159
|
+
|
|
160
|
+
//
|
|
161
|
+
// Typedefs and structure definitions
|
|
162
|
+
//
|
|
163
|
+
typedef enum { kcal, cal, kjoules, joules } DELTA_H_UNIT;
|
|
164
|
+
typedef enum { cm3_per_mol, dm3_per_mol, m3_per_mol } DELTA_V_UNIT;
|
|
165
|
+
enum entity_type
|
|
166
|
+
{ Solution, Reaction, Exchange, Surface, Gas_phase, Pure_phase, Ss_phase,
|
|
167
|
+
Kinetics, Mix, Temperature, Pressure, UnKnown
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
typedef enum {
|
|
171
|
+
logK_T0,
|
|
172
|
+
delta_h,
|
|
173
|
+
T_A1,
|
|
174
|
+
T_A2,
|
|
175
|
+
T_A3,
|
|
176
|
+
T_A4,
|
|
177
|
+
T_A5,
|
|
178
|
+
T_A6,
|
|
179
|
+
delta_v, /* set in calc_delta_v: calculated molar volume-change of the reaction */
|
|
180
|
+
vm_tc, /* set in calc_vm: calculated molal volume of the species at tc */
|
|
181
|
+
vm0, /* read: molar volume of a phase */
|
|
182
|
+
vma1, vma2, vma3, vma4, /* read: a1..a4 from supcrt, see calc_vm */
|
|
183
|
+
wref, /* from supcrt */
|
|
184
|
+
b_Av, /* b in z^2 * A_v * log(1 + b * I^0.5) / (2 * b) */
|
|
185
|
+
vmi1, vmi2, vmi3, vmi4, /* ionic strength terms: (i1 + i2/(TK - 228) + i3 * (TK - 228) ) * I^i4 */
|
|
186
|
+
MAX_LOG_K_INDICES /* Keep this definition at the end of the enum */
|
|
187
|
+
} LOG_K_INDICES;
|
|
188
|
+
|
|
189
|
+
typedef struct PHRQMemHeader
|
|
190
|
+
{
|
|
191
|
+
struct PHRQMemHeader *pNext; /* memory allocated just after this one */
|
|
192
|
+
struct PHRQMemHeader *pPrev; /* memory allocated just prior to this one */
|
|
193
|
+
size_t size; /* memory request + sizeof(PHRQMemHeader) */
|
|
194
|
+
#if !defined(NDEBUG)
|
|
195
|
+
char *szFileName; /* file name */
|
|
196
|
+
int nLine; /* line number */
|
|
197
|
+
int dummy; /* alignment */
|
|
198
|
+
#endif
|
|
199
|
+
} PHRQMemHeader;
|
|
200
|
+
|
|
201
|
+
struct Change_Surf
|
|
202
|
+
{
|
|
203
|
+
const char *comp_name;
|
|
204
|
+
LDBLE fraction;
|
|
205
|
+
const char *new_comp_name;
|
|
206
|
+
LDBLE new_Dw;
|
|
207
|
+
int cell_no;
|
|
208
|
+
int next;
|
|
209
|
+
};
|
|
210
|
+
/*----------------------------------------------------------------------
|
|
211
|
+
* CReaction
|
|
212
|
+
*---------------------------------------------------------------------- */
|
|
213
|
+
class rxn_token
|
|
214
|
+
{
|
|
215
|
+
public:
|
|
216
|
+
~rxn_token() {};
|
|
217
|
+
rxn_token()
|
|
218
|
+
{
|
|
219
|
+
s = NULL;
|
|
220
|
+
coef = 0.0;
|
|
221
|
+
name = NULL;
|
|
222
|
+
}
|
|
223
|
+
class species* s;
|
|
224
|
+
LDBLE coef;
|
|
225
|
+
const char* name;
|
|
226
|
+
};
|
|
227
|
+
class CReaction
|
|
228
|
+
{
|
|
229
|
+
public:
|
|
230
|
+
CReaction(void);
|
|
231
|
+
CReaction(size_t ntoken);
|
|
232
|
+
~CReaction(void) {}
|
|
233
|
+
double* Get_logk(void) { return this->logk; }
|
|
234
|
+
void Set_logk(double* d);
|
|
235
|
+
double* Get_dz(void) { return this->dz; }
|
|
236
|
+
void Set_dz(double* d);
|
|
237
|
+
size_t size() { return token.size(); }
|
|
238
|
+
std::vector<class rxn_token>& Get_tokens(void) { return this->token; }
|
|
239
|
+
void Set_tokens(const std::vector<class rxn_token>& t) { this->token = t; }
|
|
240
|
+
|
|
241
|
+
public:
|
|
242
|
+
double logk[MAX_LOG_K_INDICES];
|
|
243
|
+
double dz[3];
|
|
244
|
+
std::vector<class rxn_token> token;
|
|
245
|
+
};
|
|
246
|
+
class save
|
|
247
|
+
{
|
|
248
|
+
public:
|
|
249
|
+
~save() {};
|
|
250
|
+
save()
|
|
251
|
+
{
|
|
252
|
+
solution = 0;
|
|
253
|
+
n_solution_user = 0;
|
|
254
|
+
n_solution_user_end = 0;
|
|
255
|
+
mix = 0;
|
|
256
|
+
n_mix_user = 0;
|
|
257
|
+
n_mix_user_end = 0;
|
|
258
|
+
reaction = 0;
|
|
259
|
+
n_reaction_user = 0;
|
|
260
|
+
n_reaction_user_end = 0;
|
|
261
|
+
pp_assemblage = 0;
|
|
262
|
+
n_pp_assemblage_user = 0;
|
|
263
|
+
n_pp_assemblage_user_end = 0;
|
|
264
|
+
exchange = 0;
|
|
265
|
+
n_exchange_user = 0;
|
|
266
|
+
n_exchange_user_end = 0;
|
|
267
|
+
kinetics = 0;
|
|
268
|
+
n_kinetics_user = 0;
|
|
269
|
+
n_kinetics_user_end = 0;
|
|
270
|
+
surface = 0;
|
|
271
|
+
n_surface_user = 0;
|
|
272
|
+
n_surface_user_end = 0;
|
|
273
|
+
gas_phase = 0;
|
|
274
|
+
n_gas_phase_user = 0;
|
|
275
|
+
n_gas_phase_user_end = 0;
|
|
276
|
+
ss_assemblage = 0;
|
|
277
|
+
n_ss_assemblage_user = 0;
|
|
278
|
+
n_ss_assemblage_user_end = 0;
|
|
279
|
+
}
|
|
280
|
+
int solution;
|
|
281
|
+
int n_solution_user;
|
|
282
|
+
int n_solution_user_end;
|
|
283
|
+
int mix;
|
|
284
|
+
int n_mix_user;
|
|
285
|
+
int n_mix_user_end;
|
|
286
|
+
int reaction;
|
|
287
|
+
int n_reaction_user;
|
|
288
|
+
int n_reaction_user_end;
|
|
289
|
+
int pp_assemblage;
|
|
290
|
+
int n_pp_assemblage_user;
|
|
291
|
+
int n_pp_assemblage_user_end;
|
|
292
|
+
int exchange;
|
|
293
|
+
int n_exchange_user;
|
|
294
|
+
int n_exchange_user_end;
|
|
295
|
+
int kinetics;
|
|
296
|
+
int n_kinetics_user;
|
|
297
|
+
int n_kinetics_user_end;
|
|
298
|
+
int surface;
|
|
299
|
+
int n_surface_user;
|
|
300
|
+
int n_surface_user_end;
|
|
301
|
+
int gas_phase;
|
|
302
|
+
int n_gas_phase_user;
|
|
303
|
+
int n_gas_phase_user_end;
|
|
304
|
+
int ss_assemblage;
|
|
305
|
+
int n_ss_assemblage_user;
|
|
306
|
+
int n_ss_assemblage_user_end;
|
|
307
|
+
};
|
|
308
|
+
|
|
309
|
+
/*----------------------------------------------------------------------
|
|
310
|
+
* Copy
|
|
311
|
+
*---------------------------------------------------------------------- */
|
|
312
|
+
class copier
|
|
313
|
+
{
|
|
314
|
+
public:
|
|
315
|
+
~copier() {};
|
|
316
|
+
copier()
|
|
317
|
+
{}
|
|
318
|
+
std::vector<int> n_user;
|
|
319
|
+
std::vector<int> start;
|
|
320
|
+
std::vector<int> end;
|
|
321
|
+
};
|
|
322
|
+
/*----------------------------------------------------------------------
|
|
323
|
+
* Inverse
|
|
324
|
+
*---------------------------------------------------------------------- */
|
|
325
|
+
class inv_elts
|
|
326
|
+
{
|
|
327
|
+
public:
|
|
328
|
+
~inv_elts() {};
|
|
329
|
+
inv_elts()
|
|
330
|
+
{
|
|
331
|
+
name = NULL;
|
|
332
|
+
master = NULL;
|
|
333
|
+
row = 0;
|
|
334
|
+
//uncertainties.clear();
|
|
335
|
+
}
|
|
336
|
+
const char* name;
|
|
337
|
+
class master* master;
|
|
338
|
+
size_t row;
|
|
339
|
+
std::vector<double> uncertainties;
|
|
340
|
+
};
|
|
341
|
+
class isotope
|
|
342
|
+
{
|
|
343
|
+
public:
|
|
344
|
+
~isotope() {};
|
|
345
|
+
isotope()
|
|
346
|
+
{
|
|
347
|
+
isotope_number = 0;
|
|
348
|
+
elt_name = NULL;
|
|
349
|
+
isotope_name = NULL;
|
|
350
|
+
total = 0;
|
|
351
|
+
ratio = 0;
|
|
352
|
+
ratio_uncertainty = 0;
|
|
353
|
+
x_ratio_uncertainty = 0;
|
|
354
|
+
master = NULL;
|
|
355
|
+
primary = NULL;
|
|
356
|
+
coef = 0; /* coefficient of element in phase */
|
|
357
|
+
}
|
|
358
|
+
LDBLE isotope_number;
|
|
359
|
+
const char* elt_name;
|
|
360
|
+
const char* isotope_name;
|
|
361
|
+
LDBLE total;
|
|
362
|
+
LDBLE ratio;
|
|
363
|
+
LDBLE ratio_uncertainty;
|
|
364
|
+
LDBLE x_ratio_uncertainty;
|
|
365
|
+
class master* master;
|
|
366
|
+
class master* primary;
|
|
367
|
+
LDBLE coef;
|
|
368
|
+
};
|
|
369
|
+
class inv_isotope
|
|
370
|
+
{
|
|
371
|
+
public:
|
|
372
|
+
~inv_isotope() {};
|
|
373
|
+
inv_isotope()
|
|
374
|
+
{
|
|
375
|
+
isotope_name = NULL;
|
|
376
|
+
isotope_number = 0;
|
|
377
|
+
elt_name = NULL;
|
|
378
|
+
//uncertainties.clear();
|
|
379
|
+
}
|
|
380
|
+
const char* isotope_name;
|
|
381
|
+
LDBLE isotope_number;
|
|
382
|
+
const char* elt_name;
|
|
383
|
+
std::vector<double> uncertainties;
|
|
384
|
+
};
|
|
385
|
+
class inv_phases
|
|
386
|
+
{
|
|
387
|
+
public:
|
|
388
|
+
~inv_phases() {};
|
|
389
|
+
inv_phases()
|
|
390
|
+
{
|
|
391
|
+
name = NULL;
|
|
392
|
+
phase = NULL;
|
|
393
|
+
column = 0;
|
|
394
|
+
constraint = EITHER;
|
|
395
|
+
force = FALSE;
|
|
396
|
+
//isotopes.clear();
|
|
397
|
+
}
|
|
398
|
+
const char* name;
|
|
399
|
+
class phase* phase;
|
|
400
|
+
int column;
|
|
401
|
+
int constraint;
|
|
402
|
+
int force;
|
|
403
|
+
std::vector<class isotope> isotopes;
|
|
404
|
+
};
|
|
405
|
+
class inverse
|
|
406
|
+
{
|
|
407
|
+
public:
|
|
408
|
+
~inverse() {};
|
|
409
|
+
inverse()
|
|
410
|
+
{
|
|
411
|
+
n_user = -1;
|
|
412
|
+
description = NULL;
|
|
413
|
+
new_def = FALSE;
|
|
414
|
+
minimal = FALSE;
|
|
415
|
+
range = FALSE;
|
|
416
|
+
mp = FALSE;
|
|
417
|
+
mp_censor = 1e-20;
|
|
418
|
+
range_max = 1000.0;
|
|
419
|
+
tolerance = 1e-10;
|
|
420
|
+
mp_tolerance = 1e-12;
|
|
421
|
+
//uncertainties.clear();
|
|
422
|
+
//ph_uncertainties.clear();
|
|
423
|
+
water_uncertainty = 0.0;
|
|
424
|
+
mineral_water = TRUE;
|
|
425
|
+
carbon = TRUE;
|
|
426
|
+
//dalk_dph.clear();
|
|
427
|
+
//dalk_dc.clear();
|
|
428
|
+
count_solns = 0;
|
|
429
|
+
//solns.clear();
|
|
430
|
+
//force_solns.clear();
|
|
431
|
+
//elts.clear();
|
|
432
|
+
//phases.clear();
|
|
433
|
+
count_redox_rxns = 0;
|
|
434
|
+
//isotopes.clear();
|
|
435
|
+
//i_u.clear();
|
|
436
|
+
//isotope_unknowns.clear();
|
|
437
|
+
netpath = NULL;
|
|
438
|
+
pat = NULL;
|
|
439
|
+
}
|
|
440
|
+
int n_user;
|
|
441
|
+
char* description;
|
|
442
|
+
int new_def;
|
|
443
|
+
int minimal;
|
|
444
|
+
int range;
|
|
445
|
+
int mp;
|
|
446
|
+
LDBLE mp_censor;
|
|
447
|
+
LDBLE range_max;
|
|
448
|
+
LDBLE tolerance;
|
|
449
|
+
LDBLE mp_tolerance;
|
|
450
|
+
std::vector<double> uncertainties;
|
|
451
|
+
std::vector<double> ph_uncertainties;
|
|
452
|
+
LDBLE water_uncertainty;
|
|
453
|
+
int mineral_water;
|
|
454
|
+
int carbon;
|
|
455
|
+
std::vector<double> dalk_dph;
|
|
456
|
+
std::vector<double> dalk_dc;
|
|
457
|
+
size_t count_solns;
|
|
458
|
+
std::vector<int> solns;
|
|
459
|
+
std::vector<bool> force_solns;
|
|
460
|
+
std::vector<class inv_elts> elts;
|
|
461
|
+
std::vector<class inv_phases> phases;
|
|
462
|
+
size_t count_redox_rxns;
|
|
463
|
+
std::vector<class inv_isotope> isotopes;
|
|
464
|
+
std::vector<class inv_isotope> i_u;
|
|
465
|
+
std::vector<class isotope> isotope_unknowns;
|
|
466
|
+
const char* netpath;
|
|
467
|
+
const char* pat;
|
|
468
|
+
};
|
|
469
|
+
/*----------------------------------------------------------------------
|
|
470
|
+
* Jacobian and Mass balance lists
|
|
471
|
+
*---------------------------------------------------------------------- */
|
|
472
|
+
class Model
|
|
473
|
+
{
|
|
474
|
+
public:
|
|
475
|
+
Model()
|
|
476
|
+
{
|
|
477
|
+
force_prep = true;
|
|
478
|
+
gas_phase_type = cxxGasPhase::GP_UNKNOWN;
|
|
479
|
+
numerical_fixed_volume = false;
|
|
480
|
+
dl_type = cxxSurface::NO_DL;
|
|
481
|
+
surface_type = cxxSurface::UNKNOWN_DL;
|
|
482
|
+
};
|
|
483
|
+
~Model()
|
|
484
|
+
{
|
|
485
|
+
};
|
|
486
|
+
bool force_prep;
|
|
487
|
+
bool numerical_fixed_volume;
|
|
488
|
+
cxxGasPhase::GP_TYPE gas_phase_type;
|
|
489
|
+
std::vector<class phase*> gas_phase;
|
|
490
|
+
std::vector<const char*> ss_assemblage;
|
|
491
|
+
std::vector<class phase*> pp_assemblage;
|
|
492
|
+
std::vector<double> si;
|
|
493
|
+
std::vector<const char*> add_formula;
|
|
494
|
+
cxxSurface::DIFFUSE_LAYER_TYPE dl_type;
|
|
495
|
+
cxxSurface::SURFACE_TYPE surface_type;
|
|
496
|
+
std::vector<const char*> surface_comp;
|
|
497
|
+
std::vector<const char*> surface_charge;
|
|
498
|
+
};
|
|
499
|
+
class name_coef
|
|
500
|
+
{
|
|
501
|
+
public:
|
|
502
|
+
~name_coef() {};
|
|
503
|
+
name_coef()
|
|
504
|
+
{
|
|
505
|
+
name = NULL;
|
|
506
|
+
coef = 0;
|
|
507
|
+
}
|
|
508
|
+
const char* name;
|
|
509
|
+
LDBLE coef;
|
|
510
|
+
};
|
|
511
|
+
/*----------------------------------------------------------------------
|
|
512
|
+
* Species_list
|
|
513
|
+
*---------------------------------------------------------------------- */
|
|
514
|
+
class species_list
|
|
515
|
+
{
|
|
516
|
+
public:
|
|
517
|
+
~species_list() {};
|
|
518
|
+
species_list()
|
|
519
|
+
{
|
|
520
|
+
master_s = NULL;
|
|
521
|
+
s = NULL;
|
|
522
|
+
coef = 0;
|
|
523
|
+
}
|
|
524
|
+
class species* master_s;
|
|
525
|
+
class species* s;
|
|
526
|
+
LDBLE coef;
|
|
527
|
+
};
|
|
528
|
+
/*----------------------------------------------------------------------
|
|
529
|
+
* Jacobian and Mass balance lists
|
|
530
|
+
*---------------------------------------------------------------------- */
|
|
531
|
+
class list0
|
|
532
|
+
{
|
|
533
|
+
public:
|
|
534
|
+
~list0() {};
|
|
535
|
+
list0()
|
|
536
|
+
{
|
|
537
|
+
target = NULL;
|
|
538
|
+
coef = 0;
|
|
539
|
+
}
|
|
540
|
+
LDBLE* target;
|
|
541
|
+
LDBLE coef;
|
|
542
|
+
};
|
|
543
|
+
class list1
|
|
544
|
+
{
|
|
545
|
+
public:
|
|
546
|
+
~list1() {};
|
|
547
|
+
list1()
|
|
548
|
+
{
|
|
549
|
+
source = NULL;
|
|
550
|
+
target = NULL;
|
|
551
|
+
}
|
|
552
|
+
LDBLE* source;
|
|
553
|
+
LDBLE* target;
|
|
554
|
+
};
|
|
555
|
+
class list2
|
|
556
|
+
{
|
|
557
|
+
public:
|
|
558
|
+
~list2() {};
|
|
559
|
+
list2()
|
|
560
|
+
{
|
|
561
|
+
source = NULL;
|
|
562
|
+
target = NULL;
|
|
563
|
+
coef = 0;
|
|
564
|
+
}
|
|
565
|
+
LDBLE* source;
|
|
566
|
+
LDBLE* target;
|
|
567
|
+
LDBLE coef;
|
|
568
|
+
};
|
|
569
|
+
class iso
|
|
570
|
+
{
|
|
571
|
+
public:
|
|
572
|
+
~iso() {};
|
|
573
|
+
iso()
|
|
574
|
+
{
|
|
575
|
+
name = NULL;
|
|
576
|
+
value = 0;
|
|
577
|
+
uncertainty = 0.05;
|
|
578
|
+
}
|
|
579
|
+
const char* name;
|
|
580
|
+
LDBLE value;
|
|
581
|
+
LDBLE uncertainty;
|
|
582
|
+
};
|
|
583
|
+
/*----------------------------------------------------------------------
|
|
584
|
+
* Transport data
|
|
585
|
+
*---------------------------------------------------------------------- */
|
|
586
|
+
class stag_data
|
|
587
|
+
{
|
|
588
|
+
public:
|
|
589
|
+
~stag_data() {};
|
|
590
|
+
stag_data()
|
|
591
|
+
{
|
|
592
|
+
count_stag = 0;
|
|
593
|
+
exch_f = 0;
|
|
594
|
+
th_m = 0;
|
|
595
|
+
th_im = 0;
|
|
596
|
+
}
|
|
597
|
+
int count_stag;
|
|
598
|
+
LDBLE exch_f;
|
|
599
|
+
LDBLE th_m;
|
|
600
|
+
LDBLE th_im;
|
|
601
|
+
};
|
|
602
|
+
class cell_data
|
|
603
|
+
{
|
|
604
|
+
public:
|
|
605
|
+
~cell_data() {};
|
|
606
|
+
cell_data()
|
|
607
|
+
{
|
|
608
|
+
length = 1;
|
|
609
|
+
mid_cell_x = 1.;
|
|
610
|
+
disp = 1.0;
|
|
611
|
+
temp = 25.;
|
|
612
|
+
// free (uncharged) porewater porosities
|
|
613
|
+
por = 0.1;
|
|
614
|
+
// interlayer water porosities
|
|
615
|
+
por_il = 0.01;
|
|
616
|
+
// potential (V)
|
|
617
|
+
potV = 0;
|
|
618
|
+
punch = FALSE;
|
|
619
|
+
print = FALSE;
|
|
620
|
+
same_model = FALSE;
|
|
621
|
+
}
|
|
622
|
+
LDBLE length;
|
|
623
|
+
LDBLE mid_cell_x;
|
|
624
|
+
LDBLE disp;
|
|
625
|
+
LDBLE temp;
|
|
626
|
+
LDBLE por;
|
|
627
|
+
LDBLE por_il;
|
|
628
|
+
LDBLE potV;
|
|
629
|
+
int punch;
|
|
630
|
+
int print;
|
|
631
|
+
int same_model;
|
|
632
|
+
};
|
|
633
|
+
/*----------------------------------------------------------------------
|
|
634
|
+
* Keywords
|
|
635
|
+
*---------------------------------------------------------------------- */
|
|
636
|
+
//class key
|
|
637
|
+
//{
|
|
638
|
+
//public:
|
|
639
|
+
// ~key() {};
|
|
640
|
+
// key()
|
|
641
|
+
// {
|
|
642
|
+
// name = NULL;
|
|
643
|
+
// keycount = 0;
|
|
644
|
+
// }
|
|
645
|
+
// char* name;
|
|
646
|
+
// int keycount = 0;
|
|
647
|
+
// };
|
|
648
|
+
//class const_key
|
|
649
|
+
//{
|
|
650
|
+
//public:
|
|
651
|
+
// ~const_key() {};
|
|
652
|
+
// const_key()
|
|
653
|
+
// {
|
|
654
|
+
// name = NULL;
|
|
655
|
+
// keycount = 0;
|
|
656
|
+
// }
|
|
657
|
+
// const char* name;
|
|
658
|
+
// int keycount;
|
|
659
|
+
//};
|
|
660
|
+
/*----------------------------------------------------------------------
|
|
661
|
+
* Elements
|
|
662
|
+
*---------------------------------------------------------------------- */
|
|
663
|
+
class element
|
|
664
|
+
{
|
|
665
|
+
public:
|
|
666
|
+
~element() {};
|
|
667
|
+
element()
|
|
668
|
+
{
|
|
669
|
+
// element name
|
|
670
|
+
name = NULL;
|
|
671
|
+
/* int in; */
|
|
672
|
+
master = NULL;
|
|
673
|
+
primary = NULL;
|
|
674
|
+
gfw = 0;
|
|
675
|
+
}
|
|
676
|
+
const char* name;
|
|
677
|
+
class master* master;
|
|
678
|
+
class master* primary;
|
|
679
|
+
LDBLE gfw;
|
|
680
|
+
};
|
|
681
|
+
/*----------------------------------------------------------------------
|
|
682
|
+
* Element List
|
|
683
|
+
*---------------------------------------------------------------------- */
|
|
684
|
+
class elt_list
|
|
685
|
+
{
|
|
686
|
+
public:
|
|
687
|
+
~elt_list() {};
|
|
688
|
+
elt_list()
|
|
689
|
+
{ /* list of name and number of elements in an equation */
|
|
690
|
+
elt = NULL; /* pointer to element structure */
|
|
691
|
+
coef = 0.0; /* number of element e's in eqn */
|
|
692
|
+
}
|
|
693
|
+
class element* elt;
|
|
694
|
+
LDBLE coef;
|
|
695
|
+
};
|
|
696
|
+
/*----------------------------------------------------------------------
|
|
697
|
+
* Species
|
|
698
|
+
*---------------------------------------------------------------------- */
|
|
699
|
+
class species
|
|
700
|
+
{
|
|
701
|
+
public:
|
|
702
|
+
~species() {};
|
|
703
|
+
species()
|
|
704
|
+
{ /* all data pertinent to an aqueous species */
|
|
705
|
+
name = NULL; // name of species
|
|
706
|
+
mole_balance = NULL; // formula for mole balance
|
|
707
|
+
in = FALSE; // set internally if species in model
|
|
708
|
+
number = 0;
|
|
709
|
+
// points to master species list, NULL if not primary master
|
|
710
|
+
primary = NULL;
|
|
711
|
+
// points to master species list, NULL if not secondary master
|
|
712
|
+
secondary = NULL;
|
|
713
|
+
gfw = 0; // gram formula wt of species
|
|
714
|
+
z = 0; // charge of species
|
|
715
|
+
dw = 0; // tracer diffusion coefficient in water at 25oC, m2/s
|
|
716
|
+
dw_t = 0; // correct Dw for temperature: Dw(TK) = Dw(298.15) * exp(dw_t / TK - dw_t / 298.15)
|
|
717
|
+
// parms for calc'ng SC = SC0 * exp(-dw_a * z * mu^0.5 / (1 + DH_B * dw_a2 * mu^0.5) / (1 + mu^dw_a3))
|
|
718
|
+
// with DHO: ka = DH_B * dw_a * (1 + DD(V_apparent)^dw_a2 * sqrt_mu, dw_a3 is a switch, see calc_SC in PBasic
|
|
719
|
+
dw_a = 0;
|
|
720
|
+
dw_a2 = 0;
|
|
721
|
+
dw_a3 = 0;
|
|
722
|
+
dw_a_visc = 0; // exponent in viscosity correction of SC
|
|
723
|
+
dw_a_v_dif = 0; // exponent in viscosity correction of D, the diffusion coefficient of the species
|
|
724
|
+
dw_t_SC = 0; // contribution to SC, for calc'ng transport number with BASIC
|
|
725
|
+
dw_t_visc = 0; // contribution to viscosity
|
|
726
|
+
dw_corr = 0; // dw corrected for mu and TK
|
|
727
|
+
erm_ddl = 0; // enrichment factor in DDL
|
|
728
|
+
equiv = 0; // equivalents in exchange species
|
|
729
|
+
alk = 0; // alkalinity of species, used for cec in exchange
|
|
730
|
+
carbon = 0; // stoichiometric coefficient of carbon in species
|
|
731
|
+
co2 = 0; // stoichiometric coefficient of C(4) in species
|
|
732
|
+
h = 0; // stoichiometric coefficient of H in species
|
|
733
|
+
// stoichiometric coefficient of O in species
|
|
734
|
+
o = 0;
|
|
735
|
+
// WATEQ Debye Huckel a and b-dot; active_fraction coef for exchange species
|
|
736
|
+
dha = 0, dhb = 0, a_f = 0;
|
|
737
|
+
lk = 0; // log10 k at working temperature
|
|
738
|
+
// log kt0, delh, 6 coefficients analytical expression + volume terms
|
|
739
|
+
for (size_t i = 0; i < MAX_LOG_K_INDICES; i++) logk[i] = 0;
|
|
740
|
+
// 7 coefficients analytical expression for B, D, anion terms and pressure in Jones_Dole viscosity eqn
|
|
741
|
+
for (size_t i = 0; i < 10; i++) Jones_Dole[i] = 0;
|
|
742
|
+
// regression coefficients to calculate temperature dependent phi_0and b_v of Millero density model
|
|
743
|
+
for (size_t i = 0; i < 7; i++) millero[i] = 0;
|
|
744
|
+
original_units = kjoules; // enum with original delta H units
|
|
745
|
+
//add_logk.clear();
|
|
746
|
+
lg = 0; // log10 activity coefficient, gamma
|
|
747
|
+
lg_pitzer = 0; // log10 activity coefficient, from pitzer calculation
|
|
748
|
+
lm = 0; // log10 molality
|
|
749
|
+
la = 0; // log10 activity
|
|
750
|
+
dg = 0; // gamma term for jacobian
|
|
751
|
+
dg_total_g = 0;
|
|
752
|
+
moles = 0; // moles in solution; moles/mass_water = molality
|
|
753
|
+
type = 0; // flag indicating presence in model and types of equations
|
|
754
|
+
gflag = 0; // flag for preferred activity coef eqn
|
|
755
|
+
exch_gflag = 0; // flag for preferred activity coef eqn
|
|
756
|
+
// vector of elements
|
|
757
|
+
//next_elt.clear();
|
|
758
|
+
//next_secondary.clear();
|
|
759
|
+
//next_sys_total.clear();
|
|
760
|
+
// switch to check equation for charge and element balance
|
|
761
|
+
check_equation = TRUE;
|
|
762
|
+
//CReaction rxn; // data base reaction
|
|
763
|
+
//CReaction rxn_s; // reaction converted to secondary and primary master species
|
|
764
|
+
//CReaction rxn_x; // reaction to be used in model
|
|
765
|
+
// (1 + sum(g)) * moles
|
|
766
|
+
tot_g_moles = 0;
|
|
767
|
+
// sum(moles*g*Ws/Waq)
|
|
768
|
+
tot_dh2o_moles = 0;
|
|
769
|
+
for (size_t i = 0; i < 5; i++) cd_music[i] = 0;
|
|
770
|
+
for (size_t i = 0; i < 3; i++) dz[i] = 0;
|
|
771
|
+
original_deltav_units = cm3_per_mol;
|
|
772
|
+
}
|
|
773
|
+
const char* name;
|
|
774
|
+
const char* mole_balance;
|
|
775
|
+
int in;
|
|
776
|
+
int number;
|
|
777
|
+
class master* primary;
|
|
778
|
+
class master* secondary;
|
|
779
|
+
LDBLE gfw;
|
|
780
|
+
LDBLE z;
|
|
781
|
+
LDBLE dw;
|
|
782
|
+
LDBLE dw_t;
|
|
783
|
+
LDBLE dw_a;
|
|
784
|
+
LDBLE dw_a2;
|
|
785
|
+
LDBLE dw_a3;
|
|
786
|
+
LDBLE dw_a_visc;
|
|
787
|
+
LDBLE dw_a_v_dif;
|
|
788
|
+
LDBLE dw_t_SC;
|
|
789
|
+
LDBLE dw_t_visc;
|
|
790
|
+
LDBLE dw_corr;
|
|
791
|
+
LDBLE erm_ddl;
|
|
792
|
+
LDBLE equiv;
|
|
793
|
+
LDBLE alk;
|
|
794
|
+
LDBLE carbon;
|
|
795
|
+
LDBLE co2;
|
|
796
|
+
LDBLE h;
|
|
797
|
+
LDBLE o;
|
|
798
|
+
LDBLE dha, dhb, a_f;
|
|
799
|
+
LDBLE lk;
|
|
800
|
+
LDBLE logk[MAX_LOG_K_INDICES];
|
|
801
|
+
LDBLE Jones_Dole[10];
|
|
802
|
+
LDBLE millero[7];
|
|
803
|
+
DELTA_H_UNIT original_units;
|
|
804
|
+
std::vector<class name_coef> add_logk;
|
|
805
|
+
LDBLE lg;
|
|
806
|
+
LDBLE lg_pitzer;
|
|
807
|
+
LDBLE lm;
|
|
808
|
+
LDBLE la;
|
|
809
|
+
LDBLE dg;
|
|
810
|
+
LDBLE dg_total_g;
|
|
811
|
+
LDBLE moles;
|
|
812
|
+
int type;
|
|
813
|
+
int gflag;
|
|
814
|
+
int exch_gflag;
|
|
815
|
+
std::vector<class elt_list> next_elt;
|
|
816
|
+
std::vector<class elt_list> next_secondary;
|
|
817
|
+
std::vector<class elt_list> next_sys_total;
|
|
818
|
+
int check_equation;
|
|
819
|
+
CReaction rxn;
|
|
820
|
+
CReaction rxn_s;
|
|
821
|
+
CReaction rxn_x;
|
|
822
|
+
LDBLE tot_g_moles;
|
|
823
|
+
LDBLE tot_dh2o_moles;
|
|
824
|
+
LDBLE cd_music[5];
|
|
825
|
+
LDBLE dz[3];
|
|
826
|
+
DELTA_V_UNIT original_deltav_units;
|
|
827
|
+
};
|
|
828
|
+
class logk
|
|
829
|
+
{
|
|
830
|
+
public:
|
|
831
|
+
~logk() {};
|
|
832
|
+
logk()
|
|
833
|
+
{ /* Named log K's */
|
|
834
|
+
name = NULL; // name of species
|
|
835
|
+
lk = 0.0; // log10 k at working temperature
|
|
836
|
+
// log kt0, delh, 6 coefficients analalytical expression
|
|
837
|
+
for (size_t i = 0; i < MAX_LOG_K_INDICES; i++) log_k[i] = 0;
|
|
838
|
+
// enum with original delta H units
|
|
839
|
+
original_units = kjoules;
|
|
840
|
+
done = FALSE;
|
|
841
|
+
//add_logk.clear();
|
|
842
|
+
// log kt0, delh, 5 coefficients analalytical expression
|
|
843
|
+
for (size_t i = 0; i < MAX_LOG_K_INDICES; i++) log_k_original[i] = 0;
|
|
844
|
+
original_deltav_units = cm3_per_mol;
|
|
845
|
+
}
|
|
846
|
+
const char* name;
|
|
847
|
+
LDBLE lk;
|
|
848
|
+
LDBLE log_k[MAX_LOG_K_INDICES];
|
|
849
|
+
DELTA_H_UNIT original_units;
|
|
850
|
+
int done;
|
|
851
|
+
std::vector<class name_coef> add_logk;
|
|
852
|
+
LDBLE log_k_original[MAX_LOG_K_INDICES];
|
|
853
|
+
DELTA_V_UNIT original_deltav_units;
|
|
854
|
+
};
|
|
855
|
+
/*----------------------------------------------------------------------
|
|
856
|
+
* Phases
|
|
857
|
+
*---------------------------------------------------------------------- */
|
|
858
|
+
class phase
|
|
859
|
+
{
|
|
860
|
+
public:
|
|
861
|
+
~phase() {};
|
|
862
|
+
phase()
|
|
863
|
+
{ /* all data pertinent to a pure solid phase */
|
|
864
|
+
name = NULL; //name of species
|
|
865
|
+
formula = NULL; // chemical formula
|
|
866
|
+
in = FALSE; // species used in model if TRUE
|
|
867
|
+
lk = 0; // log10 k at working temperature
|
|
868
|
+
// log kt0, delh, 6 coefficients analalytical expression
|
|
869
|
+
for (size_t i = 0; i < MAX_LOG_K_INDICES; i++) logk[i] = 0;
|
|
870
|
+
// enum with original delta H units
|
|
871
|
+
original_units = kjoules;
|
|
872
|
+
original_deltav_units = cm3_per_mol;
|
|
873
|
+
//add_logk.clear();
|
|
874
|
+
moles_x = 0;
|
|
875
|
+
delta_max = 0;
|
|
876
|
+
p_soln_x = 0;
|
|
877
|
+
fraction_x = 0;
|
|
878
|
+
log10_lambda = 0;
|
|
879
|
+
log10_fraction_x = 0;
|
|
880
|
+
dn = 0, dnb = 0, dnc = 0;
|
|
881
|
+
gn = 0, gntot = 0;
|
|
882
|
+
gn_n = 0, gntot_n = 0;
|
|
883
|
+
// gas: critical TK, critical P(atm), Pitzer acentric coeff
|
|
884
|
+
t_c = 0, p_c = 0, omega = 0;
|
|
885
|
+
// Peng-Robinson parm's
|
|
886
|
+
pr_a = 0, pr_b = 0, pr_alpha = 0;
|
|
887
|
+
// Temperature (K), Pressure (atm)
|
|
888
|
+
pr_tk = 0, pr_p = 0;
|
|
889
|
+
// fugacity coefficient (-)
|
|
890
|
+
pr_phi = 0;
|
|
891
|
+
// for calculating multicomponent phi
|
|
892
|
+
pr_aa_sum2 = 0;
|
|
893
|
+
// delta_v[0] = [1] + [2]*T + [3]/T + [4]*log10(T) + [5]/T^2 + [6]*T^2 + [7]*P
|
|
894
|
+
for (size_t i = 0; i < 9; i++) delta_v[i] = 0;
|
|
895
|
+
// si adapter: log10(phi) - delta_v[0] * (P - 1) /RT
|
|
896
|
+
pr_si_f = 0;
|
|
897
|
+
// Peng-Robinson in the calc's, or not
|
|
898
|
+
pr_in = false;
|
|
899
|
+
// flag indicating presence in model and types of equations
|
|
900
|
+
type = SOLID;
|
|
901
|
+
// list of elements in phase
|
|
902
|
+
//next_elt.clear();
|
|
903
|
+
//next_sys_total.clear();
|
|
904
|
+
// switch to check equation for charge and element balance
|
|
905
|
+
check_equation = TRUE;
|
|
906
|
+
// data base reaction
|
|
907
|
+
//CReaction rxn;
|
|
908
|
+
// reaction converted to secondary and primary master species
|
|
909
|
+
//CReaction rxn_s;
|
|
910
|
+
// reaction to be used in model
|
|
911
|
+
//CReaction rxn_x;
|
|
912
|
+
// equation contains solids or gases
|
|
913
|
+
replaced = FALSE;
|
|
914
|
+
in_system = FALSE;
|
|
915
|
+
}
|
|
916
|
+
const char* name;
|
|
917
|
+
const char* formula;
|
|
918
|
+
int in;
|
|
919
|
+
LDBLE lk;
|
|
920
|
+
LDBLE logk[MAX_LOG_K_INDICES];
|
|
921
|
+
DELTA_H_UNIT original_units;
|
|
922
|
+
DELTA_V_UNIT original_deltav_units;
|
|
923
|
+
std::vector<class name_coef> add_logk;
|
|
924
|
+
LDBLE moles_x;
|
|
925
|
+
LDBLE delta_max;
|
|
926
|
+
LDBLE p_soln_x;
|
|
927
|
+
LDBLE fraction_x;
|
|
928
|
+
LDBLE log10_lambda;
|
|
929
|
+
LDBLE log10_fraction_x;
|
|
930
|
+
LDBLE dn, dnb, dnc;
|
|
931
|
+
LDBLE gn, gntot;
|
|
932
|
+
LDBLE gn_n, gntot_n;
|
|
933
|
+
LDBLE t_c, p_c, omega;
|
|
934
|
+
LDBLE pr_a, pr_b, pr_alpha;
|
|
935
|
+
LDBLE pr_tk, pr_p;
|
|
936
|
+
LDBLE pr_phi;
|
|
937
|
+
LDBLE pr_aa_sum2;
|
|
938
|
+
LDBLE delta_v[9];
|
|
939
|
+
LDBLE pr_si_f;
|
|
940
|
+
bool pr_in;
|
|
941
|
+
int type;
|
|
942
|
+
std::vector<class elt_list> next_elt;
|
|
943
|
+
std::vector<class elt_list> next_sys_total;
|
|
944
|
+
int check_equation;
|
|
945
|
+
CReaction rxn;
|
|
946
|
+
CReaction rxn_s;
|
|
947
|
+
CReaction rxn_x;
|
|
948
|
+
int replaced;
|
|
949
|
+
int in_system;
|
|
950
|
+
};
|
|
951
|
+
/*----------------------------------------------------------------------
|
|
952
|
+
* Master species
|
|
953
|
+
*---------------------------------------------------------------------- */
|
|
954
|
+
class master
|
|
955
|
+
{
|
|
956
|
+
public:
|
|
957
|
+
~master() {};
|
|
958
|
+
master()
|
|
959
|
+
{
|
|
960
|
+
// TRUE if in model, FALSE if out, REWRITE if other mb eq
|
|
961
|
+
in = 0;
|
|
962
|
+
// sequence number in list of masters
|
|
963
|
+
number = 0;
|
|
964
|
+
// saved to determine if model has changed
|
|
965
|
+
last_model = FALSE;
|
|
966
|
+
// AQ or EX
|
|
967
|
+
type = 0;
|
|
968
|
+
// TRUE if master species is primary
|
|
969
|
+
primary = FALSE;
|
|
970
|
+
// coefficient of element in master species
|
|
971
|
+
coef = 0;
|
|
972
|
+
// total concentration for element or valence state
|
|
973
|
+
total = 0;
|
|
974
|
+
isotope_ratio = 0;
|
|
975
|
+
isotope_ratio_uncertainty = 0;
|
|
976
|
+
isotope = 0;
|
|
977
|
+
total_primary = 0;
|
|
978
|
+
// element structure
|
|
979
|
+
elt = NULL;
|
|
980
|
+
// alkalinity of species
|
|
981
|
+
alk = 0;
|
|
982
|
+
// default gfw for species
|
|
983
|
+
gfw = 1;
|
|
984
|
+
// formula from which to calculate gfw
|
|
985
|
+
gfw_formula = NULL;
|
|
986
|
+
// pointer to unknown structure
|
|
987
|
+
unknown = NULL;
|
|
988
|
+
// pointer to species structure
|
|
989
|
+
s = NULL;
|
|
990
|
+
// reaction writes master species in terms of primary master species
|
|
991
|
+
//CReaction rxn_primary;
|
|
992
|
+
// reaction writes master species in terms of secondary master species
|
|
993
|
+
//CReaction rxn_secondary;
|
|
994
|
+
pe_rxn = NULL;
|
|
995
|
+
minor_isotope = FALSE;
|
|
996
|
+
}
|
|
997
|
+
int in;
|
|
998
|
+
size_t number;
|
|
999
|
+
int last_model;
|
|
1000
|
+
int type;
|
|
1001
|
+
int primary;
|
|
1002
|
+
LDBLE coef;
|
|
1003
|
+
LDBLE total;
|
|
1004
|
+
LDBLE isotope_ratio;
|
|
1005
|
+
LDBLE isotope_ratio_uncertainty;
|
|
1006
|
+
int isotope;
|
|
1007
|
+
LDBLE total_primary;
|
|
1008
|
+
class element* elt;
|
|
1009
|
+
LDBLE alk;
|
|
1010
|
+
LDBLE gfw;
|
|
1011
|
+
const char* gfw_formula;
|
|
1012
|
+
class unknown* unknown;
|
|
1013
|
+
class species* s;
|
|
1014
|
+
CReaction rxn_primary;
|
|
1015
|
+
CReaction rxn_secondary;
|
|
1016
|
+
const char* pe_rxn;
|
|
1017
|
+
int minor_isotope;
|
|
1018
|
+
};
|
|
1019
|
+
/*----------------------------------------------------------------------
|
|
1020
|
+
* Unknowns
|
|
1021
|
+
*---------------------------------------------------------------------- */
|
|
1022
|
+
class unknown
|
|
1023
|
+
{
|
|
1024
|
+
public:
|
|
1025
|
+
~unknown() {};
|
|
1026
|
+
unknown()
|
|
1027
|
+
{
|
|
1028
|
+
type = 0;
|
|
1029
|
+
moles = 0;
|
|
1030
|
+
ln_moles = 0;
|
|
1031
|
+
f = 0;
|
|
1032
|
+
sum = 0;
|
|
1033
|
+
delta = 0;
|
|
1034
|
+
la = 0;
|
|
1035
|
+
number = 0;
|
|
1036
|
+
description = NULL;
|
|
1037
|
+
//master.clear();
|
|
1038
|
+
phase = NULL;
|
|
1039
|
+
si = 0;
|
|
1040
|
+
n_gas_phase_user = 0;
|
|
1041
|
+
s = NULL;
|
|
1042
|
+
exch_comp = NULL;
|
|
1043
|
+
pp_assemblage_comp_name = NULL;
|
|
1044
|
+
pp_assemblage_comp_ptr = NULL;
|
|
1045
|
+
ss_name = NULL;
|
|
1046
|
+
ss_ptr = NULL;
|
|
1047
|
+
ss_comp_name = NULL;
|
|
1048
|
+
ss_comp_ptr = NULL;
|
|
1049
|
+
ss_comp_number = 0;
|
|
1050
|
+
ss_in = FALSE;
|
|
1051
|
+
surface_comp = NULL;
|
|
1052
|
+
surface_charge = NULL;
|
|
1053
|
+
related_moles = 0;
|
|
1054
|
+
potential_unknown = NULL;
|
|
1055
|
+
potential_unknown1 = NULL;
|
|
1056
|
+
potential_unknown2 = NULL;
|
|
1057
|
+
// list for CD_MUSIC of comps that contribute to 0 plane mass-balance term
|
|
1058
|
+
//comp_unknowns.clear();
|
|
1059
|
+
phase_unknown = NULL;
|
|
1060
|
+
mass_water = 1;
|
|
1061
|
+
dissolve_only = FALSE;
|
|
1062
|
+
inert_moles = 0;
|
|
1063
|
+
V_m = 0;
|
|
1064
|
+
pressure = 1;
|
|
1065
|
+
mb_number = 0;
|
|
1066
|
+
iteration = 0;
|
|
1067
|
+
}
|
|
1068
|
+
int type;
|
|
1069
|
+
LDBLE moles;
|
|
1070
|
+
LDBLE ln_moles;
|
|
1071
|
+
LDBLE f;
|
|
1072
|
+
LDBLE sum;
|
|
1073
|
+
LDBLE delta;
|
|
1074
|
+
LDBLE la;
|
|
1075
|
+
size_t number;
|
|
1076
|
+
const char* description;
|
|
1077
|
+
std::vector<class master*> master;
|
|
1078
|
+
class phase* phase;
|
|
1079
|
+
LDBLE si;
|
|
1080
|
+
int n_gas_phase_user;
|
|
1081
|
+
class species* s;
|
|
1082
|
+
const char* exch_comp;
|
|
1083
|
+
const char* pp_assemblage_comp_name;
|
|
1084
|
+
void* pp_assemblage_comp_ptr;
|
|
1085
|
+
const char* ss_name;
|
|
1086
|
+
void* ss_ptr;
|
|
1087
|
+
const char* ss_comp_name;
|
|
1088
|
+
void* ss_comp_ptr;
|
|
1089
|
+
int ss_comp_number;
|
|
1090
|
+
int ss_in;
|
|
1091
|
+
const char* surface_comp;
|
|
1092
|
+
const char* surface_charge;
|
|
1093
|
+
LDBLE related_moles;
|
|
1094
|
+
class unknown* potential_unknown;
|
|
1095
|
+
class unknown* potential_unknown1;
|
|
1096
|
+
class unknown* potential_unknown2;
|
|
1097
|
+
std::vector<class unknown*> comp_unknowns;
|
|
1098
|
+
class unknown* phase_unknown;
|
|
1099
|
+
LDBLE mass_water;
|
|
1100
|
+
int dissolve_only;
|
|
1101
|
+
LDBLE inert_moles;
|
|
1102
|
+
LDBLE V_m;
|
|
1103
|
+
LDBLE pressure;
|
|
1104
|
+
int mb_number;
|
|
1105
|
+
int iteration;
|
|
1106
|
+
};
|
|
1107
|
+
/*----------------------------------------------------------------------
|
|
1108
|
+
* Reaction work space
|
|
1109
|
+
*---------------------------------------------------------------------- */
|
|
1110
|
+
class rxn_token_temp
|
|
1111
|
+
{
|
|
1112
|
+
public:
|
|
1113
|
+
~rxn_token_temp() {};
|
|
1114
|
+
rxn_token_temp()
|
|
1115
|
+
{ // data for equations, aq. species or minerals
|
|
1116
|
+
name = NULL; // pointer to a species name (formula)
|
|
1117
|
+
z = 0; // charge on species
|
|
1118
|
+
s = NULL;
|
|
1119
|
+
unknown = NULL;
|
|
1120
|
+
coef = 0; // coefficient of species name
|
|
1121
|
+
}
|
|
1122
|
+
const char* name;
|
|
1123
|
+
LDBLE z;
|
|
1124
|
+
class species* s;
|
|
1125
|
+
class unknown* unknown;
|
|
1126
|
+
LDBLE coef;
|
|
1127
|
+
};
|
|
1128
|
+
class reaction_temp
|
|
1129
|
+
{
|
|
1130
|
+
public:
|
|
1131
|
+
~reaction_temp() {};
|
|
1132
|
+
reaction_temp()
|
|
1133
|
+
{
|
|
1134
|
+
for (size_t i = 0; i < MAX_LOG_K_INDICES; i++) logk[i] = 0;
|
|
1135
|
+
for (size_t i = 0; i < 3; i++) dz[i] = 0;
|
|
1136
|
+
//token.clear();
|
|
1137
|
+
}
|
|
1138
|
+
LDBLE logk[MAX_LOG_K_INDICES];
|
|
1139
|
+
LDBLE dz[3];
|
|
1140
|
+
std::vector<class rxn_token_temp> token;
|
|
1141
|
+
};
|
|
1142
|
+
class unknown_list
|
|
1143
|
+
{
|
|
1144
|
+
public:
|
|
1145
|
+
~unknown_list() {};
|
|
1146
|
+
unknown_list()
|
|
1147
|
+
{
|
|
1148
|
+
unknown = NULL;
|
|
1149
|
+
source = NULL;
|
|
1150
|
+
gamma_source = NULL;
|
|
1151
|
+
coef = 0;
|
|
1152
|
+
}
|
|
1153
|
+
class unknown* unknown;
|
|
1154
|
+
LDBLE* source;
|
|
1155
|
+
LDBLE* gamma_source;
|
|
1156
|
+
LDBLE coef;
|
|
1157
|
+
};
|
|
1158
|
+
/* ----------------------------------------------------------------------
|
|
1159
|
+
* Print
|
|
1160
|
+
* ---------------------------------------------------------------------- */
|
|
1161
|
+
class prints
|
|
1162
|
+
{
|
|
1163
|
+
public:
|
|
1164
|
+
~prints() {};
|
|
1165
|
+
prints()
|
|
1166
|
+
{
|
|
1167
|
+
all = 0;
|
|
1168
|
+
initial_solutions = 0;
|
|
1169
|
+
initial_exchangers = 0;
|
|
1170
|
+
reactions = 0;
|
|
1171
|
+
gas_phase = 0;
|
|
1172
|
+
ss_assemblage = 0;
|
|
1173
|
+
pp_assemblage = 0;
|
|
1174
|
+
surface = 0;
|
|
1175
|
+
exchange = 0;
|
|
1176
|
+
kinetics = 0;
|
|
1177
|
+
totals = 0;
|
|
1178
|
+
eh = 0;
|
|
1179
|
+
species = 0;
|
|
1180
|
+
saturation_indices = 0;
|
|
1181
|
+
irrev = 0;
|
|
1182
|
+
mix = 0;
|
|
1183
|
+
reaction = 0;
|
|
1184
|
+
use = 0;
|
|
1185
|
+
logfile = 0;
|
|
1186
|
+
punch = 0;
|
|
1187
|
+
status = 0;
|
|
1188
|
+
inverse = 0;
|
|
1189
|
+
dump = 0;
|
|
1190
|
+
user_print = 0;
|
|
1191
|
+
headings = 0;
|
|
1192
|
+
user_graph = 0;
|
|
1193
|
+
echo_input = 0;
|
|
1194
|
+
warnings = 0;
|
|
1195
|
+
initial_isotopes = 0;
|
|
1196
|
+
isotope_ratios = 0;
|
|
1197
|
+
isotope_alphas = 0;
|
|
1198
|
+
hdf = 0;
|
|
1199
|
+
alkalinity = 0;
|
|
1200
|
+
}
|
|
1201
|
+
int all;
|
|
1202
|
+
int initial_solutions;
|
|
1203
|
+
int initial_exchangers;
|
|
1204
|
+
int reactions;
|
|
1205
|
+
int gas_phase;
|
|
1206
|
+
int ss_assemblage;
|
|
1207
|
+
int pp_assemblage;
|
|
1208
|
+
int surface;
|
|
1209
|
+
int exchange;
|
|
1210
|
+
int kinetics;
|
|
1211
|
+
int totals;
|
|
1212
|
+
int eh;
|
|
1213
|
+
int species;
|
|
1214
|
+
int saturation_indices;
|
|
1215
|
+
int irrev;
|
|
1216
|
+
int mix;
|
|
1217
|
+
int reaction;
|
|
1218
|
+
int use;
|
|
1219
|
+
int logfile;
|
|
1220
|
+
int punch;
|
|
1221
|
+
int status;
|
|
1222
|
+
int inverse;
|
|
1223
|
+
int dump;
|
|
1224
|
+
int user_print;
|
|
1225
|
+
int headings;
|
|
1226
|
+
int user_graph;
|
|
1227
|
+
int echo_input;
|
|
1228
|
+
int warnings;
|
|
1229
|
+
int initial_isotopes;
|
|
1230
|
+
int isotope_ratios;
|
|
1231
|
+
int isotope_alphas;
|
|
1232
|
+
int hdf;
|
|
1233
|
+
int alkalinity;
|
|
1234
|
+
};
|
|
1235
|
+
/* ----------------------------------------------------------------------
|
|
1236
|
+
* RATES
|
|
1237
|
+
* ---------------------------------------------------------------------- */
|
|
1238
|
+
class rate
|
|
1239
|
+
{
|
|
1240
|
+
public:
|
|
1241
|
+
~rate() {};
|
|
1242
|
+
rate()
|
|
1243
|
+
{
|
|
1244
|
+
name = NULL;
|
|
1245
|
+
//std::string commands;
|
|
1246
|
+
new_def = 0;
|
|
1247
|
+
linebase = NULL;
|
|
1248
|
+
varbase = NULL;
|
|
1249
|
+
loopbase = NULL;
|
|
1250
|
+
}
|
|
1251
|
+
const char* name;
|
|
1252
|
+
std::string commands;
|
|
1253
|
+
int new_def;
|
|
1254
|
+
void* linebase;
|
|
1255
|
+
void* varbase;
|
|
1256
|
+
void* loopbase;
|
|
1257
|
+
};
|
|
1258
|
+
/* ----------------------------------------------------------------------
|
|
1259
|
+
* GLOBAL DECLARATIONS
|
|
1260
|
+
* ---------------------------------------------------------------------- */
|
|
1261
|
+
class spread_row
|
|
1262
|
+
{
|
|
1263
|
+
public:
|
|
1264
|
+
~spread_row() {};
|
|
1265
|
+
spread_row()
|
|
1266
|
+
{
|
|
1267
|
+
count = 0;
|
|
1268
|
+
empty = 0, string = 0, number = 0;
|
|
1269
|
+
//char_vector.clear();
|
|
1270
|
+
//d_vector.clear();
|
|
1271
|
+
//type_vector.clear();
|
|
1272
|
+
}
|
|
1273
|
+
size_t count;
|
|
1274
|
+
size_t empty, string, number;
|
|
1275
|
+
std::vector<std::string> str_vector;
|
|
1276
|
+
std::vector<int> type_vector;
|
|
1277
|
+
};
|
|
1278
|
+
class defaults
|
|
1279
|
+
{
|
|
1280
|
+
public:
|
|
1281
|
+
~defaults() {};
|
|
1282
|
+
defaults()
|
|
1283
|
+
{
|
|
1284
|
+
temp = 25;
|
|
1285
|
+
density = 1;
|
|
1286
|
+
calc_density = false;
|
|
1287
|
+
units = NULL;
|
|
1288
|
+
redox = NULL;
|
|
1289
|
+
ph = 7;
|
|
1290
|
+
pe = 4;
|
|
1291
|
+
water = 1;
|
|
1292
|
+
//iso.clear();
|
|
1293
|
+
pressure = 1; /* pressure in atm */
|
|
1294
|
+
}
|
|
1295
|
+
LDBLE temp;
|
|
1296
|
+
LDBLE density;
|
|
1297
|
+
bool calc_density;
|
|
1298
|
+
const char* units;
|
|
1299
|
+
const char* redox;
|
|
1300
|
+
LDBLE ph;
|
|
1301
|
+
LDBLE pe;
|
|
1302
|
+
LDBLE water;
|
|
1303
|
+
std::vector<class iso> iso;
|
|
1304
|
+
LDBLE pressure;
|
|
1305
|
+
};
|
|
1306
|
+
class spread_sheet
|
|
1307
|
+
{
|
|
1308
|
+
public:
|
|
1309
|
+
~spread_sheet() {};
|
|
1310
|
+
spread_sheet()
|
|
1311
|
+
{
|
|
1312
|
+
heading = NULL;
|
|
1313
|
+
units = NULL;
|
|
1314
|
+
//class defaults defaults;
|
|
1315
|
+
}
|
|
1316
|
+
class spread_row* heading;
|
|
1317
|
+
class spread_row* units;
|
|
1318
|
+
std::vector<class spread_row*> rows;
|
|
1319
|
+
class defaults defaults;
|
|
1320
|
+
};
|
|
1321
|
+
/* ----------------------------------------------------------------------
|
|
1322
|
+
* ISOTOPES
|
|
1323
|
+
* ---------------------------------------------------------------------- */
|
|
1324
|
+
class master_isotope
|
|
1325
|
+
{
|
|
1326
|
+
public:
|
|
1327
|
+
~master_isotope() {};
|
|
1328
|
+
master_isotope()
|
|
1329
|
+
{
|
|
1330
|
+
name = NULL;
|
|
1331
|
+
master = NULL;
|
|
1332
|
+
elt = NULL;
|
|
1333
|
+
units = NULL;
|
|
1334
|
+
standard = 0;
|
|
1335
|
+
ratio = 0;
|
|
1336
|
+
moles = 0;
|
|
1337
|
+
total_is_major = 0;
|
|
1338
|
+
minor_isotope = 0;
|
|
1339
|
+
}
|
|
1340
|
+
const char* name;
|
|
1341
|
+
class master* master;
|
|
1342
|
+
class element* elt;
|
|
1343
|
+
const char* units;
|
|
1344
|
+
LDBLE standard;
|
|
1345
|
+
LDBLE ratio;
|
|
1346
|
+
LDBLE moles;
|
|
1347
|
+
int total_is_major;
|
|
1348
|
+
int minor_isotope;
|
|
1349
|
+
};
|
|
1350
|
+
class calculate_value
|
|
1351
|
+
{
|
|
1352
|
+
public:
|
|
1353
|
+
~calculate_value() {};
|
|
1354
|
+
calculate_value()
|
|
1355
|
+
{
|
|
1356
|
+
name = NULL;
|
|
1357
|
+
value = 0;
|
|
1358
|
+
//commands.clear();
|
|
1359
|
+
new_def = 0;
|
|
1360
|
+
calculated = 0;
|
|
1361
|
+
linebase = NULL;
|
|
1362
|
+
varbase = NULL;
|
|
1363
|
+
loopbase = NULL;
|
|
1364
|
+
}
|
|
1365
|
+
const char* name;
|
|
1366
|
+
LDBLE value;
|
|
1367
|
+
std::string commands;
|
|
1368
|
+
int new_def;
|
|
1369
|
+
int calculated;
|
|
1370
|
+
void* linebase;
|
|
1371
|
+
void* varbase;
|
|
1372
|
+
void* loopbase;
|
|
1373
|
+
};
|
|
1374
|
+
class isotope_ratio
|
|
1375
|
+
{
|
|
1376
|
+
public:
|
|
1377
|
+
isotope_ratio()
|
|
1378
|
+
{
|
|
1379
|
+
name = NULL;
|
|
1380
|
+
isotope_name = NULL;
|
|
1381
|
+
ratio = 0;
|
|
1382
|
+
converted_ratio = 0;
|
|
1383
|
+
}
|
|
1384
|
+
~isotope_ratio() {};
|
|
1385
|
+
|
|
1386
|
+
const char* name;
|
|
1387
|
+
const char* isotope_name;
|
|
1388
|
+
LDBLE ratio;
|
|
1389
|
+
LDBLE converted_ratio;
|
|
1390
|
+
};
|
|
1391
|
+
class isotope_alpha
|
|
1392
|
+
{
|
|
1393
|
+
public:
|
|
1394
|
+
isotope_alpha()
|
|
1395
|
+
{
|
|
1396
|
+
name = NULL;
|
|
1397
|
+
named_logk = NULL;
|
|
1398
|
+
value = 0;
|
|
1399
|
+
}
|
|
1400
|
+
~isotope_alpha() {};
|
|
1401
|
+
const char* name;
|
|
1402
|
+
const char* named_logk;
|
|
1403
|
+
LDBLE value;
|
|
1404
|
+
};
|
|
1405
|
+
class system_species
|
|
1406
|
+
{
|
|
1407
|
+
public:
|
|
1408
|
+
~system_species() {};
|
|
1409
|
+
system_species()
|
|
1410
|
+
{
|
|
1411
|
+
name = NULL;
|
|
1412
|
+
type = NULL;
|
|
1413
|
+
moles = 0;
|
|
1414
|
+
}
|
|
1415
|
+
char* name;
|
|
1416
|
+
char* type;
|
|
1417
|
+
LDBLE moles;
|
|
1418
|
+
};
|
|
1419
|
+
/* tally.c ------------------------------- */
|
|
1420
|
+
class tally_buffer
|
|
1421
|
+
{
|
|
1422
|
+
public:
|
|
1423
|
+
~tally_buffer() {};
|
|
1424
|
+
tally_buffer()
|
|
1425
|
+
{
|
|
1426
|
+
name = NULL;
|
|
1427
|
+
master = NULL;
|
|
1428
|
+
moles = 0;
|
|
1429
|
+
gfw = 0;
|
|
1430
|
+
}
|
|
1431
|
+
const char* name;
|
|
1432
|
+
class master* master;
|
|
1433
|
+
LDBLE moles;
|
|
1434
|
+
LDBLE gfw;
|
|
1435
|
+
};
|
|
1436
|
+
class tally
|
|
1437
|
+
{
|
|
1438
|
+
public:
|
|
1439
|
+
~tally() {};
|
|
1440
|
+
tally()
|
|
1441
|
+
{
|
|
1442
|
+
name = NULL;
|
|
1443
|
+
type = UnKnown;
|
|
1444
|
+
add_formula = NULL;
|
|
1445
|
+
moles = 0;
|
|
1446
|
+
//formula.clear();
|
|
1447
|
+
/*
|
|
1448
|
+
* first total is initial
|
|
1449
|
+
* second total is final
|
|
1450
|
+
* third total is difference (final - initial)
|
|
1451
|
+
*/
|
|
1452
|
+
for(size_t i = 0; i < 3; i++) total[i]= NULL;
|
|
1453
|
+
}
|
|
1454
|
+
const char* name;
|
|
1455
|
+
enum entity_type type;
|
|
1456
|
+
const char* add_formula;
|
|
1457
|
+
LDBLE moles;
|
|
1458
|
+
std::vector<class elt_list> formula;
|
|
1459
|
+
/*
|
|
1460
|
+
* first total is initial
|
|
1461
|
+
* second total is final
|
|
1462
|
+
* third total is difference (final - initial)
|
|
1463
|
+
*/
|
|
1464
|
+
class tally_buffer* total[3];
|
|
1465
|
+
};
|
|
1466
|
+
/* transport.c ------------------------------- */
|
|
1467
|
+
class spec
|
|
1468
|
+
{
|
|
1469
|
+
public:
|
|
1470
|
+
~spec() {};
|
|
1471
|
+
spec()
|
|
1472
|
+
{
|
|
1473
|
+
// name of species
|
|
1474
|
+
name = NULL;
|
|
1475
|
+
// name of aqueous species in EX species
|
|
1476
|
+
aq_name = NULL;
|
|
1477
|
+
// type: AQ or EX
|
|
1478
|
+
type = 0;
|
|
1479
|
+
// activity
|
|
1480
|
+
a = 0;
|
|
1481
|
+
// log(concentration)
|
|
1482
|
+
lm = 0;
|
|
1483
|
+
// log(gamma)
|
|
1484
|
+
lg = 0;
|
|
1485
|
+
// concentration for AQ, equivalent fraction for EX
|
|
1486
|
+
c = 0;
|
|
1487
|
+
// charge number
|
|
1488
|
+
z = 0;
|
|
1489
|
+
// free water diffusion coefficient, m2/s
|
|
1490
|
+
Dw = 0;
|
|
1491
|
+
// temperature and viscosity corrected free water diffusion coefficient, m2/s
|
|
1492
|
+
Dwt = 0;
|
|
1493
|
+
// temperature factor for Dw
|
|
1494
|
+
dw_t = 0;
|
|
1495
|
+
// viscosity factor for Dw
|
|
1496
|
+
dw_a_v_dif = 0;
|
|
1497
|
+
// enrichment factor in ddl
|
|
1498
|
+
erm_ddl = 0;
|
|
1499
|
+
}
|
|
1500
|
+
const char* name;
|
|
1501
|
+
const char* aq_name;
|
|
1502
|
+
int type;
|
|
1503
|
+
LDBLE a;
|
|
1504
|
+
LDBLE lm;
|
|
1505
|
+
LDBLE lg;
|
|
1506
|
+
LDBLE c;
|
|
1507
|
+
LDBLE z;
|
|
1508
|
+
LDBLE Dw;
|
|
1509
|
+
LDBLE Dwt;
|
|
1510
|
+
LDBLE dw_t;
|
|
1511
|
+
LDBLE dw_a_v_dif;
|
|
1512
|
+
LDBLE erm_ddl;
|
|
1513
|
+
};
|
|
1514
|
+
|
|
1515
|
+
class sol_D
|
|
1516
|
+
{
|
|
1517
|
+
public:
|
|
1518
|
+
~sol_D() {};
|
|
1519
|
+
sol_D()
|
|
1520
|
+
{
|
|
1521
|
+
// number of aqueous + exchange species
|
|
1522
|
+
count_spec = 0;
|
|
1523
|
+
// number of exchange species
|
|
1524
|
+
count_exch_spec = 0;
|
|
1525
|
+
// total moles of X-, max X- in transport step in sol_D[1], tk
|
|
1526
|
+
exch_total = 0, x_max = 0, tk_x = 0;
|
|
1527
|
+
// viscos_0 at I = 0
|
|
1528
|
+
viscos_0 = 0;
|
|
1529
|
+
// viscosity of solution
|
|
1530
|
+
viscos = 0;
|
|
1531
|
+
spec = NULL;
|
|
1532
|
+
spec_size = 0;
|
|
1533
|
+
}
|
|
1534
|
+
int count_spec;
|
|
1535
|
+
int count_exch_spec;
|
|
1536
|
+
LDBLE exch_total, x_max, tk_x;
|
|
1537
|
+
LDBLE viscos_0, viscos;
|
|
1538
|
+
class spec* spec;
|
|
1539
|
+
int spec_size;
|
|
1540
|
+
};
|
|
1541
|
+
class J_ij
|
|
1542
|
+
{
|
|
1543
|
+
public:
|
|
1544
|
+
~J_ij() {};
|
|
1545
|
+
J_ij()
|
|
1546
|
+
{
|
|
1547
|
+
name = NULL;
|
|
1548
|
+
// species change in cells i and j
|
|
1549
|
+
tot1 = 0;
|
|
1550
|
+
tot2 = 0;
|
|
1551
|
+
tot_stag = 0;
|
|
1552
|
+
charge = 0;
|
|
1553
|
+
}
|
|
1554
|
+
const char* name;
|
|
1555
|
+
LDBLE tot1, tot2, tot_stag, charge;
|
|
1556
|
+
};
|
|
1557
|
+
class J_ij_save
|
|
1558
|
+
{
|
|
1559
|
+
public:
|
|
1560
|
+
~J_ij_save() {};
|
|
1561
|
+
J_ij_save()
|
|
1562
|
+
{
|
|
1563
|
+
// species change in cells i and j
|
|
1564
|
+
flux_t = 0;
|
|
1565
|
+
flux_c = 0;
|
|
1566
|
+
}
|
|
1567
|
+
double flux_t, flux_c;
|
|
1568
|
+
};
|
|
1569
|
+
class M_S
|
|
1570
|
+
{
|
|
1571
|
+
public:
|
|
1572
|
+
~M_S() {};
|
|
1573
|
+
M_S()
|
|
1574
|
+
{
|
|
1575
|
+
name = NULL;
|
|
1576
|
+
// master species transport in cells i and j
|
|
1577
|
+
tot1 = 0;
|
|
1578
|
+
tot2 = 0;
|
|
1579
|
+
tot_stag = 0;
|
|
1580
|
+
charge = 0;
|
|
1581
|
+
}
|
|
1582
|
+
const char* name;
|
|
1583
|
+
LDBLE tot1, tot2, tot_stag, charge;
|
|
1584
|
+
};
|
|
1585
|
+
// Pitzer definitions
|
|
1586
|
+
typedef enum
|
|
1587
|
+
{ TYPE_B0, TYPE_B1, TYPE_B2, TYPE_C0, TYPE_THETA, TYPE_LAMBDA, TYPE_ZETA,
|
|
1588
|
+
TYPE_PSI, TYPE_ETHETA, TYPE_ALPHAS, TYPE_MU, TYPE_ETA, TYPE_Other,
|
|
1589
|
+
TYPE_SIT_EPSILON, TYPE_SIT_EPSILON_MU, TYPE_APHI
|
|
1590
|
+
} pitz_param_type;
|
|
1591
|
+
class pitz_param
|
|
1592
|
+
{
|
|
1593
|
+
public:
|
|
1594
|
+
~pitz_param() {};
|
|
1595
|
+
pitz_param()
|
|
1596
|
+
{
|
|
1597
|
+
for(size_t i = 0; i < 3; i++) species[i] = NULL;
|
|
1598
|
+
for (size_t i = 0; i < 3; i++) ispec[i] = -1;
|
|
1599
|
+
type = TYPE_Other;
|
|
1600
|
+
p = 0;
|
|
1601
|
+
U.b0 = 0;
|
|
1602
|
+
for (size_t i = 0; i < 6; i++) a[i] = 0;
|
|
1603
|
+
alpha = 0;
|
|
1604
|
+
os_coef = 0;
|
|
1605
|
+
for (size_t i = 0; i < 3; i++) ln_coef[i] = 0;
|
|
1606
|
+
thetas = NULL;
|
|
1607
|
+
}
|
|
1608
|
+
const char* species[3];
|
|
1609
|
+
int ispec[3];
|
|
1610
|
+
pitz_param_type type;
|
|
1611
|
+
LDBLE p;
|
|
1612
|
+
union
|
|
1613
|
+
{
|
|
1614
|
+
LDBLE b0;
|
|
1615
|
+
LDBLE b1;
|
|
1616
|
+
LDBLE b2;
|
|
1617
|
+
LDBLE c0;
|
|
1618
|
+
LDBLE theta;
|
|
1619
|
+
LDBLE lambda;
|
|
1620
|
+
LDBLE zeta;
|
|
1621
|
+
LDBLE psi;
|
|
1622
|
+
LDBLE alphas;
|
|
1623
|
+
LDBLE mu;
|
|
1624
|
+
LDBLE eta;
|
|
1625
|
+
LDBLE eps;
|
|
1626
|
+
LDBLE eps1;
|
|
1627
|
+
LDBLE aphi;
|
|
1628
|
+
} U;
|
|
1629
|
+
LDBLE a[6];
|
|
1630
|
+
LDBLE alpha;
|
|
1631
|
+
LDBLE os_coef;
|
|
1632
|
+
LDBLE ln_coef[3];
|
|
1633
|
+
class theta_param* thetas;
|
|
1634
|
+
};
|
|
1635
|
+
class theta_param
|
|
1636
|
+
{
|
|
1637
|
+
public:
|
|
1638
|
+
~theta_param() {};
|
|
1639
|
+
theta_param()
|
|
1640
|
+
{
|
|
1641
|
+
zj = 0;
|
|
1642
|
+
zk = 0;
|
|
1643
|
+
etheta = 0;
|
|
1644
|
+
ethetap = 0;
|
|
1645
|
+
}
|
|
1646
|
+
LDBLE zj;
|
|
1647
|
+
LDBLE zk;
|
|
1648
|
+
LDBLE etheta;
|
|
1649
|
+
LDBLE ethetap;
|
|
1650
|
+
};
|
|
1651
|
+
class const_iso
|
|
1652
|
+
{
|
|
1653
|
+
public:
|
|
1654
|
+
~const_iso() {};
|
|
1655
|
+
const_iso()
|
|
1656
|
+
{
|
|
1657
|
+
name = NULL;
|
|
1658
|
+
value = 0;
|
|
1659
|
+
uncertainty = 0;
|
|
1660
|
+
}
|
|
1661
|
+
const_iso(const char *n, LDBLE v, LDBLE u)
|
|
1662
|
+
{
|
|
1663
|
+
name = n;
|
|
1664
|
+
value = v;
|
|
1665
|
+
uncertainty = u;
|
|
1666
|
+
}
|
|
1667
|
+
const char* name;
|
|
1668
|
+
LDBLE value;
|
|
1669
|
+
LDBLE uncertainty;
|
|
1670
|
+
};
|
|
1671
|
+
|
|
1672
|
+
#endif /* _INC_GLOBAL_STRUCTURES_H */
|