Skip to main content

Python Reader for Adaptive Mesh Interface Simulations

Project description

Pyramis: Python Reader for Adaptive Mesh Interface Simulations

A python library, to provide essential and efficient framework for management and analysis of the adaptive mesh simulation such as RAMSES.

Installing

Using pip

pip install pyramis

Using development mode

git clone https://github.com/sanhancluster/pyramis
cd pyramis

pip install -e .

Using conda

To create new conda environment specifically for Pyramis,

git clone https://github.com/sanhancluster/pyramis
cd pyramis

conda env create -f environment.yml
conda activate pyramis

python -m pip install -e .

If you want to install in an already existing environment,

git clone https://github.com/sanhancluster/pyramis
cd pyramis

conda activate <my_env_name>
conda env update -f environment.yml

python -m pip install -e .

How to use

Reading the RAMSES raw data

pyramis uses multi-threading (concurrent.futures.ThreadPoolExecutor) by default for reading RAMSES snapshot files. Number of workers will be automatically decided by the available resources when the package is imported.

The particle data

You can read particle data directly from specific region by following commands. Pyramis computes list of cpu domains to read the complete data within the region using Peano-Hilbert space filling curve.

import pyramis as pr
# path to the directory where output_* are located
ramses_path = '/path/to/ramses/'
# targeting box to read in code unit
region = [[0.4, 0.6], [0.4, 0.6], [0.4, 0.6]]

part = pr.ramses.read_part(ramses_path, iout=1, region=region) # reads output_00001

print(f"Total particle mass within the box is {np.sum(part['m'])}") # in code unit

For a particular type of particles, part_type option can be used.

part = pr.ramses.read_part(ramses_path, iout=1, part_type='star')

The cell data

You can read all cells from specific region by following commands.

# path to the directory where output_* are located
ramses_path = '/path/to/ramses/'
# targeting box to read in code unit
region = [[0.4, 0.6], [0.4, 0.6], [0.4, 0.6]]

cell = pr.ramses.read_cell(ramses_path, iout=1, region=region)

print(f"Mean gas density within the box is {np.mean(cell['rho'])}") # in code unit

Reading the RAMSES HDF format data

pyramis uses concurrent.futures.ProcessPoolExecutor by default to enable parallel read from HDF files. This requires main block guard for the top-level script.

The particle and cell data

if __name__ == '__main__':
    # path to the directory where part_*.h5, cell_*.h5 are located
    hdf_path = '/path/to/hdf/'
    # targeting box in code unit
    region = [[0.4, 0.6], [0.4, 0.6], [0.4, 0.6]]

    part = pr.hdf.read_part(hdf_path, part_type='star', iout=1, region=region)
    cell = pr.hdf.read_cell(hdf_path, iout=1, region=region)

Particle type (part_type) need to be always present for reading particle data.

Reading the Dyablo cell data

dyablo_path = '/path/to/dyablo/'

pr.dyablo.read_cell(dyablo_path, istep=0)

Reading the HaloMaker data

DM Halo and Galaxy Catalog

halomaker_path = '/path/to/halos/' # path the directory where tree_bricks* are located

halo = pr.halo_finder.read_halomaker(halomaker_path, iout=1)
galaxy = pr.halo_finder.read_halomaker(galaxymaker_path, iout=1, galaxy=True)

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

pyramis-0.1.21.tar.gz (69.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyramis-0.1.21-py3-none-any.whl (75.0 kB view details)

Uploaded Python 3

File details

Details for the file pyramis-0.1.21.tar.gz.

File metadata

  • Download URL: pyramis-0.1.21.tar.gz
  • Upload date:
  • Size: 69.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for pyramis-0.1.21.tar.gz
Algorithm Hash digest
SHA256 90200caa53887ae575926dbe5cef216605a14789b2511f0ac7a9c18cd781e2f2
MD5 f88fda7f00269f61a461c7e7349d159c
BLAKE2b-256 969d014621669a91806fee74aed4ea3987d7eb5430ffde6f89a63416bde99ea9

See more details on using hashes here.

File details

Details for the file pyramis-0.1.21-py3-none-any.whl.

File metadata

  • Download URL: pyramis-0.1.21-py3-none-any.whl
  • Upload date:
  • Size: 75.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for pyramis-0.1.21-py3-none-any.whl
Algorithm Hash digest
SHA256 8ec0aef6f7378acb7a6a2bc2613e5b4cc427f87dc68aefc1100ffedb7af71ed0
MD5 5f272ea51200fa4c8b09f916a4da1c77
BLAKE2b-256 4a5aefd2a938953988f30e2eb7fb46d1c74159d149ceb5b1e4ebea87505ebb16

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