Skip to main content

Read and write CompOSE equation-of-state tables.

Project description

compytools

license astropy coverage

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()

PCP(BSk22) example

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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

compytools-0.1.0.tar.gz (282.6 kB view details)

Uploaded Source

File details

Details for the file compytools-0.1.0.tar.gz.

File metadata

  • Download URL: compytools-0.1.0.tar.gz
  • Upload date:
  • Size: 282.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for compytools-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fd4cc68b15cc419aa9dcb6b9b07bd54b064003c2ae8ddb71da2765435f66b431
MD5 888e517ad1dfcfb324797c52925d41d7
BLAKE2b-256 707c381c19a6ce09430a17cbfb1a898b5877881d57eb5c4fd8a8f5e217fb9fb1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page