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
yt-libyt-v0.1.0
: ayt
frontend forlibyt
.jupyter-libyt-v0.1.0
: a Jupyter provisioner for connecting Jupyter Notebook/JupyterLab tolibyt
kernel.