Skip to content

Releases: usgs-coupled/phreeqci

Version 3.8.7-17149

26 Feb 19:34
Compare
Choose a tag to compare
Version 3.8.7: February 25, 2025
	-----------------
	February 20, 2025
	-----------------
	PhreeqcRM: Downgraded compiler standard from C++14 to C++11 for compatibility.

	-----------------
	February 12, 2025
	-----------------
	PHREEQC: Added database stimela.dat, a database for use in
	drinking-water and waste-water treatment from Peter de Moel and Omnisys.
	Here is an excerpt of the initial lines of the database.
	
#  stimela.dat (version 3.8.6)						(stimela version of phreeqc.dat)						
#  under development by Peter de Moel (Omnisys) for Stimela platform at Delft University of Technology												
#  based on: phreeqc.dat (file date 2025-01-07, in IPhreeqcCOM-3.8.6-17100-x64.msi)												
#  Stimela is focussed on modelling for water and waste water treatment												
#  Further info on using PHREEQC for water treatment, and PHREEQC in Excel can be found on https://ac4e.omnisys.nl/
												
#  list of modifications: 												
#  - added Amm (with master species AmmH+) as used in amm.dat for redox-uncoupled NH3 (for using Tony Appelo's input files)												
#  - added [N-3] (with master species [N-3]H4+) as alternative for redox-uncoupled Amm (for readable chemical formula)												
#  - added [Fe+2], [Mn+2] and [N+3] (with master species [Fe+2]+2 , [Mn+2]+2 and [N+3]O2-) for redox-uncoupled Fe+2, Mn+2 and NO2-												
#  - added [C-4] and [S-2] (with master species [C-4]H4 and H2[S-2]) as alternatives for redox-uncoupled Mtg and Sg)												
#  - added solid Vaterite (CaCO3) (included in Standard Methods 2330 (2010))												
#  - unchanged analytic for solid Calcite (phreeqc 3.7.0. introduced modified version, deviated from Standard Methods 2330 - 2016)												
#  - modified values for element_gfw according to Abridged Standard Atomic Weights from TSAW 2013 (CIAAW/IUPAC) (https://www.ciaaw.org/abridged-atomic-weights.htm)												
#  end of list of modifications 												

	-----------------
	February 12, 2025
	-----------------
	PHREEQC: Fixed bug in GasComp.cxx. The order of the options
	was incorrect, which caused -p (pressure) to be misinterpreted
	when reading GAS_PHASE_RAW.

	-----------------
	February 11, 2025
	-----------------
	PhreeqcRM: Increased minimum CMake version to 3.22
	ENVIRONMENT_MODIFICATION requires 3.22

	-----------------
	February 10, 2025
	-----------------
	PhreeqcRM: Fixed CMake builds that set PHREEQCRM_STATIC_RUNTIME=ON.
	When PHREEQCRM_STATIC_RUNTIME=ON, the Runtime Library is configured as /MD for Release builds and /MDd for Debug builds

	-----------------
	February 05, 2025
	-----------------
	PhreeqcRM: Fixed a Python crash that occurred when BMIPhreeqcRM::LoadDatabase was called before BMIPhreeqcRM::initialize().
	Updated to C++14 for autotools and CMake builds
	BMIPhreeqcRM::LoadDatabase now throws if initialize() hasn't been called

Full Changelog: v3.8.6...v3.8.7

Version 3.8.6-17100

08 Jan 01:42
Compare
Choose a tag to compare
Version 3.8.6: January 7, 2025

	-----------------
	January 7, 2025
	-----------------
	PHREEQC: Refactored github actions to test CMake build based on autotools
	distribution.

	-----------------
	January 4, 2025
	-----------------
	PHREEQC: Fixed examples to have fewer warnings. Fixed headers of 
	some database files. Changed some output from warnings to comments.

	-----------------
	January 3, 2025
	-----------------
	PHREEQC: Fixed version and date string replacements in source distribution.

Full Changelog: v3.8.5...v3.8.6

Version 3.8.5-17052

21 Nov 18:16
Compare
Choose a tag to compare
Version 3.8.5: November 20, 2024

	-----------------
	November 15, 2024
	-----------------
	PhreeqcRM: Fixed a bug when the diffuse-layer disappeared in a PhreeqcRM calculation
	with a Runge-Kutta integration and the rate went to zero. The error produced charge 
	imbalance because the surface transformed to a no-EDL surface; charge accumulated
	on the surface and was balanced by an opposite charge imbalance in the solution. 

	-----------------
	November 13, 2024
	-----------------
	PHREEQCI: Resolved a bug that caused a buffer overflow and led to PHREEQCI
	freezing when loaded under the Simplified Chinese locale.
	
	-----------------
	November 11, 2024
	-----------------
	PHREEQC: Added a new keyword data block GAS_BINARY_PARAMETERS that define 
	binary interaction coefficients for pairs of gas components. PHREEQC retains
	some hard-coded interaction parameters, but these can be modified, and new 
	interaction parameters can be added with the new data block. The following 
	data block gives the hard-coded values in PHREEQC:
		GAS_BINARY_PARAMETERS
		H2O(g)  CO2(g)           0.19
		H2O(g)  H2S(g)           0.19
		H2O(g)  H2Sg(g)          0.19
		H2O(g)  CH4(g)           0.49
		H2O(g)  Mtg(g)           0.49
		H2O(g)  Methane(g)       0.49
		H2O(g)  N2(g)            0.49
		H2O(g)  Ntg(g)           0.49
		H2O(g)  Ethane(g)        0.49
		H2O(g)  Propane(g)       0.55

	-----------------
	November 7, 2024
	-----------------
	PhreeqcRM: Fixed a bug when multiple PhreeqcRM instances were created in Fortran
	with debug compilation. Some debugging code caused a failure if the instances did
	not have the same number of cells. 
	
	-----------------
	November 1, 2024
	-----------------
	Phreeqc: Updated H+ and Br- viscosity in Amm.dat, phreeqc.dat, phreeqc_rates.dat, and pitzer.dat.
	Small change to basicsubs.cpp. 

	-----------------
	October 24, 2024
	-----------------
	IPhreeqc: Updated IPhreeqc unit tests.

Full Changelog: v3.8.3...v3.8.5

Version 3.8.3-17023

23 Oct 18:48
Compare
Choose a tag to compare
Version 3.8.3: October 22, 2024

  	-----------------
	October 8, 2024
  	-----------------
	PHREEQC: Revised the multicomponent diffusion calculation of heat and solutes, 
	accounting now for the heat also for the T-dependent viscosity of the solutions.
	
	-----------------
	October 8, 2024
  	-----------------
	PHREEQC: Corrected spelling errors throughout PHREEQC as supplied by Mike Toews.
	Modified "lamda" to "lambda" internally as suggested by Toews, but "lamda" and 
	"lambda" are both acceptable in Pitzer database files for backward compatibility.

  	-----------------
	October 8, 2024
  	-----------------
	PHREEQC: Fixed  bug in MIX that produced erroneous temperature and pressure
	if the solutions being mixed did not have 1 kg of water. (Note that PHREEQC does 
	not consider the heat content of the solutions when the temperature of the mixture 
	is calculated.)

Full Changelog: v3.8.2...v3.8.3

Version 3.8.2-16969

30 Aug 02:19
Compare
Choose a tag to compare
Version 3.8.2: August 29, 2024

  	-----------------
	August 27, 2024
  	-----------------
	Added variable "viscos_DDL" in EDL("viscos_DDL", "surface_name") to give the
	viscosity of a Donnan layer on a surface in BASIC. Note that the "surface_name"
	should not contain an underscore "_", the Donnan properties are for the surface,
	not for surface charge, thus use the surface name "Hfo", not "Hfo_w". If
	"surface_name" is omitted, the viscosity is given for the first surface in the
	alphabetical order.

	The viscosity of the Donnan layer on a surface is printed now in the output file.

	The viscosity calculation was adapted for high concentrations of neutral species
	and gases. Viscosity parameters for CO2 were added using data from McBride et
	al., 2015, JCED 60, 171-180. See example c:\phreeqc\viscosity\CO2.phr.

Full Changelog: v3.8.1...v3.8.2

Version 3.8.1-16963

24 Aug 19:55
Compare
Choose a tag to compare
Version 3.8.1: August 23, 2024
  	-----------------
	August 20, 2024
  	-----------------
	PhreeqcRM (Python): Expanded documentation in BMI Python example notebook for
	PHREEQC example 11 (ex11-advect.ipynb), courtesy of LimnoTech.
	
	-----------------
	August 14, 2024
	-----------------
	IPhreeqc: Pull request for modifications of class definition order and header file to 
	accommodate Clang 15 on Mac.

	-----------------
	August 13, 2024
	-----------------
	IPhreeqc: This resolves an issue when building shared libraries (DLLs) on Windows with
	BUILD_SHARED_LIBS=ON and BUILD_TESTING=ON enabled in CMake.

	Sets BUILD_SHARED_LIBS=OFF when building the googletest framework.
	Adds ctest-shared.cmake for testing shared library builds.

	It also resolves a build error that occurred when building shared libraries (DLLs) on
	Windows using the Ninja generator.

	Adds the _WINDLL preprocessor definition for shared Windows builds.
	
	-----------------
	August 8, 2024
  	-----------------
	PhreeqcRM (Python): Fixed one docstring. Added code to handle numpy arrays 
	in yamlphreeqc.
	
  	-----------------
	July 11, 2024
  	-----------------
	PHREEQC: Fixed a bug in the DUMP routines. Under some circumstances
	erroneous output was dumped for a user number.  In most cases, the
	correct output was dumped following the erroneous output, which
	caused the erroneous output to be ignored.

Full Changelog: v3.8.0...v3.8.1

Version 3.8.0-16920

11 Jul 23:06
Compare
Choose a tag to compare
Version 3.8.0: July 11, 2024
  	-----------------
	July 11, 2024
  	-----------------
	PHREEQC: Fixed a bug in the DUMP routines. Under some circumstances
	erroneous output was dumped for a user number.  In most cases, the
	correct output was dumped following the erroneous output, which
	caused the erroneous output to be ignored.

  	-----------------
	May 18, 2024
  	-----------------
	DATABASES:
	sit.dat was updated to version 12a (Aug 22, 2023) from www.thermochimie-tdb.com.

	Amm.dat, iso.dat, llnl.dat, minteq.dat, minteq.v4.dat, phreeqc.dat, 
	phreeqc_rates.dat, pitzer.dat. Tipping_Hurley.dat, and wateq4f.dat were 
	reformatted by using the lsp utility by David Kinniburgh from phreeplot.org.

  	-----------------
	May 3, 2024
  	-----------------
	PHREEQC: The -dw identifier of SOLUTION_SPECIES now has up to 7 items.
	
	-dw Dw(25C) dw_T a a2 visc a3 a_v_dif  
	
	where,
	Dw(25C)--Tracer diffusion coefficient for the species at 25 °C, m 2 /s. 
	dw_T--Temperature dependence for diffusion coefficient.
	a--Debye-Hückel ion size.
	a2--exponent.
	Visc--Viscosity exponent.
	a3--Ionic strength exponent.
	A_v_dif--Exponent for (viscosity_0/viscosity).
	
	The diffusion coefficient is calculated as follows:
	Dw = Dw(25C) * exp(dw_T / T - dw_T / 298.15)
	ka = DH_B * a2 * I0.5/ (1 + a3)
	av = (viscos_0/viscos)a_v_diff
	ff = av * exp(-a * DH_A * z * I0.5 / (1 + ka))
	Dw = Dw * ff
	Where T is temperature in Kelvin, DH_B is the Debye-Hückel B parameter, 
	I is ionic strength, viscos_0 is the viscosity of pure water at T, viscos is 
	the viscosity of the solution at T, DH_A is the Debye-Hückel A parameter,
	and z is the charge on the species,the viscosity of the solution. 
	See Robinson and Stokes, 2002, Chpt 11 for examples. 
	The Dw and a_v_dif can be set in a USER_ program with 
	setdiff_c("name", Dw, a_v_dif), for example: 
	  10 print setdiff_c("H+", 9.31e-9, 1). 
	The diffusion coefficient of H+ is handled differently with 
	Falkenhagen equations. 

  	-----------------
	May 3, 2024
  	-----------------
    PHREEQC: The ionic strength correction is for electromigration calculations 
	(Appelo, 2017, CCR 101, 102). The correction is applied when the 6th parameter
	option is set to true for -multi_D in TRANSPORT:
    
	-multi_d true/false 1e-9 0.3 0.05 1.0 true/false # multicomponent diffusion
	
	true/false, multicomponent diffusion is used,
	default tracer diffusion coefficient (used in case -dw is not defined for a species), 
	porosity (por = 0.3), 
	limiting porosity (0.05) below which diffusion stops, 
	exponent n (1.0) used in calculating the effect of tortuosity on the 
	porewater diffusion coefficient	Dp = Dw * por^n, 
	true/false: correct Dw for ionic strength (false by default). 
	
  	-----------------
	May 3, 2024
  	-----------------
	Database: Added new database phreeqc_rates.dat. The database augments
	phreeqc.dat with rate parameters from Palandri and Kharaka (2004),
	Sverdrup, Oelkers, Lampa, Belyazid, Kurz, and Akselsson (2019) (only 
	Albite and quartz), and Hermanska, Voigt, Marieni, Declercq, 
    and Oelkers (2023). Parameters are defined in data blocks
	RATE_PARAMETERS_PK, RATE_PARAMETERS_SVD, and RATE_PARAMETERS_HERMANSKA.
	All minerals with rate parameters have been added in a PHASES
	data block. Example RATES definitions using the different RATE_PARAMETERS_
	parameters are provided for Albite and Quartz. 

  	-----------------
	April 27, 2024
  	-----------------
	Databases: Added new keyword data block MEAN_GAMMAS. Each line 
	of the data block defines how to calculate the mean activity
	coefficient for a salt with a series of pairs of 
	aqueous species and stoichiometric coefficient. Phreeqc.dat, 
	Amm.dat, pitzer.dat, and phreeqc_rates.dat have this data block.
	
	MEAN_GAMMAS
	MgCl2  Mg+2 1 Cl 2
	
	A new Basic function MEANG will calculate mean activity coefficients
	for salts listed in the MEAN_GAMMAS data block.
	
	10 g_MgCl2 = MEANG("MgCl2")
	
	
  	-----------------
	April 27, 2024
  	-----------------
	PHREEQC: Added new keyword data blocks RATE_PARAMETERS_PK, RATE_PARAMETERS_SVD,
	and RATE_PARAMETERS_HERMANSKA and Basic functions RATE_PK, RATE_SVD, and
	RATE_HERMANSKA
	
	RATE_PARAMETERS_PK
#               Acid                       Neutral           Base
#               log K    E        n(H+)    log K    E        log K    E        n(OH-)
#               ======== ======== ======== ======== ======== ======== ======== ========
Quartz          -30      0        0        -13.4    90.9     -30      0        0        # Table 4
#               Acid                       Neutral           P_CO2
#               log K    E        n(H+)    log K    E        log K    E        n(P_CO2) Table
#               ======== ======== ======== ======== ======== ======== ======== ======== ========
calcite         -0.3     14.4     1        -5.81    23.5     -3.48    35.4     1        33       # specify Table number for P_CO2^n(P_CO2)
#               Acid and Fe+3                       Neutral and O2             Base
#               log K    E        n(H+)    n(Fe+3)  log K    E        n(O2)    log K    E        n(OH-)   Table
#               ======== ======== ======== ======== ======== ======== ======== ======== ======== ======== ========
pyrite          -7.52    56.9    -0.5      0.5      -4.55    56.9     0.5      -30      0        0        35       # specify Table number for Fe+3 and O2

	Three rate equations from Palandri and Kharaka (2004) can be entered. Most minerals use
	use the first form above with 8 parameters. Table 33 has a term for CO2 as in 
	the calcite example above; parameters from table 33 are identified with a 33 in the 9th
	field following 8 parameters. Table 35 has additional terms and data from this table
	is identified with 35 in field 11 following 10 rate parameters. The rates for the 
	the minerals listed in the data block can be calculated with the Basic function RATE_PK.
	The calculated rate does not include factors for surface area or affinity.
	
	10 rate = RATE_PK("Calcite")
	
	RATE_PARAMETERS_SVD
#        Table 4: E's                    Table 3: H+-reaction                H2O-reaction                        CO2-reaction    Organic_acids        OH--reaction                                Table 5
#        H+     H2O    CO2    Org_acids OH-    pkH    nH     yAl    CAl    xBC    CBC    pkH2O  yAl    CAl    xBC    CBC    zSi    CSi    pkCO2  nCO2   pkOrg  nOrg   COrg  pkOH-  wOH-   yAl    CAl    xBC    CBC    zSi    CSi    #      Num    Mineral Formula
#        ====== ====== ====== ========= ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ===== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ======= ======
Albite   3350    2500  1680   1200      3100   14.6   0.5    0.4    0.4    0.4    0.5    16.8   0.15   4      0.15   200    3      900    16.05  0.6    14.7   0.5    5     15.4   0.3    0.1    12     0.5    5      3      900    #      1.6    Albite  NaAlSi3O8

	Rate parameters from Sverdrup, Oelkers, Lampa, Belyazid, Kurz, and Akselsson (2019)
	can be specified with the RATE_PARAMETERS_SVD data block. A total of 31 parameters 
	are entered for each mineral. The rates for minerals minerals listed in the data 
	block can be calculated with the Basic function RATE_SVD. The calculated rate does 
	not include factors for surface area or affinity.
	
	10 rate = RATE_SVD("Albite")
	
RATE_PARAMETERS_HERMANSKA
#               Acid mechanism                       Neutral mechanism           Basic mechanism
#               logk25   Aa       Eaa      n(H+)     logk25   Ab        Eab      logk25   Ac        Eac      n(OH)    #    Formula
#               ======== ========= ======== ======== ======== ========= ======== ======== ========= ======== ======== =========================================
# Amphiboles
Anthophyllite   -12.4    5.70E-04  52       0.4      -13.7    5.00E-06  48       0        0         0        0

	Rate parameters from Hermanska, Voigt, Marieni, Declercq, and Oelkers (2023) can 
	be specified with the RATE_PARAMETERS_HERMANSKA data block. A total of 11 parameters 
	are entered for each mineral. The rates for minerals listed in the data block can 
	be calculated with the Basic function RATE_HERMANSKA. The calculated rate does not 
	include factors for surface area or affinity.
	
	10 rate = RATE_HERMANSKA("Anthophyllite")


  	-----------------
	April 21, 2024
  	-----------------
	PHREEQC: Added Basic functions GET$ and PUT$. They are are the same as
	GET and PUT, except the first argument for PUT$ is a character string, 
	and GET$ returns a character string. You may use one or more indices as
	needed to identify the value that is saved (PUT$) or retrieved (GET$).
	
	PUT$("MgCl2", 1, 1, 1)
	x$ = GET$(1, 1, 1)

  	-----------------
	April 19, 2024
  	-----------------
	DATABASE: Kinec.v2.dat is a new llnl.dat style database from the 
	CarbFix2 and GECO projects that is included in new distributions of 
	PHREEQC. This database contains the parameters for calculating mineral 
	dissolution rates for primary and secondary silicate minerals using the 
	equations and parameters reported by Hermanska et al. (2022, 2023)  
	and dissolution rates for other non-silicate mineral systems using the 
	equations and parameters reported by Oelkers and Addassi (2024, in 
	preparation).

  	-----------------
	April 15, 2024
  	-----------------
	PHREEQC: Fixed a memory error with iso.dat because it uses H3O+ instead of 
	H+. The SC variable was uninitialized in that situation.
	
	DATABASES: Amm.dat, phreeqc.dat, and pitzer.dat were updated with 
	revisions to viscosity and specific conductance.
	
	PhreeqcRM and IPhreeqc: Fixed bug with the temperature grid for llnl. Some 
	internal testing and list ge...
Read more

v3.6.4

30 Oct 00:11
Compare
Choose a tag to compare
v3.6.4 Pre-release
Pre-release
Merge commit 'e13c3fda244ef91dc058e8061c27f8e8a50d85cb'