Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UCLCHEM v3.4.0 #77

Merged
merged 34 commits into from
Oct 14, 2024
Merged

UCLCHEM v3.4.0 #77

merged 34 commits into from
Oct 14, 2024

Conversation

GijsVermarien
Copy link
Member

@GijsVermarien GijsVermarien commented Oct 14, 2024

We release UCLCHEM 3.4.0 with some additions to both user experience, technical improvements and new features:

  • The biggest addition is a new mode where you can run UCLCHEM solely in memory, not requiring you to save and load the csv files that we relied on for long. A tutorial on how to do this, can be found in notebooks/2a_modelling_objects_on_disk.py
  • We implement a new postprocessing mode, similar to what the NEATH paper does (https://fpriestley.github.io/neath/). This also allows for running much more flexible models.
  • We now check whether the user specified branching ratios correctly, this means that if the total for reactions is larger than 1.0, we divide by the total. We also do it for three way split reactions, since often people write 0.33, resulting in 1% not being accounted for.
  • We move to the RATE22 database as the default one, some species are renamed (https://umistdatabase.uk/)
  • The tutorial notebooks have been moved to the notebooks directory and were revised a bit.
  • radfield is now always a column in the output csv files, removing the need for two extra lines at the top of each uclchem csv file.
  • A small chemistry network is added, this runs quickly and can be used for toy problems and code testing.

Small changes:

  • The standard uv yield is now 0.03
  • The magnetic field is now a parameter that can be passed for shock models
  • The analysis scripts work once again in the gas phase, the grains still have some issues (see: Incorrect production and destruction in analysis.py #37)
  • We improved test coverage
  • We now have precommit configured to improve code quality

Marcus-Keil and others added 30 commits January 17, 2023 11:04
Changed some keywords to be more in line with numpy
Added a check to raise errors when io / memory mode a mixed
Fixed a bug caused by running old io and then in memory
* Update the Python requirement (#54)

* Update the Python requirement

The newest type hints make the code incompatible with Python <= 3.8, so adjust the requirement accordingly.

* Also update the requirement in pyproject.

* Add pytest as a requirement

* Add UCLCHEM compiled with UMIST22 as its database

* Add the option to comment UMIST

* Change the reference files to be the ones generated with UMIST22

* Add UMIST22 as the default reaction database

* Move umist12 to a legacy folder
This is a large rewrite that combines the return_array feature with postprocessing to allow for running arbitrary temperature,density (and column density) profiles.

* Update Makefile

* Update main.f90

* Update chemistry.f90

* Update wrap.f90

* Added CLI config files and docs

* Added graceful out of bound checking for return arrays

* Working example of postprocessing code with return array

* Add postprocessing example script

* Fix clean_array and self-consistent makerates

- Fixed clean_array to work with the new more efficient time array allocation
- update makerates to be self-consistent by writing the correct parameters to both f90 and py

* Small fixes to smooth out all tests

- Finally added HSIO as a species
- made the option usecoldens explicit so as not to rely on present statements (they don't work nicely with f2py)
- fixed small startabunds mode error
- restored makefile to work and removed debug
- added error code for running out of array points
- function to retrieve species
- fixed test

* Restored pyproject to use git-versioning

* Move get_f2py_signature to debug.py

* Move analysis.py to use MAX_SPECIES

* Comment out debug line in sputtering

* Remove headers from example files

* Moved ODE conservation to test suite

* Changed the test to more useful in pytest

* Fixed get_odes boundary check

* Fixed path for test_run_stages

* Add paths to loading as well

* Add correct paths

* Removed print statements we no longer need

---------

Co-authored-by: fpriestley <[email protected]>
If reactions were added after the Network class was instanstiated
before, they would get a wrong index and override the internal
reaction dict in the wrong place. Now we take the max + 1 instead
of the last element, which ensure this cannot happen again.
* Remove H2 diss from UMIST and simplify the checks some

* Added a source tag to reactions and improve duplication check

* Add small chemistry network for better unit tests

* Disable NH2+H2CO from our custom reactions in favour of UMIT22

* Add better check for duplicate important reactions
* Fix the timepoints for jshock

* Add writing of radfield and dusttemp to file
* Move timepoints to the models API

Users can now change the number of timepoints in realtime

* Added new notebooks with timepoint support and small fixes

* Update notebooks.yml

* Update workflow and add precommit

* Modernize the nbstripout

* Precommit and format notebooks

* Try another kernel name

* Another attempt at getting the notebooks testing to work

* Fix small things in notebooks

* Update notebooks.yml
@GijsVermarien GijsVermarien changed the title Develop UCLCHEM v3.4.0 Oct 14, 2024
@GijsVermarien GijsVermarien merged commit ddbe587 into main Oct 14, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants