Skip to main content
U.S. flag

An official website of the United States government

Programming PHREEQC calculations with C++ and Python a comparative study

November 30, 2011

The new IPhreeqc module provides an application programming interface (API) to facilitate coupling of other codes with the U.S. Geological Survey geochemical model PHREEQC. Traditionally, loose coupling of PHREEQC with other applications required methods to create PHREEQC input files, start external PHREEQC processes, and process PHREEQC output files. IPhreeqc eliminates most of this effort by providing direct access to PHREEQC capabilities through a component object model (COM), a library, or a dynamically linked library (DLL). Input and calculations can be specified through internally programmed strings, and all data exchange between an application and the module can occur in computer memory.

This study compares simulations programmed in C++ and Python that are tightly coupled with IPhreeqc modules to the traditional simulations that are loosely coupled to PHREEQC. The study compares performance, quantifies effort, and evaluates lines of code and the complexity of the design. The comparisons show that IPhreeqc offers a more powerful and simpler approach for incorporating PHREEQC calculations into transport models and other applications that need to perform PHREEQC calculations. The IPhreeqc module facilitates the design of coupled applications and significantly reduces run times. Even a moderate knowledge of one of the supported programming languages allows more efficient use of PHREEQC than the traditional loosely coupled approach.

Publication Year 2011
Title Programming PHREEQC calculations with C++ and Python a comparative study
Authors Scott R. Charlton, David L. Parkhurst, Mike Muller
Publication Type Conference Paper
Publication Subtype Conference Paper
Index ID 70189371
Record Source USGS Publications Warehouse
USGS Organization Toxic Substances Hydrology Program; National Research Program - Central Branch