Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Easy Install and MISC Fix #108

Merged
merged 126 commits into from
May 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
59f7ec3
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Mar 12, 2024
864bc62
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 12, 2024
a75dbbc
Vendoring all dependencies and build example successfully.
cindytsai Apr 4, 2024
5fa4a44
Ignore vendor
cindytsai Apr 4, 2024
b85efda
Fix don't install vendor's target.
cindytsai Apr 4, 2024
7853243
Add comments, and reset redefining install and export.
cindytsai Apr 4, 2024
1a5b932
Can link to shared library dependencies install via cmake after insta…
cindytsai Apr 4, 2024
33d0a70
Move setting rpath to INSTALL_RPATH
cindytsai Apr 5, 2024
c1f9b7b
Add CMakeLIsts.txt for example, and fix the indentation.
cindytsai Apr 5, 2024
15ceebf
Add RPATH if DJUPYTER_KERNEL=ON and use vendoring.
cindytsai Apr 5, 2024
7363140
Accept user pass in dependency dir (find_package) or download from sc…
cindytsai Apr 6, 2024
9e84787
Populate right after checking dependency
cindytsai Apr 6, 2024
b2528f9
Reset disable export.
cindytsai Apr 6, 2024
4ea543b
Accept user provide library when compiling
cindytsai Apr 6, 2024
fa77031
Link based on vendor or provided path to dependency
cindytsai Apr 8, 2024
c789515
Remove
cindytsai Apr 8, 2024
337f987
Can successfully get user provided path and compile.
cindytsai Apr 9, 2024
7f97827
Get ZeroMQ dependency
cindytsai Apr 9, 2024
1be7f0e
Add zeromq to rpath if vendoring
cindytsai Apr 9, 2024
363e450
Don't need to populate, only make sure zeromq exist.
cindytsai Apr 9, 2024
bc9f230
libzmq (ZeroMQ) build shared library at libzmq-build/lib
cindytsai Apr 9, 2024
722e9c1
Single out fetched version, neglecting "v"
cindytsai Apr 9, 2024
3827df1
Find readline library, and link to it.
cindytsai Apr 9, 2024
1c596f5
Fix linking to readline.
cindytsai Apr 10, 2024
15a75fe
Fix ) for formatting
cindytsai Apr 10, 2024
ecbc0da
Remove target_link_directories.
cindytsai Apr 10, 2024
c13cd9a
Do shallow clone.
cindytsai Apr 10, 2024
dfc6105
Print fatal error when cannot find readline.
cindytsai Apr 10, 2024
ae10c39
Move things related to share folder to share/CMakeLists.txt
cindytsai Apr 10, 2024
532e01c
Add comments to cmake.
cindytsai Apr 10, 2024
7395dd9
Rename cmake-build-test.yml to example-test-run.yml
cindytsai Apr 10, 2024
fc51a75
Ignore vendoring ZeroMQ.
cindytsai Apr 11, 2024
f850759
Test, build, and install with different option.
cindytsai Apr 11, 2024
74681ca
Require numpy dependency to build libyt.
cindytsai Apr 11, 2024
a5ed1ce
Make readline get link flag through pkg-config
cindytsai Apr 11, 2024
4c126b6
Check if it is properly linked when installing
cindytsai Apr 11, 2024
ca249e3
If get through system readline library under, don't need -l flag.
cindytsai Apr 12, 2024
5651c63
Add pkg-config search path if READLINE_PATH is provided.
cindytsai Apr 13, 2024
0c1e4e4
Add comments.
cindytsai Apr 13, 2024
caee620
fix assign values for link flag.
cindytsai Apr 13, 2024
ea7406f
Add quick-start.md
cindytsai Apr 14, 2024
da89875
Update doc/Readme.md
cindytsai Apr 14, 2024
afab3c2
Move default value to heading.
cindytsai Apr 14, 2024
143a055
Separate step-by-step cmake instructions and example
cindytsai Apr 14, 2024
605a305
Trying to make dependencies more readable.
cindytsai Apr 14, 2024
5b90aaa
Add pkg-config to prerequisites.
cindytsai Apr 14, 2024
43bc9a9
Fix anchor.
cindytsai Apr 14, 2024
6c49a58
Single out dependency to a table.
cindytsai Apr 15, 2024
5c36703
Change heading and format table spaces.
cindytsai Apr 15, 2024
ec1bc2d
Single out python dependency to a table.
cindytsai Apr 15, 2024
4b5d812
Rearrange section.
cindytsai Apr 15, 2024
bd3044a
Fix typo, and move link to name itself.
cindytsai Apr 15, 2024
aab5920
Add FAQs.
cindytsai Apr 15, 2024
333d82c
Fix python dependency table.
cindytsai Apr 15, 2024
cf091f0
Rearrange section and add quick install.
cindytsai Apr 15, 2024
23eea32
Add Quick install.
cindytsai Apr 15, 2024
33f97a2
Fix Quick Start Section.
cindytsai Apr 15, 2024
9d054b0
Move libyt/example to libyt/example/amr-example, and create example/q…
cindytsai Apr 16, 2024
cb547a1
Update checkout 3 to 4.
cindytsai Apr 16, 2024
ae725bb
update doc.
cindytsai Apr 16, 2024
28d8a6c
Add quick-start demo.
cindytsai Apr 16, 2024
6a911fc
Remove linking through libyt/lib
cindytsai Apr 16, 2024
3aca65e
Also copy inline_script.py to build folder.
cindytsai Apr 16, 2024
5361399
Change left-bar display content order and update quick-start.
cindytsai Apr 17, 2024
2a1d984
Update link and change quick install to install.
cindytsai Apr 17, 2024
c20ff49
Print flag_reload_file name.
cindytsai Apr 18, 2024
b41b2a4
Make quick-start use all entry points api with different flag file name.
cindytsai Apr 18, 2024
0a262ad
Update quick-start doc.
cindytsai Apr 18, 2024
f730769
Update quick-start.md
cindytsai Apr 18, 2024
124a07e
Update quick-start demo. Make sure the prompt will be activated.
cindytsai Apr 18, 2024
7a26de0
Elaborate how-to-install.md
cindytsai Apr 19, 2024
63e0fa8
Fix
cindytsai Apr 19, 2024
e05c2c4
Revisit example doc
cindytsai Apr 19, 2024
9794904
Add unit for reciprocal of density field.
cindytsai Apr 19, 2024
1a72abf
Add result figure.
cindytsai Apr 19, 2024
339368e
Update comments in amr-example python script.
cindytsai Apr 19, 2024
a989fd1
Add results figure.
cindytsai Apr 19, 2024
1b67e6b
Make example calls every Python entry point.
cindytsai Apr 19, 2024
1b141f6
update what user-not-done-yet error message to get.
cindytsai Apr 22, 2024
adb095d
Drop everything after first number occurred.
cindytsai Apr 22, 2024
2afbd1f
Make it as "not-done-yet" is no two newline as ending.
cindytsai Apr 23, 2024
e6a5e8f
Check backslash and colon.
cindytsai Apr 23, 2024
9d1d4d8
Update todos and comments.
cindytsai Apr 25, 2024
c1f7bd0
Follow last commit.
cindytsai Apr 25, 2024
57bf5b2
Find last line ends with \ and # doesn't exist
cindytsai Apr 25, 2024
a377175
Found ':' in last line.
cindytsai Apr 26, 2024
baddb04
change array to vector.
cindytsai Apr 29, 2024
f66dfa4
Separate error msg from bracket and compound keyword.
cindytsai Apr 30, 2024
2047cc4
Update logic for checking not-yet-done error.
cindytsai Apr 30, 2024
7ff8c73
Generate error msg for Py 3.12.
cindytsai Apr 30, 2024
7e5e1cb
Don't use PyErr_ExceptionMatches
cindytsai Apr 30, 2024
20e3355
Fix identifying user not-done-yet error in Python 3.12
cindytsai May 1, 2024
3f44f39
Merge branch 'Fix-NotDoneYetIdentifier' into EasyInstall
cindytsai May 1, 2024
63844f8
Explicitly use macos-14 image, since macos-latest has problem getting…
cindytsai May 1, 2024
cc65de1
Python < 3.11 don't work for macos-latest and macos-14 in github action.
cindytsai May 1, 2024
89d0128
Update quick-start.md
cindytsai May 1, 2024
c7cf96c
Update doc.
cindytsai May 1, 2024
2c72d69
Forgot to remove debug msg.
cindytsai May 1, 2024
1cb2028
Add docs about OMPI_MCA_osc=sm,pt2pt mpirun
cindytsai May 1, 2024
5384f75
Change job name to example-test-run
cindytsai May 1, 2024
fb18a5c
Copy and create yt_getGridInfo_ParticleField without printing error msg.
cindytsai May 2, 2024
a6b0bc1
fix header.
cindytsai May 2, 2024
3ed15bf
Merge branch 'Fix' into EasyInstall
cindytsai May 2, 2024
0daf16d
Merge remote-tracking branch 'yt-project/main' into EasyInstall
cindytsai May 2, 2024
df1713e
Get yt_libyt from PyPI.
cindytsai May 2, 2024
1a4f71c
Add horizontal lines in quick start and example.
cindytsai May 7, 2024
7355a55
Try setup python v5
cindytsai May 7, 2024
9ac3ac3
Try macOS-latest.
cindytsai May 7, 2024
ee242a9
Create FAQs page to collect all the FAQs.
cindytsai May 7, 2024
fd05808
Separate how to install page to how to install and details.
cindytsai May 7, 2024
ba94453
Refactor after moving how-to-install to a folder.
cindytsai May 7, 2024
73719a5
Fix the anchor after splitting details and how-to-install.
cindytsai May 7, 2024
7a8db74
Rename install section to libyt and add admontion
cindytsai May 7, 2024
9a965ba
cont. last commit.
cindytsai May 7, 2024
7b597e3
Single out required versions to a column.
cindytsai May 7, 2024
2577094
Move FAQs to a single page and them link them.
cindytsai May 8, 2024
8722941
Update python dependency notes and admonition.
cindytsai May 8, 2024
f52d3d9
Add minimum required version of Python.
cindytsai May 9, 2024
9a32526
Note --enable-shared if compile Python from source, and add FAQs.
cindytsai May 9, 2024
a15ebc4
Add pip.
cindytsai May 9, 2024
a74453d
format requirements and remove label meanings at home page.
cindytsai May 10, 2024
16b8012
Update content.
cindytsai May 10, 2024
97dee95
use runner image macos-12, it supports python3.7~3.12.
cindytsai May 10, 2024
eb27c96
set velocity_unit in yt_param_yt.
cindytsai May 19, 2024
848eeac
Remove uint, ulong typedef.
cindytsai May 30, 2024
a8c45c7
typo
cindytsai May 31, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 1 addition & 8 deletions .github/tests/test-DataIO/DataIOTest.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def yt_inline_ProjectionPlot( fields ):
# Do yt operation
prjz = yt.ProjectionPlot(ds, 'z', fields)

# Include this line, otherwise yt will save one copy in each rank.
# Save figure only on root process
if yt.is_root():
prjz.save()

Expand All @@ -37,13 +37,6 @@ def yt_inline_ProfilePlot():

def yt_inline_ParticlePlot():
ds = yt_libyt.libytDataset()

## ParticleProjectionPlot
#==========================
# par = yt.ParticleProjectionPlot(ds, "z")

## ParticlePlot
#==========================
par = yt.ParticlePlot(ds, "particle_position_x", "particle_position_y", "Level", center = 'c')

if yt.is_root():
Expand Down
78 changes: 36 additions & 42 deletions .github/workflows/cmake-build-test.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Test if it can run on multiplatform and both in serial (gcc) and parallel (openmpi)
# Test if libyt can build with different options, download dependencies, and install and link correctly.

name: CMake Build Test

Expand All @@ -24,80 +24,74 @@ jobs:
platform:
- os: ubuntu-latest
mpi: 'openmpi'
- os: macos-latest
check_shared_lib: ldd lib/libyt.so
- os: macos-12
mpi: 'mpich'
check_shared_lib: otool -l lib/libyt.dylib
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']

steps:
- name: Checkout libyt repo
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: CMake Version
run: cmake --version

- name: Setup Python ${{ matrix.python-version }} environment
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: 'x64'
cache: 'pip'
- run: |
python -m pip install --upgrade pip
pip install -r ${{ github.workspace }}/.github/tools/requirements.txt
pip install numpy

- name: Setup MPI environment
uses: mpi4py/setup-mpi@v1
with:
mpi: ${{ matrix.platform.mpi }}

- name: Install yt, mpi4py, and yt_libyt
run: |
pip install mpi4py yt
pip install yt-libyt

- name: Update GitHub Environment Variables
run: |
echo "LIBYT_PARALLEL_INSTALL_PATH=${{ github.workspace }}/libyt_parallel" >> $GITHUB_ENV
echo "LIBYT_SERIAL_INSTALL_PATH=${{ github.workspace }}/libyt_serial" >> $GITHUB_ENV
echo "LIBYT_TEST_INSTALL_FOLDER=${{ github.workspace }}/libyt_installation" >> $GITHUB_ENV

- name: Build libyt -- Parallel (MPI)
- name: Test Option -DSERIAL_MODE=ON
run: |
cd ${{ github.workspace }}
rm -rf build
cmake -B build -S .
cmake -B build -S . -DSERIAL_MODE=ON
cmake --build build
cmake --install build --prefix "${{ env.LIBYT_PARALLEL_INSTALL_PATH }}"
cmake --install build --prefix "${{ env.LIBYT_TEST_INSTALL_FOLDER }}/libyt-serial-on"
cd "${{ env.LIBYT_TEST_INSTALL_FOLDER }}/libyt-serial-on"
${{ matrix.platform.check_shared_lib }}

- name: Build libyt -- Serial (GCC)
- name: Test Option -DINTERACTIVE_MODE=ON
run: |
cd ${{ github.workspace }}
rm -rf build-serial
cmake -B build-serial -S . -DSERIAL_MODE=ON
cmake --build build-serial
cmake --install build-serial --prefix "${{ env.LIBYT_SERIAL_INSTALL_PATH }}"

- name: Prepare Test
run: |
cd ${{ github.workspace }}/example
cp ${{ github.workspace }}/.github/tests/test-DataIO/DataIOTest.py .

- name: Generate Density Data for Testing
run: |
cd ${{ github.workspace }}/example
cp ${{ github.workspace }}/.github/tools/generate_density_data.cpp .
g++ -o generate_density_data generate_density_data.cpp
./generate_density_data
rm -rf build
cmake -B build -S . -DINTERACTIVE_MODE=ON
cmake --build build
cmake --install build --prefix "${{ env.LIBYT_TEST_INSTALL_FOLDER }}/libyt-interactive-on"
cd "${{ env.LIBYT_TEST_INSTALL_FOLDER }}/libyt-interactive-on"
${{ matrix.platform.check_shared_lib }}

- name: Test Run and DataIO Test - example - Serial
- name: Test Option -DJUPYTER_KERNEL=ON
run: |
cd ${{ github.workspace }}/example
make clean
make OPTIONS=-DSERIAL_MODE LIBYT_PATH="${{ env.LIBYT_SERIAL_INSTALL_PATH }}"
./example DataIOTest.py
cd ${{ github.workspace }}
rm -rf build
cmake -B build -S . -DJUPYTER_KERNEL=ON
cmake --build build
cmake --install build --prefix "${{ env.LIBYT_TEST_INSTALL_FOLDER }}/libyt-jupyter-on"
cd "${{ env.LIBYT_TEST_INSTALL_FOLDER }}/libyt-jupyter-on"
${{ matrix.platform.check_shared_lib }}

- name: Test Run and DataIO Test - example - Parallel (MPI 3)
- name: Test Option -DSUPPORT_TIMER=ON
run: |
cd ${{ github.workspace }}/example
make clean
make LIBYT_PATH="${{ env.LIBYT_PARALLEL_INSTALL_PATH }}"
OMPI_MCA_osc=sm,pt2pt mpirun -np 3 ./example DataIOTest.py
cd ${{ github.workspace }}
rm -rf build
cmake -B build -S . -DSUPPORT_TIMER=ON
cmake --build build
cmake --install build --prefix "${{ env.LIBYT_TEST_INSTALL_FOLDER }}/libyt-timer-on"
cd "${{ env.LIBYT_TEST_INSTALL_FOLDER }}/libyt-timer-on"
${{ matrix.platform.check_shared_lib }}
102 changes: 102 additions & 0 deletions .github/workflows/example-test-run.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# Test if example can run on multiplatform and both in serial (gcc) and parallel (openmpi)

name: Example Test Run

on:
push:
branches: [ main ]
paths-ignore:
- 'doc/**'
- '**.md'
pull_request:
branches: [ main ]
paths-ignore:
- 'doc/**'
- '**.md'
workflow_dispatch:

jobs:
example-test-run:
runs-on: ${{ matrix.platform.os }}
strategy:
fail-fast: false
matrix:
platform:
- os: ubuntu-latest
mpi: 'openmpi'
- os: macos-12
mpi: 'mpich'
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']

steps:
- name: Checkout libyt repo
uses: actions/checkout@v4

- name: CMake Version
run: cmake --version

- name: Setup Python ${{ matrix.python-version }} environment
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: 'x64'
cache: 'pip'
- run: |
python -m pip install --upgrade pip
pip install -r ${{ github.workspace }}/.github/tools/requirements.txt

- name: Setup MPI environment
uses: mpi4py/setup-mpi@v1
with:
mpi: ${{ matrix.platform.mpi }}

- name: Install yt, mpi4py, and yt_libyt
run: |
pip install mpi4py yt yt_libyt

- name: Update GitHub Environment Variables
run: |
echo "LIBYT_PARALLEL_INSTALL_PATH=${{ github.workspace }}/libyt_parallel" >> $GITHUB_ENV
echo "LIBYT_SERIAL_INSTALL_PATH=${{ github.workspace }}/libyt_serial" >> $GITHUB_ENV

- name: Build libyt -- Parallel (MPI)
run: |
cd ${{ github.workspace }}
rm -rf build
cmake -B build -S . -DINTERACTIVE_MODE=ON -DJUPYTER_KERNEL=ON
cmake --build build
cmake --install build --prefix "${{ env.LIBYT_PARALLEL_INSTALL_PATH }}"

- name: Build libyt -- Serial (GCC)
run: |
cd ${{ github.workspace }}
rm -rf build-serial
cmake -B build-serial -S . -DSERIAL_MODE=ON -DINTERACTIVE_MODE=ON -DJUPYTER_KERNEL=ON
cmake --build build-serial
cmake --install build-serial --prefix "${{ env.LIBYT_SERIAL_INSTALL_PATH }}"

- name: Prepare Test
run: |
cd ${{ github.workspace }}/example/amr-example
cp ${{ github.workspace }}/.github/tests/test-DataIO/DataIOTest.py .

- name: Generate Density Data for Testing
run: |
cd ${{ github.workspace }}/example/amr-example
cp ${{ github.workspace }}/.github/tools/generate_density_data.cpp .
g++ -o generate_density_data generate_density_data.cpp
./generate_density_data

- name: Test Run and DataIO Test - example - Serial
run: |
cd ${{ github.workspace }}/example/amr-example
make clean
make OPTIONS=-DSERIAL_MODE LIBYT_PATH="${{ env.LIBYT_SERIAL_INSTALL_PATH }}"
./example DataIOTest.py

- name: Test Run and DataIO Test - example - Parallel (MPI Size 3)
run: |
cd ${{ github.workspace }}/example/amr-example
make clean
make LIBYT_PATH="${{ env.LIBYT_PARALLEL_INSTALL_PATH }}"
OMPI_MCA_osc=sm,pt2pt mpirun -np 3 ./example DataIOTest.py
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,11 @@
*.pyc
libyt.so
libyt.so.*
doc/_site
doc/_site
doc/_build/
vendor/cppzmq/
vendor/nlohmann_json/
vendor/xeus/
vendor/xeus-zmq/
vendor/xtl/
vendor/libzmq/
35 changes: 12 additions & 23 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,14 @@ option(JUPYTER_KERNEL "Use Jupyter notebook interface"
option(SUPPORT_TIMER "Support time profiling" OFF)

## set paths ##
# It is recommended that we always provide PYTHON_PATH and MPI_PATH.
# libyt will also try to find the package if the paths weren't provided.
set(PYTHON_PATH "" CACHE PATH "Path to Python installation prefix (Always)")
set(MPI_PATH "" CACHE PATH "Path to MPI installation prefix (-DSERIAL_MODE=OFF)")
set(READLINE_PATH "" CACHE PATH "Path to Readline installation prefix (-DINTERACTIVE_MODE=ON)")

## set paths (optional) ##
# libyt will get the dependencies if it cannot find one when needed.
set(nlohmann_json_DIR "" CACHE PATH "Path to nlohmann_jsonConfig.cmake (-DJUPYTER_KERNEL=ON)")
set(cppzmq_DIR "" CACHE PATH "Path to cppzmqConfig.cmake (-DJUPYTER_KERNEL=ON)")
set(xtl_DIR "" CACHE PATH "Path to xtlConfig.cmake (-DJUPYTER_KERNEL=ON)")
Expand All @@ -26,35 +31,19 @@ set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

## build static/shared library ##
option(BUILD_SHARED_LIBS "Building using shared libraries" ON )
option(BUILD_SHARED_LIBS "Building using shared libraries" ON )

## find dependencies ##
set(Python_ROOT_DIR ${PYTHON_PATH})
find_package(Python 3.7 COMPONENTS Development NumPy REQUIRED)

if (NOT SERIAL_MODE)
set(MPI_HOME ${MPI_PATH})
find_package(MPI REQUIRED)
endif ()

if (JUPYTER_KERNEL)
find_package(xeus-zmq 1.0 REQUIRED)
endif ()

set(Python_ROOT_DIR ${PYTHON_PATH})
find_package(Python COMPONENTS Development NumPy REQUIRED)

## config files ##
if (JUPYTER_KERNEL)
set(LIBYT_KERNELSPEC_RELATIVE_PATH "share/jupyter/kernels/libyt_kernel")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${LIBYT_KERNELSPEC_RELATIVE_PATH}/kernel.json
./${LIBYT_KERNELSPEC_RELATIVE_PATH}/kernel.json COPYONLY)
endif ()

## sub directory ##
add_subdirectory(vendor) # for vendoring
add_subdirectory(src) # for library
#add_subdirectory(example) # for example exe

###### INSTALLATION RULE ###############################################################################################
if (JUPYTER_KERNEL)
include(GNUInstallDirs)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${LIBYT_KERNELSPEC_RELATIVE_PATH}/kernel.json
DESTINATION "${LIBYT_KERNELSPEC_RELATIVE_PATH}")
endif ()
add_subdirectory(share) # for share
add_subdirectory(example) # for example exe
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# libyt
[![CMake Build Test](https://github.com/yt-project/libyt/actions/workflows/cmake-build-test.yml/badge.svg)](https://github.com/yt-project/libyt/actions/workflows/cmake-build-test.yml)
[![CMake Build Test](https://github.com/yt-project/libyt/actions/workflows/cmake-build-test.yml/badge.svg?branch=main)](https://github.com/yt-project/libyt/actions/workflows/cmake-build-test.yml)
[![Example Test Run](https://github.com/yt-project/libyt/actions/workflows/example-test-run.yml/badge.svg?branch=main)](https://github.com/yt-project/libyt/actions/workflows/example-test-run.yml)
[![Documentation Status](https://readthedocs.org/projects/libyt/badge/?version=latest)](https://libyt.readthedocs.io/en/latest/?badge=latest)

`libyt` is an open source C library for simulation, that allows researchers to analyze and visualize data using [`yt`](https://yt-project.org/) or other Python packages in parallel during simulation runtime. In this way, we can skip the step of writing data to local disk before doing analysis using Python. This greatly reduce the disk usage, and increase the temporal resolution.
Expand Down
Loading
Loading