Read and write CompOSE equation-of-state tables.
Project description
ComPyTools is an open source (MIT) Python package for working with equation of state (EoS) tables in the CompOSE ("CompStar Online Supernova Equations of State") format. It provides tools to read, write and analyse CompOSE tables within Python workflows, leveraging astropy for data tables, units and metadata.
ComPyTools allows the user to:
- Read in CompOSE cold or general purpose EoS tables,
- Create interpolated tables from cold or general purpose EoSs via a Python interface to the CompOSE code,
- Produce cold EoS tables in the CompOSE format for those who wish to contribute their own EoS to the CompOSE database.
Quick Example
import tempfile
import matplotlib.pyplot as plt
from compytools import EoS
from compytools.download import CompOSEDownloader
# Download sample data into temporary directory
# for purposes of this example
tmpdir = tempfile.TemporaryDirectory()
downloader = CompOSEDownloader.from_eosname('PCP(BSk22)', tmpdir.name)
downloader.get()
bsk22 = EoS.from_compose(tmpdir.name)
# View the data in tabular form
bsk22.thermo.pprint(max_width=-1)
# View column descriptions
print(bsk22.thermo.info)
nb = bsk22.params.nb.grid_points
pressure = bsk22.thermo['Q1'] * nb
plt.loglog(nb, pressure)
plt.grid()
plt.xlabel(r'$n_{B}$ [fm$^{-3}$]')
plt.ylabel(r'$p$ [MeV fm$^{-3}$]')
plt.show()
Documentation
Full documentation, including installation instructions, a tutorial and an API reference can be found on the ComPyTools web page.
Requirements
ComPyTools requires Python 3.12 along with the following Python packages:
- Astropy: for displaying data in tabular form and to attach metadata and units to the data. We also use physical constants defined within astropy,
- Matplotlib: for plotting EoS data,
- Pandas: for writing out tabulated data into text files,
- Rich: for log output and tabulating metadata information,
- Scipy: for performing numerical integration.
Additional packages are also needed to install and build ComPyTools:
- CompOSE: a set of Fortran routines for computing the interpolated tables. This is included as part of the ComPyTools package,
- cmake and make: for compiling the CompOSE Fortran routines,
- gfortran: compiler for the Fortran routines,
- micromamba: for creating the software environment within which to install ComPyTools.
Installation
For Linux and MacOS, install micromamba (a more optimized, drop-in replacement of conda) with
"${SHELL}" <(curl -L micro.mamba.pm/install.sh)
and create the micromamba environment in order to install the build and compilation tools:
micromamba create -n compytools-env -c conda-forge python=3.12 cmake make gfortran
Activate the environment with
micromamba activate compytools-env
Then, install ComPyTools with pip:
pip install compytools
Further details can be found on the installation instructions.
License
ComPyTools is released under the MIT license.
Acknowledgements
The development of ComPyTools has been partially supported by the French Centre National de la Recherche Scientifique (CNRS) International Research Project (IRP) "Origine des éléments lourds dans l'univers: Astres Compacts et Nucléosynthèse (ACNu)".
We also acknowledge contributions from the CompOSE core development team and members of the LuTH-Caen group within the Virgo collaboration.
Contributing and contact
ComPyTools is a community project. We therefore welcome and appreciate any comments that you may have to improve the tool. Suggestions or bug reports can be communicated to Philip Davis at the following email address: davis@lpccaen.in2p3.fr
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file compytools-0.1.1.tar.gz.
File metadata
- Download URL: compytools-0.1.1.tar.gz
- Upload date:
- Size: 282.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e81fb4def1546502ce2bb156b13e855cf16706c6cdbc88f63498a0bf3388c5a2
|
|
| MD5 |
107963011ebf110833da976d9208c6d3
|
|
| BLAKE2b-256 |
ae27d5c68cdcde3ae603b2d6ca338d12013db615adb81a1c658db356d311fbd3
|