Releases: usgs-coupled/phreeqci
Releases · usgs-coupled/phreeqci
Version 3.8.7-17149
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
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
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
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
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
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
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...
v3.6.4
Merge commit 'e13c3fda244ef91dc058e8061c27f8e8a50d85cb'