Skip to content

zenustech/zpc

Repository files navigation

Zenus Simulation

Zenus Simulation is the codebase zensim maintained by Zenus Tech, which delivers great parallel computing efficiency for physics-based simulations within a shared-memory heterogeneous architecture through a unified programming interface on multiple compute backends.

This repo is going through rapid changes, and we do not promise ABI compatibility from commit to commit for the moment.

Document

See git wiki page for more build details. See Specification for more usage info.

Compilation

This is a cross-platform C++/CUDA cmake project. The minimum version requirement of cmake is 3.18, yet the latest version is generally recommended. Please install cmake through official website or python3-pip, since the cmake version in apt repo is behind.

When CUDA is enabled, the required CUDA version is 11.4+ (for c++17 and latest cuda utilities).

Currently, supported OS are Ubuntu 20.04+ and Windows 10, and tested compilers includes gcc10.0+, clang-11+, vs2019+.

Build

Before building this framework, please first manually configure these external dependencies, i.e. openvdb if ZS_ENABLE_OPENVDB is set to TRUE. Then pull all dependencies by

git submodule init
git submodule update

If CUDA (>=11.4) is installed and required, be sure to set ZS_ENABLE_CUDA=On first.

Configure the project using the CMake Tools extension in Visual Studio Code (recommended), or follow the build instructions in git wiki.

In addition, make sure to install zlib for building partio when building on linux.

sudo apt install zlib1g

Integration

Directly include the codebase as a submodule. Or install this repo then use find_package(zensim). If the installed package is no longer needed, build the uninstall target as with the install target.

Credits

This framework draws inspirations from Taichi, kokkos, raja, MGMPM, GPU LBVH.

Dependencies

The following libraries are adopted and made fully localized in our project development:

For spatial data IO and generation, we use these libraries in addition:

We import these (less-frequently used) libraries as well:

About

zenus parallel computing library for zenus physics-based simulations

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published