ThermoCodegen
ThermoCodegen: a python/C++ package for the generation of custom thermodynamic models - Published in JOSS (2023)
Science Score: 89.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 1 DOI reference(s) in JOSS metadata -
○Academic publication links
-
✓Committers with academic emails
10 of 13 committers (76.9%) from academic institutions -
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Scientific Fields
Mathematics
Computer Science -
92% confidence
Economics
Social Sciences -
85% confidence
Engineering
Computer Science -
60% confidence
Last synced: 4 months ago
·
JSON representation
Repository
ThermoCodegen: a python/C++ package for the generation of custom thermodynamic models
Basic Info
- Host: gitlab.com
- Owner: ENKI-portal
- License: mit
- Default Branch: main
Statistics
- Stars: 1
- Forks: 2
- Open Issues: 4
- Releases: 0
Created over 3 years ago
https://gitlab.com/ENKI-portal/ThermoCodegen/blob/main/
# ThermoCodegen ThermoCodegen is part of the larger [ENKI](http://enki-portal.org/) project for Thermodynamic modeling It is designed to provide reproducible, code-generation tools for developing and exploring custom thermodynamic models and reaction kinetics libraries for use in a wide range of applications. At its heart, ThermoCodegen, shares the same code-generation module `coder.py` from [ThermoEngine](https://gitlab.com/ENKI-portal/ThermoEngine) that generates high-performance C code from sympy expressions for the Gibbs Free Energy of custom endmembers and phases. Currently ThermoCodegen supports most models supported by ThermoEngine. ThermoCodegen also adds the following features * Model generation is described in Jupyter notebooks, but stored in structured xml files that contain all the information required to describe and auto-generate code for thermodynamic databases of endmembers and phases. * ThermoCodegen also allows code generation of custom kinetic reaction models built on the phase databases. * Generates C++ libraries for inclusion in other modeling systems such as [TerraFERMA](https://terraferma.github.io) or [ASPECT](https://aspect.geodynamics.org) * Generates python bindings of the C++ classes for direct import into python applications * These python modules can also be dropped back into ThermoEngine as a custom database for use in equilibration or calibration calculations (requires a separate branch of ThermoEngine) ## Documentation Extensive documentation for ThermoCodegen is available through [gitlab.io/ThermoCodegen](https://enki-portal.gitlab.io/ThermoCodegen) including multiple examples and workflows. Here we provide a minimal description to get started. ## Quickstart: docker or singularity containers The easiest way to get started with ThermoCodegen is to install docker, or singularity and install one of our pre-compiled containers which also includes a full implementation of TerraFERMA v2.0. To run properly you should allow X11 access to the container. For linux machines, we suggest using the Singularity container as it is self-contained and handles the X11 dependencies and local directories transparently. Full documentation and pointers to the most recent containers can be found at [ThermoCodegen/quickstart.html](https://enki-portal.gitlab.io/ThermoCodegen/quickstart.html) ## Dependencies and Installation Dependencies and installation directions for native MacOS and linux (Ubuntu 20.04) can be found at [ThermoCodegen/install.html](https://enki-portal.gitlab.io/ThermoCodegen/install.html) ### Docker/Singularity really...just use the containers...it's much easier (and you get TerraFERMA v.2 for free ;^)
JOSS Publication
ThermoCodegen: a python/C++ package for the generation of custom thermodynamic models
Published
June 30, 2023
Volume 8, Issue 86, Page 4874
Authors
Marc Spiegelman
Dept. of Applied Physics and Applied Math, Columbia University, Dept. of Earth and Environmental Science, Columbia University
Dept. of Applied Physics and Applied Math, Columbia University, Dept. of Earth and Environmental Science, Columbia University
Owen Evans
Dept. of Applied Physics and Applied Math, Columbia University, Now at Google
Dept. of Applied Physics and Applied Math, Columbia University, Now at Google
Tags
Python/C++ computational thermodynamics geodynamics geochemistryCommitters
Last synced: 4 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Marc Spiegelman | m****g@l****u | 619 |
| Owen Evans | o****4@g****m | 119 |
| Owen Evans | o****0@c****u | 50 |
| Owen Evans | o****s@O****l | 50 |
| Cian Wilson | c****n@c****u | 31 |
| Owen Evans | o****s@d****u | 6 |
| Owen Evans | o****s@d****u | 5 |
| Owen Evans | o****s@d****u | 4 |
| Owen Evans | o****s@d****u | 3 |
| Owen Evans | o****s@d****u | 3 |
| Owen Evans | o****s@O****1 | 2 |
| Owen Evans | o****s@d****u | 1 |
| Owen Evans | o****s@d****u | 1 |
Committer Domains (Top 20 + Academic)
dyn-209-2-216-85.dyn.columbia.edu: 1
dhcp-12-243.ldeo.columbia.edu: 1
owens-mbp.lan1: 1
dyn-160-39-213-133.dyn.columbia.edu: 1
dhcp-12-113.ldeo.columbia.edu: 1
dhcp-13-226.ldeo.columbia.edu: 1
dhcp-13-89.ldeo.columbia.edu: 1
dhcp-13-84.ldeo.columbia.edu: 1
carnegiescience.edu: 1
columbia.edu: 1
ldeo.columbia.edu: 1
Issues and Pull Requests
Last synced: 4 months ago
Dependencies
ThermoEngine/Documentation/requirements.txt
pypi
- Cython >=0.29.15
- deprecation >=2.0.6
- ipykernel *
- nbsphinx *
- numdifftools >=0.9.20
- numpy >=1.18.1
- numpydoc *
- openpyxl >=3.0.3
- pandas >=1.0.2
- pytest >=5.3.5
- recommonmark *
- scipy >=1.3.1
- sphinx >=1.6.5
- statsmodels >=0.11.1
- sympy >=1.5.1
ThermoEngine/thermoengine/environment.yml
pypi
- cmake >=3.14.0
- deprecation *
- earthchem *
- elasticsearch *
- elasticsearch_dsl *
- nbval *
- numdifftools *
- pytest-cov *
- rubicon_objc ==0.2.10
- sulfliq ==1.0.0
ThermoEngine/thermoengine/requirements.txt
pypi
- Cython >=0.29.15
- SulfLiq >=1.0.0
- cmake >=3.14.0
- deprecation >=2.0.6
- elasticsearch *
- elasticsearch-dsl *
- numdifftools >=0.9.20
- numpy >=1.21.2
- openpyxl >=3.0.3
- pandas >=1.0.2
- pytest >=5.3.5
- rubicon_objc ==0.2.10
- rubicon_objc >=0.4.2
- scipy >=1.7.1
- statsmodels >=0.11.1
- sympy >=1.7.1
ThermoEngine/thermoengine/setup.py
pypi
- SulfLiq *
- cmake >=3.14.0
- coverage *
- cython *
- deprecation *
- elasticsearch *
- elasticsearch-dsl *
- ipykernel *
- jupyter *
- jupyterlab *
- matplotlib *
- nbval *
- numdifftools *
- numpy >=1.21.2
- openpyxl *
- pandas *
- pytest *
- pytest-cov *
- scipy *
- seaborn *
- statsmodels *
- sympy *
docs/requirements.txt
pypi
- breathe *
- cmake *
- lxml *
- pandas *
- pybind11 *
- sphinx-argparse *