Skip to content

Instantly share code, notes, and snippets.

@emiliom
Created December 9, 2013 02:38
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save emiliom/7866654 to your computer and use it in GitHub Desktop.
Save emiliom/7866654 to your computer and use it in GitHub Desktop.
#phreeqpy #geochem_models PHREEQC -- phreeqpy example. Taken directly from a Python example (section 3.2, Table 3) in Charlton & Parkhurst (2011), which compares gypsum solubility for WATEQ4F and Pitzer databases. Compiled and run on Linux Ubuntu 64bit. Emilio Mayorga, 12/8/2013. Charlton, S. R., Parkhurst, D. L. 2011. Modules based on the geoch…
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "phreeqpy_gypsum_solubility"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[PHREEQC](http://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phreeqc/index.html) -- __[phreeqpy](http://www.phreeqpy.com)__ example. Taken directly from a Python example (section 3.2, Table 3) in Charlton & Parkhurst (2011), which _compares gypsum solubility for WATEQ4F and Pitzer databases_. Compiled and run on Linux Ubuntu 64bit. [Emilio Mayorga](https://gist.github.com/emiliom), 12/8/2013\n",
"\n",
" * Charlton, S. R., Parkhurst, D. L. 2011. Modules based on the geochemical model PHREEQC for use in scripting and programming languages. _Computers & Geosciences_ 37 (10), 1653-1663. http://dx.doi.org/10.1016/j.cageo.2011.02.005\n",
" * [phreeqpy ](http://www.phreeqpy.com)"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import os\n",
"import phreeqpy.iphreeqc.phreeqc_dll as phreeqc_mod"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# path for .dat files\n",
"datpath = \"/usr/mayorgadat/workmain/DataServicesDev/pygeochem/phreeqpy/iphreeqc-2.18.4-6386/examples/com/python\""
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def selected_array(db_path, input_string):\n",
" \"\"\"Load database via linked library object and run input string.\n",
" May be more conventional to use variable name 'phreeqc' instead of 'dbase'.\n",
" \"\"\"\n",
" dbase = phreeqc_mod.IPhreeqc('/usr/local/lib/libiphreeqc.so')\n",
" dbase.load_database(db_path)\n",
" dbase.run_string(input_string)\n",
" return dbase.get_selected_output_array()"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Reaction configuration\n",
"input_string = \"\"\"\n",
" SOLUTION 1\n",
" END\n",
" INCREMENTAL_REACTIONS\n",
" REACTION\n",
" NaCl 1.0\n",
" 0 60*0.1 moles\n",
" EQUILIBRIUM_PHASES\n",
" Gypsum\n",
" USE solution 1\n",
" SELECTED_OUTPUT\n",
" -reset false\n",
" -total Na S(6)\n",
" END\"\"\""
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Get results for different databases\n",
"wateq4f_result = selected_array(os.path.join(datpath, 'wateq4f.dat'), input_string)\n",
"pitzer_result = selected_array(os.path.join(datpath, 'pitzer.dat'), input_string)\n",
"# Get data from the arrays.\n",
"nacl_conc = [entry[0] for entry in wateq4f_result][1:]\n",
"wateq4f_values = [entry[1] for entry in wateq4f_result][1:]\n",
"pitzer_values = [entry[1] for entry in pitzer_result][1:]"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Plot\n",
"plot(nacl_conc, pitzer_values, 'k', nacl_conc, wateq4f_values,'k--')\n",
"axis([0, 6, 0, .06])\n",
"legend(('PITZER','WATEQ4F'), loc = (0.4, 0.4))\n",
"ylabel('Gypsum Solubility, moles/(kg water)')\n",
"xlabel('NaCl, moles/(kg water)')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 6,
"text": [
"<matplotlib.text.Text at 0x27dfe10>"
]
},
{
"output_type": "display_data",
"png": "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\n"
}
],
"prompt_number": 6
}
],
"metadata": {}
}
]
}
@oscarbranson
Copy link

oscarbranson commented Aug 24, 2017

Note for mac users: the shared library is /usr/local/lib/libiphreeqc.dylib, not .so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment