Skip to content

A curated set of C++ examples for optimization-based elastodynamic contact simulation using CUDA, emphasizing algorithmic convergence, penetration-free, and inversion-free conditions. Designed for readability and understanding, this tutorial helps beginners learn how to write simple GPU code for efficient solid simulations.

License

Notifications You must be signed in to change notification settings

phys-sim-book/solid-sim-tutorial-gpu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MUDA-based Solid Simulation Tutorial

This is a tutorial for elastodynamic contact simulation using MUDA (a CUDA programming paradigm).

The basic architecture of the simulators follows @liminchen's Numpy version solid-sim-tutorial.

The tutorial (written by a beginner of simulation) aims at helping beginners learn how to write simple CUDA codes for efficient solid simulations on the GPU. An introductory section for the first example of this tutorial can be found at https://phys-sim-book.github.io/lec4.6-gpu_accel.html.

Usage

  1. Clone the repository
git clone https://github.com/Roushelfy/solid-sim-muda
cd solid-sim-muda
git submodule update --init --recursive
  1. build with cmake
mkdir build
cd build
cmake ..
cmake --build .

Requirements

Eigen3==3.4.0

CMake>=3.29

CUDA>=11.0

Examples

1. Simple Mass-Spring System

Simple Mass-Spring System

2. Dirichlet Boundary Condition

Dirichlet Boundary Condition

3. Contact

Contact

4. Friction

Friction

5. Moving Dirichlet Boundary Condition

Moving Dirichlet Boundary

6. Neohookean Solids

Neohookean Model

7. Neohookean Solids with Self-Contact

Neohookean Model with Self Collision

8. Neohookean Solids with Frictional Self-Contact

Neohookean Model with Self  Friction

About

A curated set of C++ examples for optimization-based elastodynamic contact simulation using CUDA, emphasizing algorithmic convergence, penetration-free, and inversion-free conditions. Designed for readability and understanding, this tutorial helps beginners learn how to write simple GPU code for efficient solid simulations.

Topics

Resources

License

Stars

Watchers

Forks