pyEQL 1.4.0rc9__cp312-cp312-macosx_11_0_arm64.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.
Files changed (491) hide show
  1. pyEQL/__init__.py +50 -0
  2. pyEQL/_phreeqc.cpython-312-darwin.so +0 -0
  3. pyEQL/activity_correction.py +879 -0
  4. pyEQL/database/geothermal.dat +5693 -0
  5. pyEQL/database/llnl.dat +19305 -0
  6. pyEQL/database/phreeqc_license.txt +54 -0
  7. pyEQL/database/pyeql_db.json +35607 -0
  8. pyEQL/engines.py +1153 -0
  9. pyEQL/equilibrium.py +227 -0
  10. pyEQL/functions.py +281 -0
  11. pyEQL/phreeqc/__init__.py +5 -0
  12. pyEQL/phreeqc/bindings.cpp +84 -0
  13. pyEQL/phreeqc/core.py +239 -0
  14. pyEQL/phreeqc/database/Amm.dat +1968 -0
  15. pyEQL/phreeqc/database/CMakeLists.txt +32 -0
  16. pyEQL/phreeqc/database/ColdChem.dat +267 -0
  17. pyEQL/phreeqc/database/Concrete_PHR.dat +158 -0
  18. pyEQL/phreeqc/database/Concrete_PZ.dat +195 -0
  19. pyEQL/phreeqc/database/Kinec.v2.dat +12039 -0
  20. pyEQL/phreeqc/database/Kinec_v3.dat +12159 -0
  21. pyEQL/phreeqc/database/Makefile.am +28 -0
  22. pyEQL/phreeqc/database/Makefile.in +530 -0
  23. pyEQL/phreeqc/database/PHREEQC_ThermoddemV1.10_15Dec2020.dat +12965 -0
  24. pyEQL/phreeqc/database/Tipping_Hurley.dat +4137 -0
  25. pyEQL/phreeqc/database/__init__.py +0 -0
  26. pyEQL/phreeqc/database/core10.dat +6824 -0
  27. pyEQL/phreeqc/database/frezchem.dat +634 -0
  28. pyEQL/phreeqc/database/iso.dat +7235 -0
  29. pyEQL/phreeqc/database/llnl.dat +19310 -0
  30. pyEQL/phreeqc/database/minteq.dat +5654 -0
  31. pyEQL/phreeqc/database/minteq.v4.dat +13212 -0
  32. pyEQL/phreeqc/database/phreeqc.dat +1972 -0
  33. pyEQL/phreeqc/database/phreeqc_rates.dat +3158 -0
  34. pyEQL/phreeqc/database/pitzer.dat +1044 -0
  35. pyEQL/phreeqc/database/sit.dat +14348 -0
  36. pyEQL/phreeqc/database/wateq4f.dat +4036 -0
  37. pyEQL/phreeqc/ext/README.md +10 -0
  38. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/CMakeLists.txt +476 -0
  39. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/INSTALL +302 -0
  40. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/IPhreeqc.rc +61 -0
  41. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/IPhreeqcConfig.cmake.in +4 -0
  42. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/Makefile.am +8 -0
  43. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/Makefile.in +816 -0
  44. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/aclocal.m4 +1217 -0
  45. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/CTestScript.cmake +167 -0
  46. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/CSelectedOutput.cpp.o +0 -0
  47. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/IPhreeqc.cpp.o +0 -0
  48. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/IPhreeqcLib.cpp.o +0 -0
  49. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/IPhreeqc_interface_F.cpp.o +0 -0
  50. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/Var.c.o +0 -0
  51. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Dictionary.cpp.o +0 -0
  52. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/ExchComp.cxx.o +0 -0
  53. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Exchange.cxx.o +0 -0
  54. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/GasComp.cxx.o +0 -0
  55. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/GasPhase.cxx.o +0 -0
  56. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/ISolution.cxx.o +0 -0
  57. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/ISolutionComp.cxx.o +0 -0
  58. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/KineticsComp.cxx.o +0 -0
  59. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/NameDouble.cxx.o +0 -0
  60. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/NumKeyword.cxx.o +0 -0
  61. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/PBasic.cpp.o +0 -0
  62. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/PHRQ_io_output.cpp.o +0 -0
  63. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/PPassemblage.cxx.o +0 -0
  64. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/PPassemblageComp.cxx.o +0 -0
  65. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Phreeqc.cpp.o +0 -0
  66. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/PhreeqcKeywords/Keywords.cpp.o +0 -0
  67. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Pressure.cxx.o +0 -0
  68. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Reaction.cxx.o +0 -0
  69. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/ReadClass.cxx.o +0 -0
  70. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/SS.cxx.o +0 -0
  71. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/SSassemblage.cxx.o +0 -0
  72. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/SScomp.cxx.o +0 -0
  73. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/SelectedOutput.cpp.o +0 -0
  74. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Serializer.cxx.o +0 -0
  75. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Solution.cxx.o +0 -0
  76. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/SolutionIsotope.cxx.o +0 -0
  77. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/StorageBin.cxx.o +0 -0
  78. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/StorageBinList.cpp.o +0 -0
  79. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Surface.cxx.o +0 -0
  80. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/SurfaceCharge.cxx.o +0 -0
  81. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/SurfaceComp.cxx.o +0 -0
  82. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/System.cxx.o +0 -0
  83. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Temperature.cxx.o +0 -0
  84. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/Use.cpp.o +0 -0
  85. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/UserPunch.cpp.o +0 -0
  86. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/advection.cpp.o +0 -0
  87. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/basicsubs.cpp.o +0 -0
  88. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/cl1.cpp.o +0 -0
  89. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/common/PHRQ_base.cxx.o +0 -0
  90. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/common/PHRQ_io.cpp.o +0 -0
  91. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/common/Parser.cxx.o +0 -0
  92. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/common/Utils.cxx.o +0 -0
  93. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/cvdense.cpp.o +0 -0
  94. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/cvode.cpp.o +0 -0
  95. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/cxxKinetics.cxx.o +0 -0
  96. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/cxxMix.cxx.o +0 -0
  97. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/dense.cpp.o +0 -0
  98. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/dumper.cpp.o +0 -0
  99. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/gases.cpp.o +0 -0
  100. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/input.cpp.o +0 -0
  101. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/integrate.cpp.o +0 -0
  102. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/inverse.cpp.o +0 -0
  103. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/isotopes.cpp.o +0 -0
  104. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/kinetics.cpp.o +0 -0
  105. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/mainsubs.cpp.o +0 -0
  106. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/model.cpp.o +0 -0
  107. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/nvector.cpp.o +0 -0
  108. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/nvector_serial.cpp.o +0 -0
  109. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/parse.cpp.o +0 -0
  110. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/phqalloc.cpp.o +0 -0
  111. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/pitzer.cpp.o +0 -0
  112. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/pitzer_structures.cpp.o +0 -0
  113. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/prep.cpp.o +0 -0
  114. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/print.cpp.o +0 -0
  115. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/read.cpp.o +0 -0
  116. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/readtr.cpp.o +0 -0
  117. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/runner.cpp.o +0 -0
  118. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/sit.cpp.o +0 -0
  119. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/smalldense.cpp.o +0 -0
  120. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/spread.cpp.o +0 -0
  121. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/step.cpp.o +0 -0
  122. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/structures.cpp.o +0 -0
  123. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/sundialsmath.cpp.o +0 -0
  124. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/tally.cpp.o +0 -0
  125. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/tidy.cpp.o +0 -0
  126. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/transport.cpp.o +0 -0
  127. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CMakeFiles/IPhreeqc.dir/src/phreeqcpp/utilities.cpp.o +0 -0
  128. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/CTestTestfile.cmake +6 -0
  129. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/DartConfiguration.tcl +109 -0
  130. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/cmake_install.cmake +45 -0
  131. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/build/libIPhreeqc.a +0 -0
  132. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/ar-lib +270 -0
  133. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/compile +347 -0
  134. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/config.guess +1441 -0
  135. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/config.sub +1813 -0
  136. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/depcomp +791 -0
  137. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/install-sh +508 -0
  138. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/ltmain.sh +11156 -0
  139. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/missing +215 -0
  140. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/test-driver +148 -0
  141. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/configure +23867 -0
  142. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/configure.ac +136 -0
  143. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Amm.dat +1968 -0
  144. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/CMakeLists.txt +32 -0
  145. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/ColdChem.dat +267 -0
  146. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Concrete_PHR.dat +158 -0
  147. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Concrete_PZ.dat +195 -0
  148. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Kinec.v2.dat +12039 -0
  149. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Kinec_v3.dat +12159 -0
  150. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Makefile.am +28 -0
  151. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Makefile.in +530 -0
  152. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/PHREEQC_ThermoddemV1.10_15Dec2020.dat +12965 -0
  153. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Tipping_Hurley.dat +4137 -0
  154. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/core10.dat +6824 -0
  155. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/frezchem.dat +634 -0
  156. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/iso.dat +7235 -0
  157. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/llnl.dat +19310 -0
  158. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/minteq.dat +5654 -0
  159. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/minteq.v4.dat +13212 -0
  160. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/phreeqc.dat +1972 -0
  161. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/phreeqc_rates.dat +3158 -0
  162. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/pitzer.dat +1044 -0
  163. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/sit.dat +14348 -0
  164. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/wateq4f.dat +4036 -0
  165. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/CMakeLists.txt +35 -0
  166. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/IPhreeqc.pdf +0 -0
  167. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/Makefile.am +24 -0
  168. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/Makefile.in +545 -0
  169. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/NOTICE +51 -0
  170. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/Phreeqc_2_1999_manual.pdf +0 -0
  171. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/Phreeqc_3_2013_manual.pdf +0 -0
  172. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/README +428 -0
  173. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/RELEASE +7294 -0
  174. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/IPhreeqc_8h.html +5096 -0
  175. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/IPhreeqc_8h_source.html +389 -0
  176. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/IPhreeqc_8hpp.html +83 -0
  177. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/IPhreeqc_8hpp_source.html +478 -0
  178. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/Var_8h.html +318 -0
  179. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/Var_8h_source.html +200 -0
  180. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/bc_s.png +0 -0
  181. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/bdwn.png +0 -0
  182. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/classIPhreeqc.html +2274 -0
  183. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/classIPhreeqc.png +0 -0
  184. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/classIPhreeqcStop.html +69 -0
  185. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/classIPhreeqcStop.png +0 -0
  186. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/closed.png +0 -0
  187. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html +68 -0
  188. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/doxygen.css +1440 -0
  189. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/doxygen.png +0 -0
  190. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/dynsections.js +97 -0
  191. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2blank.png +0 -0
  192. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2doc.png +0 -0
  193. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2folderclosed.png +0 -0
  194. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2folderopen.png +0 -0
  195. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2lastnode.png +0 -0
  196. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2link.png +0 -0
  197. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2mlastnode.png +0 -0
  198. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2mnode.png +0 -0
  199. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2node.png +0 -0
  200. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2plastnode.png +0 -0
  201. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2pnode.png +0 -0
  202. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2splitbar.png +0 -0
  203. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2vertline.png +0 -0
  204. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/index.html +58 -0
  205. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/jquery.js +31 -0
  206. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/nav_f.png +0 -0
  207. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/nav_g.png +0 -0
  208. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/nav_h.png +0 -0
  209. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/open.png +0 -0
  210. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/structVAR.html +143 -0
  211. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/sync_off.png +0 -0
  212. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/sync_on.png +0 -0
  213. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/tab_a.png +0 -0
  214. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/tab_b.png +0 -0
  215. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/tab_h.png +0 -0
  216. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/tab_s.png +0 -0
  217. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/tabs.css +60 -0
  218. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/phreeqc3.chm +0 -0
  219. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/CMakeLists.txt +11 -0
  220. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/Makefile.am +88 -0
  221. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/Makefile.in +696 -0
  222. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/CMakeLists.txt +1 -0
  223. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/CMakeLists.txt +35 -0
  224. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/CMakeLists.txt.in +21 -0
  225. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/README.txt +44 -0
  226. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/advect.c +101 -0
  227. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/ic +17 -0
  228. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/phreeqc.dat +1579 -0
  229. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/CMakeLists.txt +10 -0
  230. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/README.txt +3 -0
  231. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/excel/CMakeLists.txt +9 -0
  232. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/excel/phreeqc.dat +1582 -0
  233. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/excel/runphreeqc.xls +0 -0
  234. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/excel/withcallback.xls +0 -0
  235. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/CMakeLists.txt +11 -0
  236. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/Gypsum.py +52 -0
  237. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/parallel_advect.py +465 -0
  238. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/phreeqc.dat +1582 -0
  239. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/pitzer.dat +790 -0
  240. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/wateq4f.dat +3846 -0
  241. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/CMakeLists.txt +1 -0
  242. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/CMakeLists.txt +35 -0
  243. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/CMakeLists.txt.in +20 -0
  244. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/README.txt +45 -0
  245. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/advect.cpp +110 -0
  246. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/ic +17 -0
  247. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/phreeqc.dat +1579 -0
  248. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/CMakeLists.txt +1 -0
  249. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/CMakeLists.txt +44 -0
  250. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/CMakeLists.txt.in +24 -0
  251. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/README.txt +45 -0
  252. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/advect.F90 +102 -0
  253. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/ic +17 -0
  254. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/phreeqc.dat +1579 -0
  255. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/CMakeLists.txt +26 -0
  256. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/CMakeLists.txt.in +20 -0
  257. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/README.txt +37 -0
  258. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/ex2 +26 -0
  259. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/main.cpp +20 -0
  260. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/phreeqc.dat +1837 -0
  261. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/post-install.cmake.in +7 -0
  262. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/CMakeLists.txt +185 -0
  263. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/FileTest.cpp +171 -0
  264. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/FileTest.h +34 -0
  265. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/Makefile.am +18 -0
  266. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/Makefile.in +466 -0
  267. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/TestCVar.cpp +9 -0
  268. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/TestIPhreeqc.cpp +4901 -0
  269. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/TestIPhreeqcLib.cpp +4644 -0
  270. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/TestSelectedOutput.cpp +669 -0
  271. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/TestVar.cpp +10 -0
  272. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/conv_fail.in +11 -0
  273. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/dump +42 -0
  274. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/iso.dat +7231 -0
  275. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/kinn20140218 +349 -0
  276. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/missing_e.dat +1556 -0
  277. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/multi_punch +105 -0
  278. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/multi_punch_no_set +102 -0
  279. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/phreeqc.dat.90a6449 +1935 -0
  280. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/phreeqc.dat.old +1556 -0
  281. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/m4/libtool.m4 +8388 -0
  282. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/m4/ltoptions.m4 +437 -0
  283. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/m4/ltsugar.m4 +124 -0
  284. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/m4/ltversion.m4 +23 -0
  285. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/m4/lt~obsolete.m4 +99 -0
  286. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/resource.h +14 -0
  287. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/CSelectedOutput.cpp +401 -0
  288. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/CSelectedOutput.hxx +77 -0
  289. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/CVar.hxx +162 -0
  290. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Debug.h +12 -0
  291. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/ErrorReporter.hxx +70 -0
  292. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc.cpp +1889 -0
  293. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc.f.inc +91 -0
  294. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc.f90.inc +603 -0
  295. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc.h +2182 -0
  296. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc.hpp +1027 -0
  297. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqcCallbacks.h +19 -0
  298. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqcF.f +653 -0
  299. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqcLib.cpp +1098 -0
  300. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc_interface.F90 +1283 -0
  301. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc_interface_F.cpp +535 -0
  302. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc_interface_F.h +162 -0
  303. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Makefile.am +210 -0
  304. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Makefile.in +1294 -0
  305. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/README.Fortran +17 -0
  306. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Var.c +84 -0
  307. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Var.h +152 -0
  308. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Version.h +36 -0
  309. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fimpl.h +282 -0
  310. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap.cpp +646 -0
  311. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap.h +163 -0
  312. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap1.cpp +24 -0
  313. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap2.cpp +24 -0
  314. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap3.cpp +24 -0
  315. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap4.cpp +24 -0
  316. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap5.cpp +24 -0
  317. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap6.cpp +25 -0
  318. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap7.cpp +25 -0
  319. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap8.cpp +24 -0
  320. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ChartHandler.cpp +225 -0
  321. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ChartHandler.h +59 -0
  322. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ChartObject.cpp +1382 -0
  323. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ChartObject.h +444 -0
  324. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/CurveObject.cpp +42 -0
  325. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/CurveObject.h +79 -0
  326. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Dictionary.cpp +41 -0
  327. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Dictionary.h +28 -0
  328. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ExchComp.cxx +398 -0
  329. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ExchComp.h +117 -0
  330. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Exchange.cxx +466 -0
  331. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Exchange.h +74 -0
  332. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Form1.h +1184 -0
  333. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Form1.resX +36 -0
  334. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/GasComp.cxx +265 -0
  335. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/GasComp.h +59 -0
  336. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/GasPhase.cxx +659 -0
  337. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/GasPhase.h +103 -0
  338. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ISolution.cxx +40 -0
  339. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ISolution.h +53 -0
  340. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ISolutionComp.cxx +202 -0
  341. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ISolutionComp.h +138 -0
  342. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/KineticsComp.cxx +318 -0
  343. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/KineticsComp.h +81 -0
  344. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/NA.h +1 -0
  345. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/NameDouble.cxx +537 -0
  346. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/NameDouble.h +66 -0
  347. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/NumKeyword.cxx +190 -0
  348. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/NumKeyword.h +67 -0
  349. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PBasic.cpp +8350 -0
  350. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PBasic.h +572 -0
  351. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PHRQ_io_output.cpp +411 -0
  352. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PPassemblage.cxx +375 -0
  353. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PPassemblage.h +70 -0
  354. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PPassemblageComp.cxx +441 -0
  355. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PPassemblageComp.h +83 -0
  356. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Phreeqc.cpp +2087 -0
  357. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Phreeqc.h +2164 -0
  358. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PhreeqcKeywords/Keywords.cpp +242 -0
  359. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PhreeqcKeywords/Keywords.h +104 -0
  360. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Pressure.cxx +417 -0
  361. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Pressure.h +43 -0
  362. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Reaction.cxx +284 -0
  363. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Reaction.h +57 -0
  364. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ReadClass.cxx +1150 -0
  365. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SS.cxx +609 -0
  366. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SS.h +128 -0
  367. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SSassemblage.cxx +317 -0
  368. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SSassemblage.h +59 -0
  369. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SScomp.cxx +297 -0
  370. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SScomp.h +66 -0
  371. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SelectedOutput.cpp +115 -0
  372. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SelectedOutput.h +209 -0
  373. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Serializer.cxx +213 -0
  374. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Serializer.h +42 -0
  375. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Solution.cxx +1795 -0
  376. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Solution.h +154 -0
  377. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SolutionIsotope.cxx +333 -0
  378. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SolutionIsotope.h +85 -0
  379. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/StorageBin.cxx +1507 -0
  380. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/StorageBin.h +141 -0
  381. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/StorageBinList.cpp +358 -0
  382. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/StorageBinList.h +81 -0
  383. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Surface.cxx +837 -0
  384. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Surface.h +108 -0
  385. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SurfaceCharge.cxx +617 -0
  386. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SurfaceCharge.h +137 -0
  387. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SurfaceComp.cxx +509 -0
  388. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SurfaceComp.h +70 -0
  389. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/System.cxx +103 -0
  390. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/System.h +89 -0
  391. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Temperature.cxx +423 -0
  392. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Temperature.h +42 -0
  393. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Use.cpp +78 -0
  394. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Use.h +159 -0
  395. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/UserPunch.cpp +32 -0
  396. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/UserPunch.h +39 -0
  397. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ZedGraph.dll +0 -0
  398. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/advection.cpp +140 -0
  399. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/basicsubs.cpp +4333 -0
  400. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cl1.cpp +881 -0
  401. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/PHRQ_base.cxx +117 -0
  402. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/PHRQ_base.h +48 -0
  403. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/PHRQ_exports.h +20 -0
  404. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/PHRQ_io.cpp +914 -0
  405. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/PHRQ_io.h +207 -0
  406. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/Parser.cxx +1331 -0
  407. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/Parser.h +310 -0
  408. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/Utils.cxx +263 -0
  409. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/Utils.h +29 -0
  410. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/phrqtype.h +18 -0
  411. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cvdense.cpp +566 -0
  412. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cvdense.h +267 -0
  413. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cvode.cpp +3939 -0
  414. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cvode.h +940 -0
  415. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cxxKinetics.cxx +617 -0
  416. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cxxKinetics.h +78 -0
  417. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cxxMix.cxx +154 -0
  418. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cxxMix.h +58 -0
  419. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/dense.cpp +175 -0
  420. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/dense.h +341 -0
  421. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/dumper.cpp +277 -0
  422. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/dumper.h +60 -0
  423. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/gases.cpp +748 -0
  424. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/global_structures.h +1672 -0
  425. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/input.cpp +133 -0
  426. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/integrate.cpp +1219 -0
  427. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/inverse.cpp +5135 -0
  428. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/isotopes.cpp +1813 -0
  429. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/kinetics.cpp +3180 -0
  430. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/mainsubs.cpp +2320 -0
  431. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/model.cpp +5843 -0
  432. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/nvector.cpp +272 -0
  433. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/nvector.h +485 -0
  434. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/nvector_serial.cpp +1032 -0
  435. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/nvector_serial.h +369 -0
  436. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/parse.cpp +1044 -0
  437. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/phqalloc.cpp +316 -0
  438. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/phqalloc.h +47 -0
  439. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/pitzer.cpp +2709 -0
  440. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/pitzer_structures.cpp +225 -0
  441. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/prep.cpp +6267 -0
  442. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/print.cpp +3673 -0
  443. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/read.cpp +10245 -0
  444. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/readtr.cpp +1495 -0
  445. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/runner.cpp +158 -0
  446. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/runner.h +33 -0
  447. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/sit.cpp +1684 -0
  448. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/smalldense.cpp +324 -0
  449. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/smalldense.h +261 -0
  450. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/spread.cpp +1309 -0
  451. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/step.cpp +1566 -0
  452. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/structures.cpp +3381 -0
  453. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/sundialsmath.cpp +133 -0
  454. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/sundialsmath.h +162 -0
  455. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/sundialstypes.h +183 -0
  456. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/tally.cpp +1288 -0
  457. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/tidy.cpp +5600 -0
  458. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/transport.cpp +6403 -0
  459. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/utilities.cpp +1339 -0
  460. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/thread.h +64 -0
  461. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/CMakeLists.txt +133 -0
  462. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/Makefile.am +45 -0
  463. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/Makefile.in +1128 -0
  464. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/ex2.in +26 -0
  465. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/main.f90 +31 -0
  466. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/main77.f +6 -0
  467. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/main_fortran.cxx +8 -0
  468. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/phreeqc.dat.in +1556 -0
  469. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/test_c.c +148 -0
  470. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/test_cxx.cxx +152 -0
  471. pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/test_f90.F90 +328 -0
  472. pyEQL/phreeqc/iphreeqc_wrapper.cpp +75 -0
  473. pyEQL/phreeqc/solution.py +74 -0
  474. pyEQL/phreeqc/var.py +50 -0
  475. pyEQL/presets/Ringers lactate.yaml +20 -0
  476. pyEQL/presets/__init__.py +17 -0
  477. pyEQL/presets/normal saline.yaml +17 -0
  478. pyEQL/presets/rainwater.yaml +17 -0
  479. pyEQL/presets/seawater.yaml +29 -0
  480. pyEQL/presets/urine.yaml +26 -0
  481. pyEQL/presets/wastewater.yaml +21 -0
  482. pyEQL/py.typed +0 -0
  483. pyEQL/salt_ion_match.py +112 -0
  484. pyEQL/solute.py +163 -0
  485. pyEQL/solution.py +2714 -0
  486. pyEQL/utils.py +237 -0
  487. pyeql-1.4.0rc9.dist-info/METADATA +130 -0
  488. pyeql-1.4.0rc9.dist-info/RECORD +491 -0
  489. pyeql-1.4.0rc9.dist-info/WHEEL +6 -0
  490. pyeql-1.4.0rc9.dist-info/licenses/AUTHORS.md +21 -0
  491. pyeql-1.4.0rc9.dist-info/licenses/LICENSE.txt +20 -0
@@ -0,0 +1,837 @@
1
+ // Surface.cxx: implementation of the cxxSurface class.
2
+ //
3
+ //////////////////////////////////////////////////////////////////////
4
+ #ifdef _DEBUG
5
+ #pragma warning(disable : 4786) // disable truncation warning (Only used by debugger)
6
+ #endif
7
+ #include <cassert> // assert
8
+ #include <algorithm> // std::sort
9
+ #include "Utils.h" // define first
10
+ #include "Phreeqc.h"
11
+ #include "Surface.h"
12
+ #include "cxxMix.h"
13
+ #include "phqalloc.h"
14
+
15
+ #if defined(PHREEQCI_GUI)
16
+ #ifdef _DEBUG
17
+ #define new DEBUG_NEW
18
+ #undef THIS_FILE
19
+ static char THIS_FILE[] = __FILE__;
20
+ #endif
21
+ #endif
22
+
23
+ //////////////////////////////////////////////////////////////////////
24
+ // Construction/Destruction
25
+ //////////////////////////////////////////////////////////////////////
26
+
27
+ cxxSurface::cxxSurface(PHRQ_io *io)
28
+ //
29
+ // default constructor for cxxSurface
30
+ //
31
+ : cxxNumKeyword(io)
32
+ {
33
+ new_def = false;
34
+ tidied = false;
35
+ type = DDL;
36
+ dl_type = NO_DL;
37
+ sites_units = SITES_ABSOLUTE;
38
+ only_counter_ions = false;
39
+ correct_D = false;
40
+ thickness = 1e-8;
41
+ debye_lengths = 0.0;
42
+ calc_DDL_viscosity = false;
43
+ DDL_viscosity = 1.0;
44
+ DDL_limit = 0.8;
45
+ transport = false;
46
+ solution_equilibria = false;
47
+ n_solution = -999;
48
+ }
49
+ cxxSurface::cxxSurface(std::map < int, cxxSurface > &entities,
50
+ cxxMix & mix, int l_n_user, PHRQ_io *io):
51
+ cxxNumKeyword(io)
52
+ {
53
+ this->n_user = this->n_user_end = l_n_user;
54
+ this->new_def = false;
55
+ this->tidied = true;
56
+ type = DDL;
57
+ dl_type = NO_DL;
58
+ sites_units = SITES_ABSOLUTE;
59
+ only_counter_ions = false;
60
+ correct_D = false;
61
+ thickness = 1e-8;
62
+ debye_lengths = 0.0;
63
+ calc_DDL_viscosity = false;
64
+ DDL_viscosity = 1.0;
65
+ DDL_limit = 0.8;
66
+ transport = false;
67
+ solution_equilibria = false;
68
+ n_solution = -999;
69
+ //
70
+ // Mix surfaces
71
+ //
72
+ const std::map < int, LDBLE >&mixcomps = mix.Get_mixComps();
73
+ std::map < int, LDBLE >::const_iterator it;
74
+ for (it = mixcomps.begin(); it != mixcomps.end(); it++)
75
+ {
76
+ if (entities.find(it->first) != entities.end())
77
+ {
78
+ this->add(entities.find(it->first)->second, it->second);
79
+ }
80
+ }
81
+ }
82
+
83
+ cxxSurface::~cxxSurface()
84
+ {
85
+ }
86
+
87
+ bool
88
+ cxxSurface::Get_related_phases() const
89
+ {
90
+ for (size_t i = 0; i != this->surface_comps.size(); i++)
91
+ {
92
+ if (this->surface_comps[i].Get_phase_name().size() == 0)
93
+ continue;
94
+ return (true);
95
+ }
96
+ return (false);
97
+ }
98
+
99
+ bool
100
+ cxxSurface::Get_related_rate() const
101
+ {
102
+ for (size_t i = 0; i != this->surface_comps.size(); i++)
103
+ {
104
+ if (this->surface_comps[i].Get_rate_name().size() == 0)
105
+ continue;
106
+ return (true);
107
+ }
108
+ return (false);
109
+ }
110
+ void
111
+ cxxSurface::dump_raw(std::ostream & s_oss, unsigned int indent, int *n_out) const
112
+ {
113
+ unsigned int i;
114
+ s_oss.precision(DBL_DIG - 1);
115
+ std::string indent0(""), indent1(""), indent2("");
116
+ for (i = 0; i < indent; ++i)
117
+ indent0.append(Utilities::INDENT);
118
+ for (i = 0; i < indent + 1; ++i)
119
+ indent1.append(Utilities::INDENT);
120
+ for (i = 0; i < indent + 2; ++i)
121
+ indent2.append(Utilities::INDENT);
122
+
123
+ // Surface element and attributes
124
+ s_oss << indent0;
125
+ int n_user_local = (n_out != NULL) ? *n_out : this->n_user;
126
+ s_oss << "SURFACE_RAW " << n_user_local << " " << this->description << "\n";
127
+ s_oss << indent1 << "# SURFACE_MODIFY candidate identifiers #\n";
128
+ s_oss << indent1;
129
+ s_oss << "-type " << this->type << "\n";
130
+ s_oss << indent1;
131
+ s_oss << "-dl_type " << this->dl_type << "\n";
132
+ s_oss << indent1;
133
+ s_oss << "-only_counter_ions " << this->only_counter_ions << "\n";
134
+ s_oss << indent1;
135
+ s_oss << "-correct_D " << this->correct_D << "\n";
136
+ s_oss << indent1;
137
+ s_oss << "-thickness " << this->thickness << "\n";
138
+ s_oss << indent1;
139
+ s_oss << "-debye_lengths " << this->debye_lengths << "\n";
140
+ s_oss << indent1;
141
+ s_oss << "-DDL_viscosity " << this->DDL_viscosity << "\n";
142
+ s_oss << indent1;
143
+ s_oss << "-DDL_limit " << this->DDL_limit << "\n";
144
+ // surfaceComps
145
+ for (size_t i = 0; i != this->surface_comps.size(); i++)
146
+ {
147
+ const cxxSurfaceComp * comp_ptr = &(this->surface_comps[i]);
148
+ s_oss << indent1;
149
+ s_oss << "-component " << comp_ptr->Get_formula() << "\n";
150
+ comp_ptr->dump_raw(s_oss, indent + 2);
151
+ }
152
+ // surface charge
153
+ for (size_t i = 0; i != this->surface_charges.size(); i++)
154
+ {
155
+ const cxxSurfaceCharge * charge_ptr = &(this->surface_charges[i]);
156
+ s_oss << indent1;
157
+ s_oss << "-charge_component " << charge_ptr->Get_name() << "\n";
158
+ charge_ptr->dump_raw(s_oss, indent + 2);
159
+ }
160
+
161
+ s_oss << indent1 << "# SURFACE_MODIFY candidates with new_def=true #\n";
162
+ s_oss << indent1;
163
+ s_oss << "-new_def " << this->new_def << "\n";
164
+ s_oss << indent1;
165
+ s_oss << "-tidied " << this->tidied << "\n";
166
+ s_oss << indent1;
167
+ s_oss << "-sites_units " << this->sites_units << "\n";
168
+ s_oss << indent1;
169
+ s_oss << "-solution_equilibria " << this->solution_equilibria << "\n";
170
+ s_oss << indent1;
171
+ s_oss << "-n_solution " << this->n_solution << "\n";
172
+
173
+ s_oss << indent1 << "# Surface workspace variables #\n";
174
+ s_oss << indent1;
175
+ s_oss << "-transport " << this->transport << "\n";
176
+ s_oss << indent1;
177
+ s_oss << "-totals " << "\n";
178
+ this->totals.dump_raw(s_oss, indent + 2);
179
+
180
+ return;
181
+ }
182
+
183
+ void
184
+ cxxSurface::read_raw(CParser & parser, bool check)
185
+ {
186
+ int i = 0;
187
+ std::istream::pos_type ptr;
188
+ std::istream::pos_type next_char;
189
+ std::string token;
190
+ bool useLastLine(false);
191
+
192
+ // Read surface number and description
193
+ this->read_number_description(parser);
194
+ this->Set_new_def(false);
195
+ this->Set_tidied(true);
196
+
197
+ bool only_counter_ions_defined(false);
198
+ //bool correct_D_defined(false);
199
+ bool thickness_defined(false);
200
+ bool type_defined(false);
201
+ bool dl_type_defined(false);
202
+ bool sites_units_defined(false);
203
+ bool debye_lengths_defined(false);
204
+ bool DDL_viscosity_defined(false);
205
+ bool DDL_limit_defined(false);
206
+ bool transport_defined(false);
207
+
208
+ for (;;)
209
+ {
210
+ int opt;
211
+ if (useLastLine == false)
212
+ {
213
+ opt = parser.get_option(vopts, next_char);
214
+ }
215
+ else
216
+ {
217
+ opt = parser.getOptionFromLastLine(vopts, next_char, true);
218
+ }
219
+ useLastLine = false;
220
+ switch (opt)
221
+ {
222
+ case CParser::OPT_EOF:
223
+ break;
224
+ case CParser::OPT_KEYWORD:
225
+ break;
226
+ case CParser::OPT_DEFAULT:
227
+ case CParser::OPT_ERROR:
228
+ opt = CParser::OPT_EOF;
229
+ parser.error_msg("Unknown input in SURFACE keyword.",
230
+ PHRQ_io::OT_CONTINUE);
231
+ parser.error_msg(parser.line().c_str(), PHRQ_io::OT_CONTINUE);
232
+ break;
233
+
234
+ case 0: // diffuse_layer
235
+ parser.incr_input_error();
236
+ parser.error_msg("Diffuse layer is obsolete, use -type.",
237
+ PHRQ_io::OT_CONTINUE);
238
+ break;
239
+
240
+ case 1: // edl
241
+ parser.incr_input_error();
242
+ parser.error_msg("-edl is obsolete, use -type.",
243
+ PHRQ_io::OT_CONTINUE);
244
+ break;
245
+
246
+ case 2: // only_counter_ions
247
+ if (!(parser.get_iss() >> this->only_counter_ions))
248
+ {
249
+ this->only_counter_ions = false;
250
+ parser.incr_input_error();
251
+ parser.
252
+ error_msg("Expected boolean value for only_counter_ions.",
253
+ PHRQ_io::OT_CONTINUE);
254
+ }
255
+ only_counter_ions_defined = true;
256
+ break;
257
+
258
+ case 3: // donnan
259
+ parser.incr_input_error();
260
+ parser.error_msg("-Donnan is obsolete, use -dl_type.",
261
+ PHRQ_io::OT_CONTINUE);
262
+ break;
263
+
264
+ case 4: // thickness
265
+ if (!(parser.get_iss() >> this->thickness))
266
+ {
267
+ this->thickness = 0.0;
268
+ parser.incr_input_error();
269
+ parser.error_msg("Expected numeric value for thickness.",
270
+ PHRQ_io::OT_CONTINUE);
271
+ }
272
+ thickness_defined = true;
273
+ break;
274
+ case 5: // component
275
+ {
276
+ std::string str;
277
+ if (!(parser.get_iss() >> str))
278
+ {
279
+ parser.incr_input_error();
280
+ parser.error_msg("Expected string value for component name.",
281
+ PHRQ_io::OT_CONTINUE);
282
+ }
283
+ else
284
+ {
285
+ cxxSurfaceComp temp_comp(this->io);
286
+ temp_comp.Set_formula(str.c_str());
287
+ cxxSurfaceComp *comp_ptr = this->Find_comp(str);
288
+ if (comp_ptr)
289
+ {
290
+ temp_comp = *comp_ptr;
291
+ }
292
+ temp_comp.read_raw(parser, check);
293
+ if (comp_ptr)
294
+ {
295
+ for (size_t j = 0; j < this->surface_comps.size(); j++)
296
+ {
297
+ if (Utilities::strcmp_nocase(this->surface_comps[j].Get_formula().c_str(), str.c_str()) == 0)
298
+ {
299
+ this->surface_comps[j] = temp_comp;
300
+ }
301
+ }
302
+ }
303
+ else
304
+ {
305
+ this->surface_comps.push_back(temp_comp);
306
+ }
307
+ useLastLine = true;
308
+ }
309
+ }
310
+ break;
311
+ case 6: // charge_component
312
+ {
313
+ std::string str;
314
+ if (!(parser.get_iss() >> str))
315
+ {
316
+ parser.incr_input_error();
317
+ parser.error_msg("Expected string value for charge name.",
318
+ PHRQ_io::OT_CONTINUE);
319
+ }
320
+ else
321
+ {
322
+ cxxSurfaceCharge temp_charge(this->io);
323
+ temp_charge.Set_name(str.c_str());
324
+ cxxSurfaceCharge *charge_ptr = this->Find_charge(str);
325
+ if (charge_ptr)
326
+ {
327
+ temp_charge = *charge_ptr;
328
+ }
329
+ temp_charge.read_raw(parser, check);
330
+ if (charge_ptr)
331
+ {
332
+ for (size_t j = 0; j < this->surface_charges.size(); j++)
333
+ {
334
+ if (Utilities::strcmp_nocase(this->surface_charges[j].Get_name().c_str(), str.c_str()) == 0)
335
+ {
336
+ this->surface_charges[j] = temp_charge;
337
+ }
338
+ }
339
+ }
340
+ else
341
+ {
342
+ this->surface_charges.push_back(temp_charge);
343
+ }
344
+ useLastLine = true;
345
+ }
346
+ }
347
+ useLastLine = true;
348
+ break;
349
+ case 7: // type
350
+ i = 0;
351
+ if (!(parser.get_iss() >> i))
352
+ {
353
+ this->type = NO_EDL;
354
+ parser.incr_input_error();
355
+ parser.error_msg("Expected numeric value for type.",
356
+ PHRQ_io::OT_CONTINUE);
357
+ }
358
+ this->type = (SURFACE_TYPE) i;
359
+ type_defined = true;
360
+ break;
361
+ case 8: // dl_type
362
+ i = 0;
363
+ if (!(parser.get_iss() >> i))
364
+ {
365
+ this->dl_type = NO_DL;
366
+ parser.incr_input_error();
367
+ parser.error_msg("Expected numeric value for dl_type.",
368
+ PHRQ_io::OT_CONTINUE);
369
+ }
370
+ this->dl_type = (DIFFUSE_LAYER_TYPE) i;
371
+ dl_type_defined = true;
372
+ break;
373
+ case 9: // sites_units
374
+ i = 0;
375
+ if (!(parser.get_iss() >> i))
376
+ {
377
+ this->sites_units = SITES_ABSOLUTE;
378
+ parser.incr_input_error();
379
+ parser.error_msg("Expected numeric value for sites_units.",
380
+ PHRQ_io::OT_CONTINUE);
381
+ }
382
+ this->sites_units = (SITES_UNITS) i;
383
+ sites_units_defined = true;
384
+ break;
385
+
386
+ case 10: // debye_lengths
387
+ if (!(parser.get_iss() >> this->debye_lengths))
388
+ {
389
+ this->debye_lengths = 0.0;
390
+ parser.incr_input_error();
391
+ parser.error_msg("Expected numeric value for debye_lengths.",
392
+ PHRQ_io::OT_CONTINUE);
393
+ }
394
+ debye_lengths_defined = true;
395
+ break;
396
+
397
+ case 11: // DDL_viscosity
398
+ if (!(parser.get_iss() >> this->DDL_viscosity))
399
+ {
400
+ this->DDL_viscosity = 1.0;
401
+ parser.incr_input_error();
402
+ parser.error_msg("Expected numeric value for DDL_viscosity.",
403
+ PHRQ_io::OT_CONTINUE);
404
+ }
405
+ DDL_viscosity_defined = true;
406
+ break;
407
+
408
+ case 12: // DDL_limit
409
+ if (!(parser.get_iss() >> this->DDL_limit))
410
+ {
411
+ this->DDL_limit = 0.0;
412
+ parser.incr_input_error();
413
+ parser.error_msg("Expected numeric value for DDL_limit.",
414
+ PHRQ_io::OT_CONTINUE);
415
+ }
416
+ DDL_limit_defined = true;
417
+ break;
418
+
419
+ case 13: // transport
420
+ if (!(parser.get_iss() >> this->transport))
421
+ {
422
+ this->transport = false;
423
+ parser.incr_input_error();
424
+ parser.error_msg("Expected boolean value for transport.",
425
+ PHRQ_io::OT_CONTINUE);
426
+ }
427
+ transport_defined = true;
428
+ break;
429
+
430
+ case 14: // new_def
431
+ if (!(parser.get_iss() >> this->new_def))
432
+ {
433
+ this->new_def = false;
434
+ parser.incr_input_error();
435
+ parser.error_msg("Expected boolean value for new_def.",
436
+ PHRQ_io::OT_CONTINUE);
437
+ }
438
+ break;
439
+
440
+ case 15: // new_def
441
+ if (!(parser.get_iss() >> this->solution_equilibria))
442
+ {
443
+ this->solution_equilibria = false;
444
+ parser.incr_input_error();
445
+ parser.error_msg("Expected boolean value for solution_equilibria.",
446
+ PHRQ_io::OT_CONTINUE);
447
+ }
448
+ break;
449
+
450
+ case 16: // n_solution
451
+ if (!(parser.get_iss() >> this->n_solution))
452
+ {
453
+ this->n_solution = -999;
454
+ parser.incr_input_error();
455
+ parser.error_msg("Expected integer value for n_solution.",
456
+ PHRQ_io::OT_CONTINUE);
457
+ }
458
+ break;
459
+ case 17: // totals
460
+ if (this->totals.read_raw(parser, next_char) != CParser::PARSER_OK)
461
+ {
462
+ parser.incr_input_error();
463
+ parser.
464
+ error_msg
465
+ ("Expected element name and molality for Surface totals.",
466
+ PHRQ_io::OT_CONTINUE);
467
+ }
468
+ break;
469
+ case 18: // tidied
470
+ if (!(parser.get_iss() >> this->tidied))
471
+ {
472
+ this->tidied = false;
473
+ parser.incr_input_error();
474
+ parser.error_msg("Expected boolean value for tidied.",
475
+ PHRQ_io::OT_CONTINUE);
476
+ }
477
+ break;
478
+ case 19: // correct_D
479
+ if (!(parser.get_iss() >> this->correct_D))
480
+ {
481
+ this->correct_D = false;
482
+ parser.incr_input_error();
483
+ parser.
484
+ error_msg("Expected boolean value for correct_D.",
485
+ PHRQ_io::OT_CONTINUE);
486
+ }
487
+ //correct_D_defined = true;
488
+ break;
489
+ }
490
+ if (opt == CParser::OPT_EOF || opt == CParser::OPT_KEYWORD)
491
+ break;
492
+ }
493
+ if (check)
494
+ {
495
+ // members that must be defined
496
+ if (only_counter_ions_defined == false)
497
+ {
498
+ parser.incr_input_error();
499
+ parser.
500
+ error_msg("Only_counter_ions not defined for SURFACE_RAW input.",
501
+ PHRQ_io::OT_CONTINUE);
502
+ }
503
+ //if (correct_D_defined == false)
504
+ //{
505
+ // parser.incr_input_error();
506
+ // parser.
507
+ // error_msg("correct_D not defined for SURFACE_RAW input.",
508
+ // PHRQ_io::OT_CONTINUE);
509
+ //}
510
+ if (thickness_defined == false)
511
+ {
512
+ parser.incr_input_error();
513
+ parser.error_msg("Thickness not defined for SURFACE_RAW input.",
514
+ PHRQ_io::OT_CONTINUE);
515
+ }
516
+ if (type_defined == false)
517
+ {
518
+ parser.incr_input_error();
519
+ parser.error_msg("Surface type not defined for SURFACE_RAW input.",
520
+ PHRQ_io::OT_CONTINUE);
521
+ }
522
+ if (dl_type_defined == false)
523
+ {
524
+ parser.incr_input_error();
525
+ parser.error_msg("Dl_type not defined for SURFACE_RAW input.",
526
+ PHRQ_io::OT_CONTINUE);
527
+ }
528
+ if (sites_units_defined == false)
529
+ {
530
+ parser.incr_input_error();
531
+ parser.error_msg("Sites_units not defined for SURFACE_RAW input.",
532
+ PHRQ_io::OT_CONTINUE);
533
+ }
534
+ if (debye_lengths_defined == false)
535
+ {
536
+ parser.incr_input_error();
537
+ parser.error_msg("Debye_lengths not defined for SURFACE_RAW input.",
538
+ PHRQ_io::OT_CONTINUE);
539
+ }
540
+ if (DDL_viscosity_defined == false)
541
+ {
542
+ parser.incr_input_error();
543
+ parser.error_msg("DDL_viscosity not defined for SURFACE_RAW input.",
544
+ PHRQ_io::OT_CONTINUE);
545
+ }
546
+ if (DDL_limit_defined == false)
547
+ {
548
+ parser.incr_input_error();
549
+ parser.error_msg("DDL_limit not defined for SURFACE_RAW input.",
550
+ PHRQ_io::OT_CONTINUE);
551
+ }
552
+ if (transport_defined == false)
553
+ {
554
+ parser.incr_input_error();
555
+ parser.error_msg("Transport not defined for SURFACE_RAW input.",
556
+ PHRQ_io::OT_CONTINUE);
557
+ }
558
+ }
559
+ this->Sort_comps();
560
+ }
561
+
562
+ void
563
+ cxxSurface::totalize()
564
+ {
565
+ this->totals.clear();
566
+ // component structures
567
+ for (size_t i = 0; i != this->surface_comps.size(); i++)
568
+ {
569
+ cxxSurfaceComp * comp_ptr = &(this->surface_comps[i]);
570
+ this->totals.add_extensive(comp_ptr->Get_totals(), 1.0);
571
+ this->totals.add("Charge", comp_ptr->Get_charge_balance());
572
+ }
573
+ return;
574
+ }
575
+ void
576
+ cxxSurface::add(const cxxSurface & addee_in, LDBLE extensive)
577
+ //
578
+ // Add surface to "this" surface
579
+ //
580
+ {
581
+ cxxSurface addee = addee_in;
582
+ if (extensive == 0.0)
583
+ return;
584
+ if (this->surface_comps.size() == 0)
585
+ {
586
+ this->only_counter_ions = addee.only_counter_ions;
587
+ this->correct_D = addee.correct_D;
588
+ this->dl_type = addee.dl_type;
589
+ this->type = addee.type;
590
+ this->sites_units = addee.sites_units;
591
+ this->thickness = addee.thickness;
592
+ this->debye_lengths = addee.debye_lengths;
593
+ this->DDL_viscosity = addee.DDL_viscosity;
594
+ this->DDL_limit = addee.DDL_limit;
595
+ this->solution_equilibria = addee.solution_equilibria;
596
+ this->n_solution = addee.n_solution;
597
+ this->transport = addee.transport;
598
+ }
599
+
600
+ for (size_t i_add = 0; i_add < addee.Get_surface_comps().size(); i_add++)
601
+ {
602
+ const cxxSurfaceComp & comp_add_ptr = addee.Get_surface_comps()[i_add];
603
+ size_t i_this;
604
+ for (i_this = 0; i_this < this->surface_comps.size(); i_this++)
605
+ {
606
+ cxxSurfaceComp & comp_this_ptr = this->surface_comps[i_this];
607
+ if(comp_add_ptr.Get_formula() == comp_this_ptr.Get_formula())
608
+ {
609
+ comp_this_ptr.add(addee.surface_comps[i_add], extensive);
610
+ break;
611
+ }
612
+ }
613
+ if (i_this == this->surface_comps.size())
614
+ {
615
+
616
+ cxxSurfaceComp entity = comp_add_ptr;
617
+ entity.multiply(extensive);
618
+ this->surface_comps.push_back(entity);
619
+ }
620
+ }
621
+ for (size_t i_add = 0; i_add < addee.Get_surface_charges().size(); i_add++)
622
+ {
623
+ const cxxSurfaceCharge & charge_add_ptr = addee.Get_surface_charges()[i_add];
624
+
625
+ size_t i_this;
626
+ for (i_this = 0; i_this < this->surface_charges.size(); i_this++)
627
+ {
628
+ cxxSurfaceCharge & charge_this_ptr = this->Get_surface_charges()[i_this];
629
+ if(charge_add_ptr.Get_name() == charge_this_ptr.Get_name())
630
+ {
631
+ charge_this_ptr.add(addee.surface_charges[i_add], extensive);
632
+ break;
633
+ }
634
+ }
635
+ if (i_this == this->surface_charges.size())
636
+ {
637
+
638
+ cxxSurfaceCharge entity = charge_add_ptr;
639
+ entity.multiply(extensive);
640
+ this->surface_charges.push_back(entity);
641
+ }
642
+ }
643
+ }
644
+
645
+ void
646
+ cxxSurface::multiply(LDBLE extensive)
647
+ //
648
+ // Add surface to "this" surface
649
+ //
650
+ {
651
+
652
+ for (size_t i = 0; i < this->surface_comps.size(); i++)
653
+ {
654
+ cxxSurfaceComp *comp_ptr = &(this->surface_comps[i]);
655
+ comp_ptr->multiply(extensive);
656
+ }
657
+ for (size_t i = 0; i < this->surface_charges.size(); i++)
658
+ {
659
+ cxxSurfaceCharge *charge_ptr = &(this->surface_charges[i]);
660
+ charge_ptr->multiply(extensive);
661
+ }
662
+ }
663
+ cxxSurfaceComp * cxxSurface::
664
+ Find_comp(std::string str)
665
+ {
666
+ for (size_t i = 0; i < this->surface_comps.size(); i++)
667
+ {
668
+ if (Utilities::strcmp_nocase(str.c_str(), this->surface_comps[i].Get_formula().c_str()) == 0)
669
+ return &(this->surface_comps[i]);
670
+ }
671
+ return NULL;
672
+ }
673
+
674
+ cxxSurfaceCharge * cxxSurface::
675
+ Find_charge(std::string str)
676
+ {
677
+ for (size_t i = 0; i < this->surface_charges.size(); i++)
678
+ {
679
+ if (Utilities::strcmp_nocase(str.c_str(), this->surface_charges[i].Get_name().c_str()) == 0)
680
+ return &(this->surface_charges[i]);
681
+ }
682
+ return NULL;
683
+ }
684
+ const cxxSurfaceCharge * cxxSurface::
685
+ Find_charge(std::string str)const
686
+ {
687
+ for (size_t i = 0; i < this->surface_charges.size(); i++)
688
+ {
689
+ if (Utilities::strcmp_nocase(str.c_str(), this->surface_charges[i].Get_name().c_str()) == 0)
690
+ return &(this->surface_charges[i]);
691
+ }
692
+ return NULL;
693
+ }
694
+ void cxxSurface::
695
+ Sort_comps(void)
696
+ {
697
+ // sort comps
698
+ {
699
+ std::map<std::string, cxxSurfaceComp> comp_map;
700
+ for (size_t i = 0; i < this->surface_comps.size(); i++)
701
+ {
702
+ comp_map[this->surface_comps[i].Get_formula()] = this->surface_comps[i];
703
+ }
704
+ this->surface_comps.clear();
705
+ std::map<std::string, cxxSurfaceComp>::iterator it;
706
+ for (it = comp_map.begin(); it != comp_map.end(); it++)
707
+ {
708
+ this->surface_comps.push_back(it->second);
709
+ }
710
+ }
711
+
712
+ // sort charge too
713
+ {
714
+ std::map<std::string, cxxSurfaceCharge> charge_map;
715
+ for (size_t i = 0; i < this->surface_charges.size(); i++)
716
+ {
717
+ charge_map[this->surface_charges[i].Get_name()] = this->surface_charges[i];
718
+ }
719
+ this->surface_charges.clear();
720
+ std::map<std::string, cxxSurfaceCharge>::iterator it;
721
+ for (it = charge_map.begin(); it != charge_map.end(); it++)
722
+ {
723
+ this->surface_charges.push_back(it->second);
724
+ }
725
+ }
726
+ }
727
+ /* ---------------------------------------------------------------------- */
728
+ void
729
+ cxxSurface::Serialize(Dictionary & dictionary, std::vector < int >&ints,
730
+ std::vector < double >&doubles)
731
+ /* ---------------------------------------------------------------------- */
732
+ {
733
+
734
+ ints.push_back(this->n_user);
735
+ ints.push_back((int) this->surface_comps.size());
736
+ {
737
+ for (size_t i = 0; i < this->surface_comps.size(); i++)
738
+ {
739
+ surface_comps[i].Serialize(dictionary, ints, doubles);
740
+ }
741
+ }
742
+ ints.push_back((int) this->surface_charges.size());
743
+ {
744
+ for (size_t i = 0; i < this->surface_charges.size(); i++)
745
+ {
746
+ surface_charges[i].Serialize(dictionary, ints, doubles);
747
+ }
748
+ }
749
+ ints.push_back(this->new_def ? 1 : 0);
750
+ ints.push_back(this->tidied ? 1 : 0);
751
+ ints.push_back((int) this->type);
752
+ ints.push_back((int) this->dl_type);
753
+ ints.push_back((int) this->sites_units);
754
+ ints.push_back(this->only_counter_ions ? 1 : 0);
755
+ doubles.push_back(this->thickness);
756
+ doubles.push_back(this->debye_lengths);
757
+ doubles.push_back(this->DDL_viscosity);
758
+ doubles.push_back(this->DDL_limit);
759
+ ints.push_back(this->correct_D ? 1 : 0);
760
+ ints.push_back(this->transport ? 1 : 0);
761
+ this->totals.Serialize(dictionary, ints, doubles);
762
+ ints.push_back(this->solution_equilibria ? 1 : 0);
763
+ ints.push_back((int) this->n_solution);
764
+
765
+ }
766
+
767
+ /* ---------------------------------------------------------------------- */
768
+ void
769
+ cxxSurface::Deserialize(Dictionary & dictionary, std::vector < int >&ints,
770
+ std::vector < double >&doubles, int &ii, int &dd)
771
+ /* ---------------------------------------------------------------------- */
772
+ {
773
+ this->n_user = ints[ii++];
774
+ this->n_user_end = this->n_user;
775
+ this->description = " ";
776
+ {
777
+ int count = ints[ii++];
778
+ this->surface_comps.clear();
779
+ for (int n = 0; n < count; n++)
780
+ {
781
+ cxxSurfaceComp sc(this->io);
782
+ sc.Deserialize(dictionary, ints, doubles, ii, dd);
783
+ this->surface_comps.push_back(sc);
784
+ }
785
+ }
786
+ {
787
+ int count = ints[ii++];
788
+ this->surface_charges.clear();
789
+ for (int n = 0; n < count; n++)
790
+ {
791
+ cxxSurfaceCharge sc(this->io);
792
+ sc.Deserialize(dictionary, ints, doubles, ii, dd);
793
+ this->surface_charges.push_back(sc);
794
+ }
795
+ }
796
+ this->new_def = (ints[ii++] != 0);
797
+ this->tidied = (ints[ii++] != 0);
798
+ this->type = (SURFACE_TYPE) ints[ii++];
799
+ this->dl_type = (DIFFUSE_LAYER_TYPE) ints[ii++];
800
+ this->sites_units = (SITES_UNITS) ints[ii++];
801
+ this->only_counter_ions = (ints[ii++] != 0);
802
+ this->thickness = doubles[dd++];
803
+ this->debye_lengths = doubles[dd++];
804
+ this->DDL_viscosity = doubles[dd++];
805
+ this->DDL_limit = doubles[dd++];
806
+ this->correct_D = (ints[ii++] != 0);
807
+ this->transport = (ints[ii++] != 0);
808
+ this->totals.Deserialize(dictionary, ints, doubles, ii, dd);
809
+ this->solution_equilibria = (ints[ii++] != 0);
810
+ this->n_solution = ints[ii++];
811
+
812
+ }
813
+
814
+
815
+ const std::vector< std::string >::value_type temp_vopts[] = {
816
+ std::vector< std::string >::value_type("diffuse_layer"), // 0
817
+ std::vector< std::string >::value_type("edl"), // 1
818
+ std::vector< std::string >::value_type("only_counter_ions"), // 2
819
+ std::vector< std::string >::value_type("donnan"), // 3
820
+ std::vector< std::string >::value_type("thickness"), // 4
821
+ std::vector< std::string >::value_type("component"), // 5
822
+ std::vector< std::string >::value_type("charge_component"), // 6
823
+ std::vector< std::string >::value_type("type "), // 7
824
+ std::vector< std::string >::value_type("dl_type"), // 8
825
+ std::vector< std::string >::value_type("sites_units"), // 9
826
+ std::vector< std::string >::value_type("debye_lengths"), // 10
827
+ std::vector< std::string >::value_type("ddl_viscosity"), // 11
828
+ std::vector< std::string >::value_type("ddl_limit"), // 12
829
+ std::vector< std::string >::value_type("transport"), // 13
830
+ std::vector< std::string >::value_type("new_def"), // 14
831
+ std::vector< std::string >::value_type("solution_equilibria"), // 15
832
+ std::vector< std::string >::value_type("n_solution"), // 16
833
+ std::vector< std::string >::value_type("totals"), // 17
834
+ std::vector< std::string >::value_type("tidied"), // 18
835
+ std::vector< std::string >::value_type("correct_d") // 19
836
+ };
837
+ const std::vector< std::string > cxxSurface::vopts(temp_vopts, temp_vopts + sizeof temp_vopts / sizeof temp_vopts[0]);