Release Text HPx
Last Updated: 2025-04-28
By: Diederik Jacques
Main References
Jacques D, Simunek J, Mallants D, van Genuchten MT. The HPx software for multicomponent reactive transport during variably-saturated flow: Recent developments and applications. JOURNAL OF HYDROLOGY AND HYDROMECHANICS. 2018;66(2):211-26.
Šimůnek, J., G. Brunetti, D. Jacques, M. Th. van Genuchten, and M. Šejna, Recent developments and applications of the HYDRUS computer software packages since 2016, Vadose Zone Journal, 23(1), e20310, 29 p., doi: 10.1002/vzj2.20310, 2024
Web - https://www.pc-progress.com/en/Default.aspx?h1d-hp1
Current Version: 3.03.005
Version 3.05
----------
3.05/000 202x xx xx
-----------
Phreeqc
Adding GEMS
Adding YANTRA
Adding PNM
Adding hydrus: colloidal transport (mobile surfaces)
Version 3.04
----------
3.04/000 202x xx xx
-----------
Phreeqc
Feature PHREEQC version 3.8.7
Feature Script functions can be used as alternative geochemical solvers
Feature Python available as script interpreter
ORCHESTRA
Feature Available as alternative geochemical solver
HYDRUS1D
Feature Available for Linux
HYDRUS2D
Feature Available for Linux
HYDRUS3D
Feature 3D transport solver available
Feature Available for Linux
MT3D-USGS
Version 3.03
----------
3.03/005 2025 xx xx
-----------
Phreeqc
Feature Adding option to adapt log_K values during simulations for phases, exchange species, aqueous species and surface species (-var_logk)
Change
HYDRUS1D
HYDRUS2D
MT3D-USGS
----------
3.03/005 2025 04 28
-----------
Phreeqc
Feature PHREEQC version 3.8.2
Feature Selected_graphs. For standard graphs in HPGeochemistry, the option -fig_multi identifier will create for each index (identified with punch index or similar in the input) a plot.
Feature Selected_graphs. -export true will save pgn files of the plots after the simulations (when launched with the graphical user interface).
Feature Define variants in x and y axis for a graph via Selected_graph
Feature New mybasic functions – string.trim()
Feature _CURVE in curve transformations
Change Includepath and include$ - enabling short writing of paths to allow for longer paths
Change string.trim() extended to add elements to an existing record
HYDRUS1D
HYDRUS2D
MT3D-USGS
----------
3.03/004 2024 04 01
-----------
Phreeqc
Feature Option for not pressing Enter for closing the run
Feature New mybasic functions – push_def(), clear_def(), deletef(), string.strtoint()
Feature Mybasic script : # as a comment symbol
Feature Counter linked to file: commented lines possible
Feature Comments in datablock possible
Feature Calculated_values: add state print_value
Feature selected_graph: -fig_showzeros to indicate if curves with all zeros should be shown
Change Selected_graph: -fig_include and -include
Bug When -reaction true in selected_output during transport
Bug When a global variable (used as inline variable) is an integer
Bug Need to set punch_on to true after calculated_values -state definition calculation
Bug SUnitConversion: initialisation of members to 1.0
HYDRUS1D
HYDRUS2D
Feature Option for one-dimensional radial transport (only halve of nodes requires geochemical calculations)
Feature Dispersive fluxes over mesh lines are calculated
Bug Bug in output files when number of solutes > 20
MT3D-USGS
----------
3.03/003 2022 11 04
-----------
Phreeqc
Feature Adding options for reset
Feature Selected_output: add identifier -counter
Feature Selected_graph – curve options: add q (query) for filtering data rows and s (sort) for sorting data rows
Bug MyBasic: entity.run() when working with multiple arguments
Bug Memory leak when deleting descriptions of GLOBAL_variables
Bug Printing integers with high precision
Bug OPENMP when SIT model is used
HYDRUS1D
HYDRUS2D
Feature Adding options for reservoir BC (and other features e.g. sublimation)
Feature Extend number of components from 10 to 40
MT3D-USGS
Adding version 1.1.0 from MT3D-USGS
----------
3.03/002 2022 05 05
-----------
Phreeqc
Bug Solving memory leak in error messages of MyBasic
Bug Error when type of a put_var() is changed from integer to real value
Bug CounterIncr: - operator was not working
Bug Double heading and spacing in profile output files when gnuplot templates are selected
Calc 3.01/003
HP1 3.01/001
HP2 3.02/.002
----------
3.03/001 2022 03 26
-----------
Phreeqc
Feature PHREEQC version 3.7.3
Feature Add new MyBasic functions from PHREEQC 3.7.0-3.7.3 (except set_diff_c(), mcd_jtot(), mcd_jconc())
Feature Selected_graph: add several graph types for reactive transport simulation results
Feature Selected_graph: add option for stacked graph
Feature Add _PHREEQCVERSION as global variable
Feature Mybasic functions:
str.format() for formatting a string according to C++ string format conditions
Functions to modify, copy and run chemical entities (entity.modify(), entity.copy(), entity.run())
Feature Improve error messaging for MyBasic and inline variables
Feature PRINT: control of –echo_input when including a file
Calc 3.01/003
HP1 3.01/001
HP2 3.02/.002
Version 3.02
----------
3.02/002 2021 08 23
-----------
Phreeqc
Feature Selected_graph: add smooth function
Feature Selected_output: add –system for total amounts of elements in different phases
Feature Selected_output: add –contour to create outputfiles than enables gnuplot to make a contour plot
Feature selected_output: allow for multiple selected_output definitions, including for –crosssection and mobile/immobile.
Feature selected_output: add summed variables
Feature Inline variables: add format specifiers
Feature Inline variable: from DATABLOCK and calculate_values
Feature Reactive_transport: choosing script functions as geochemical solver
Feature solution_spread: add extra delimiter (comma)
Feature datablock: add extra delimiters (comma, tab)
Bug Change MyBasic function kin_times() to kin_time()
Bug get_defexist: memory problem
Bug print_values: correction for punch_on
Bug Bug when file (in datablock) is used as a counter
Bug Inline variables including : or ::
Beta versions
Including python
Including ORCHESTRA as an alternative geochemical solver during reactive transport
Script function: get_orch() (MyBasic)
Calculate_Values: new –state Orchestra to send script to ORCHESTRA calculator
Reactive_transport_num: add option –orchestra to define if the parallel option in ORCHESTRA is used instead of –openmp.
Contact djacques@sckcen.be for more information
Calc 3.01/003
HP1 3.01/001
HP2
Upgrade to current HPx version
Upgrade to x64
----------
3.02/001 2020 10 18
-----------
Phreeqc
Feature Adaptations for error messaging
Feature SELECTED_GRAPH: add option for stacked graphs
Feature SELECTED_graphs: add option to transform variables
Bug Calculate mass balance error when temperature is different from 25
Calc 3.01/003
HP1 3.01/001
Version 3.01
----------
3.01/003 2020 08 21
-----------
Phreeqc
Feature Adaptations for error messaging
Feature SELECTED_GRAPH: add YX plot, add combined Time series plot, add curve option for k “__nc”.
Feature Some improved error messages – Stop of transport calculation when geochemistry does not converge
Feature Addition of some script functions: modify_reactant, module entity (MyBasic)
Bug Column heading in out files for Alkalinity changed to Alk
Bug Resolve some bugs for information written to HPx.xlm file
Calc
Feature Including Horizontal Drains bottom boundary condition
Feature Allowing for negative seepage bottom boundary condition
HP1 3.01/001
----------
3.01/002 2020-02-04
----------
Phreeqc
Version Integration of PHREEQC 3.6.1
Feature Add sum_solid() to mybasic scripting language
Bug Memory allocation error for gas component name
Calc 3.00/001
HP1 3.01/001
---------
3.01/001 2020-01-20
---------
Phreeqc
Feature Keyword GNUPLOT_DEF: Add option to read a number of gnuplot script (for HPOutput)
Bug Indices of output files for immobile region in MIM model – wrong numbering of nodes after introducing PHREEQC 3.6.0 (HP 3.00.003)
Output Axis labels for punch variables (-plot_titles) are added to HPx.xml
Calc 3.00/003
HP1 3.01/003
Version 3.01
---------
3.00/003 2020-01-06
---------
Phreeqc
Version Integration of PHREEQC 3.6.0
Feature GLOBAL_VARIABLE – include muparserx to define the value of a numerical global variable with a simple set of arithmetic expressions. Use & as a command separator.
GLObal_variable var1=@_NODES*2
GLOBAL_VARIABLE r 0.5
GLOBAL_VARIABLE area=pi=3.1415 &\
pi*@r^2
Feature Numerical inline variables can be defined with a simple set of arithmetic expressions (muparseX). Use & as a command separator.
Feature COUNTER & COUNTERINCR: an integer global variable to be used as an inline variable. If it is used as inline variable, the current value is used and then changed according its definition and use.
Feature REPEAT include: save a file with a repetitive Include$ statement
Feature PUNCH: print text to a selected-output file
Feature selected_graph: defines graphs for viewing in HPOutput. Selected_graphs are lined to selected_output.
Bug Use _float_to_string instead of to_string for using global variables in input files.
Bug Topmix was also calculated for variable water flow boundary conditions other than atmospheric boundary conditions. Topmix is now only calculated for atmospheric conditions.
Bug pgasphase needs to be treated as a private variable in openmp.
Output HPx.xml for HP1 is created and is used in HPOutput to create graphs (time series at observation nodes, profiles at selected times). *.plt files are not needed.
Output Options for printing profile data: identifier –profile in RT_OUTPUT to define the number of blank lines between profiles and a Boolean for repeating the headings.
Output Multiple selected_output files can be defined and plotting after transport calculatins.
Calc
Feature Automatic handling of more than 20 output files when NSD > 20 (NSD > 20 only available on user request).
Output Component names are printed in obs_node.out, node_inf.out and solute.out files
Output Nodal solute fluxes and cumulative solute fluxes are printed for each component when lflux = true.
Output Solute in runoff and cumulative solute in runoff, and average GWL concentration for components are added.
HP1 3.00/001
---------
3.00/002 2017-10-12
---------
Phreeqc
Feature identifier –case added to DATABLOCK. Names of labels in a record are not case sensitive.
Feature Improved error messaging when using mybasic as the script language
Bug Printing PHREEQC version
Bug _value_to_string_format with return value
Bug RT_OUTPUT –depths assignment on nodes as a function of depth for HP1.
Calc 3.00/001
HP1
Add logfile.txt
---------
3.00/001 2017-10-05
---------
Set up versioning system with GIT
Integrate HP1 (main, phreeqc, calc) in one MSVS solution