UCLCHEM anno 2025
Want to receive updates on UCLCHEM and our modeling efforts? Sign up to our mailing list here and get some free UCLCHEM stickers!
It has been exactly 3 years since the last blog post on UCLCHEM; A lot has happened in UCLCHEM, in the meantime. In short: UCLCHEM has become 99% Python-first, with the legacy fortran interface now fully deprecated. We added support for the new UMIST22 and KIDA24 databases. Makerates was greatly improved to include more checks, and allow the user to more easily build their networks. Additionally, we greatly improved the ability to inspect reaction rates, allowing the user to understand which reactions are contributing the most. Lastly, we had to move to Meson as a build system, allowing us to continue supporting Python 3.12 and beyond.
I want to highlight a few interesting articles that have used UCLCHEM over the past years, showing that our astrochemical modeling (among other astrochemical codes) is essential to interpreting cutting edge ALMA, JWST and other observations.
- Modelling methanol and hydride formation in the JWST Ice Age era
- Neural Network Constraints on the Cosmic-Ray Ionization Rate and Other Physical Conditions in NGC 253 with ALCHEMI Measurements of HCN and HNC
- First detection of the pre-biotic molecule glycolonitrile (HOCH2CN) in the interstellar medium
- CHEMOUT: CHEMical complexity in star-forming regions of the OUTer Galaxy
In addition to these papers, there are currently a handful of papers in final stages of preparation and submission; They illustrate new modeling efforts by our group, connecting modeling and observations, as well as improving the chemical processes included, feedback from physical processes and new types of objects we model.
Entering the penultimate year of my PhD, there are still a lot of improvements that will be introduced, that will cumulate to a UCLCHEM 4.0 paper. This paper will outline the entire UCLCHEM simulation framework, providing insight to each of the mechanisms as they are currently implemented. Additions will include:
- Many checks that help the user to make good modeling assumptions
- Heating and cooling for consistently modeling gas at low and medium densities
- Many technical improvements, some highlights are:
- A consolidated programming interface
- Python only (first) approach, allowing for seamless integration into pipelines, statistical samplers etc
- Interaction with and visualisation of the underlying reaction networks
- Easy inspection of underlying reaction rate (constants) to see which reactions matter most
- Better insight into what the solver (DVODE) is doing
- An improved storage format So stay tuned for this.
As of today we release v3.5.1, this will be the final planned release before v4.0.0.
To highlight everything that was introduced over the past 3 years, you can find a brief AI summary of the releases:
Releases:β
v3.5.1 (July 2025) - Photoreactions on ice, better kinetic modeling and grain-assisted recombination.β
link Improvements to both the ices and the grains:
- π‘ Photons on Grains Enhanced modeling of photoreactions on the grains, very computationally expensive!
- βοΈ Reduced Mass Implementation Improved kinetic modeling of the reduced mass calculations for reaction rate accuracy
- π Grain-Assisted Recombination Introduced to more accurately model the ions + enforce conservation of charge
Primary Contributors:
- @GijsVermarien (Photons on grains, grain-assisted recombination)
- @TobiasDijkhuis (Photons on grains, reduced mass implementation)
v3.5.0 (July 2025) - Meson, Rate Analysis and KIDA 24β
link Major Quality of Life Improvements:
- π§ New Meson Build System: Replaces previous build system to support Python 3.12 and beyond.
- π Enhanced Rate Analysis: Major improvements to rate constants and reaction rates analysis with support for writing to disk and keeping data in memory.
- π KIDA 24 Database: Added as a new chemical reaction database option.
- π¬ UMIST22 Improvements: Now supports extrapolation of rates beyond database range for more consistent rate calculations.
- π Tutorial Update: Notebook 4 completely rewritten to demonstrate new functionality.
- β οΈ Note: Some increased numerical stiffness - users should adjust
abstol
andreltol
parameters.
Primary Contributors:
- @GijsVermarien (Meson build system, overall release coordination)
- @TobiasDijkhuis (Rate analysis improvements - first contribution)
v3.4.1 (June 2025) - Custom Desorption and Resorted Speciesβ
- π§ͺ Custom Desorption Reactions: Users can now specify custom LHDES and ERDES reactions.
- β‘ Performance Boost: Species sorting reverted to phase-first, mass-second for better diagonal band structure and improved performance.
- π§ Makerates Improvements: Automatic desorption generation skipped when custom reactions are specified.
Primary Contributors:
- @GijsVermarien (Makerates improvements and performance optimizations)
v3.4.0 (October 2024) - Major Feature Releaseβ
Major Features:
- πΎ In-Memory Mode: New capability to run UCLCHEM entirely in memory without CSV file dependencies.
- π Postprocessing Mode: Similar to NEATH paper approach, enables more flexible modeling.
- π Branching Ratio Validation: Automatic checking and normalization of branching ratios.
- π UMIST22 Database: Upgraded to RATE22 as default database with species renaming.
- π Tutorial Reorganization: Moved to dedicated notebooks directory with revisions.
- π Always-Present Columns:
radfield
anddustTemp
now always included in output CSV files. - π§ͺ Small Chemistry Network: Added for rapid testing and toy problems.
Technical Improvements:
- π Magnetic Field Parameter: Added as configurable parameter for shock models.
- π Improved Analysis: Gas phase analysis tools restored (grain analysis still has issues).
- π§ͺ UV Yield Update: Standard UV yield changed to 0.03.
- π§ Better Test Coverage and Pre-commit Configuration.
Primary Contributors:
- @GijsVermarien (Lead developer, postprocessing mode, branching ratio checks, UMIST22 migration)
- @Marcus-Keil (Return array improvements)
- @katarzynadutkowska (Magnetic parameter BM0 addition - first contribution)
- @psharda (UI improvements - axes labels and grid - first contribution)
v3.3.3 (November 2023) - Python Requirement Updateβ
- π Python β₯3.9: Updated minimum Python version requirement.
- π§ͺ Pytest Integration: Added as dependency for testing.
Primary Contributors:
- @GijsVermarien (Python version update)
v3.3.2 (October 2023) - Fixes and Performanceβ
- π§ͺ Pytest Fixes: Resolved testing issues.
- π Path Fixes: Improved file path handling.
- β‘ Faster Installation: Optimized pip install process.
Primary Contributors:
- @GijsVermarien (Bug fixes and installation improvements)
v3.3.1 (October 2023) - Makerates Fixesβ
- π§ Makerates Compare Scripts: Fixed comparison functionality.
Primary Contributors:
- @GijsVermarien (Makerates comparison fixes)
v3.3.0 (September 2023) - New Installerβ
- π§ Modern Build System: Moved away from deprecated numpy distutils.
- π¦ Editable Install Required: Now requires
pip install -e .
instead ofpip install .
.
Primary Contributors:
- @GijsVermarien (New installer implementation)
v3.2.1 (April 2023) - Analysis Cleanupβ
- π§Ή Removed Legacy Code: Production and destruction printing removed from analysis (function being reimplemented).
Primary Contributors:
- @GijsVermarien (Analysis code cleanup)
v3.2.0 (March 2023) - Makerates Refactoringβ
Major Architectural Changes:
- π Python Integration: Moved Makerates code into Python source for direct interaction.
- ποΈ Object-Oriented Design: Network, Reaction, and Species classes with getter/setter methods.
- π Better Logging: Replaced print statements with logging module.
- π§ Enhanced Configuration: Ability to specify custom configuration files via path.
- π§ͺ Chemical Consistency: Added reactions for HEH+ and H3+ freezeout to more sensible constituents.
- π Improved Documentation: Better
__repr__
and__str__
methods for manipulation.
Primary Contributors:
- @GijsVermarien (First contribution, complete Makerates refactoring - major architectural overhaul)
v3.1.0 (May 2022) - Excited Species and Bug Fixesβ
- β‘ Excited Species: New treatment for grain surface species excited by cosmic rays.
- π F2PY Fix: Resolved F2PY bug in
analysis.py
. - π§ Stability Improvements: Various bug fixes for more stable operation.
Primary Contributors:
- @rossodonoghue92 (Excited species implementation)
- @jonholdship (Shock model improvements and F2PY fixes)
v3.0.0 (May 2022) - Python-First Revolutionβ
Fundamental Architecture Change:
- π Python-First Design: Complete transition to Python-first approach with pip installation.
- π¦ Unified Physics Modules: All physics modules accessible from single install.
- π Improved Cosmic Ray Treatment: Optional enhanced CRIR following Padovani et al. 2018.
- π₯ Better H2 Dissociation: Improved CR dissociation of H2 following Padovani et al. 2018b.
- β‘ Performance Boost: Up to 50% faster execution times.
- π Comprehensive Documentation: Detailed tutorials, parameter lists, Python API documentation, and science background.
- π§ Simplified Makerates: Much less user input required, automatic file management.
Primary Contributors:
- @jonholdship (Lead architect of Python-first transition, core development)