Skip to content

Releases: yt-project/libyt

v0.4.0

24 Aug 15:55
8150638

Choose a tag to compare

Bug Fix

  • Fix setting ownership flag when preparing local particle data for other remote processes.
  • Need cstdio header before including readline/readline.h header (Only happens in Fedora 42)

Enhancement

  • Update doc and readme
  • Do code coverage

Security

  • Set permission in GitHub Action workflow.
  • Add security policy SECURITY.md.

v0.3.0

07 Jun 21:11

Choose a tag to compare

Enhancements

  • Support dimensionality 2 and 1. Previously, only dimensionality 3 is supported.

Fix

  • Fix index conversion when dealing with remote memory access and using derived field. (This bug was accidentally introduced when I was refactoring.)
  • GitHub Action drop the support for runner ubuntu-20.04, which we use it to test Python3.7. Change the runner to ubuntu-22.04

v0.2.0

07 Mar 16:52

Choose a tag to compare

Summary

No API changes compared to v0.1.0.

This version refactored the code base to prepare for future development.

Enhancement Details

  • Support using pybind11 to bind simulation object to Python. (-DUSE_PYBIND11=ON/OFF)
  • Refactor the code base to make future development and adding new data structure easier.
  • Do unit testing (googletest) and memory profile (valgrind).
  • Use doxygen to document the code.
  • Use clang-format and cmake-format to format the code.

v0.1.0

29 Aug 21:00

Choose a tag to compare

This is the very first release of libyt!

It is an in situ analysis tool that allows researchers to analyze and visualize data using yt or other Python packages in MPI parallel computing during simulation runtime.

Features

In Situ Analysis

  • Support in situ analysis using Python in MPI parallel computing. It also supports serial computing.
  • Support binding AMR grid structured simulation (like GAMER and Enzo) to yt and do analysis with it. This includes:
    • binding AMR grid hierarchy
    • binding simulation field/particle data
    • binding user-defined C function to Python and enabling back-communication from Python to simulation
  • Generally, it supports all yt functions that does data IO in every process.
  • Easy conversion from post-processing script to inline script. For example, this save a projection plot:
    import yt_libyt                   # import libyt's yt frontend
    import yt                         # import yt
    #yt.enable_parallelism()          # make yt works in parallel computing (require mpi4py)
    
    def yt_inline():
        ds = yt_libyt.libytDataset()  # <--> yt.load("Data")
        proj = yt.ProjectionPlot(ds, "x", ("gas", "density"))
        if yt.is_root():
            proj.save()

Entry Points to Interact with Simulations

  • Support interactive Python prompt and reloading Python script features so that user can use it to interact with the simulation data in the memory using Python without the need to store it on a hard disk first.
  • Support using Jupyter Notebook/JupyterLab to interact with the simulation data in the memory using Python without the need to store it on a hard disk first.

Related Repos

Docs