A simple implementation of fluid-rigid-body coupling in 2D, using the method of Batty et al. 2007
C++ Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
RigidCoupling
pcgsolver
.gitignore
README.md
array1.h
array2.h
array2_utils.h
box2dgeometry.cpp
box2dgeometry.h
coordframe2d.h
fluidsim.cpp
fluidsim.h
gluvi.cpp
gluvi.h
levelset.cpp
levelset.h
main.cpp
mat.h
openglutils.cpp
openglutils.h
rigidbody.cpp
rigidbody.h
rigidgeometry.h
util.h
vec.h
vector_math.h

README.md

FluidRigidCoupling2D

A simple implementation of fluid-rigid-body coupling in 2D, using the method of Batty et al. 2007

The original paper, "A Fast Variational Framework for Accurate Solid-Fluid Coupling", is here: https://www.cs.ubc.ca/labs/imager/tr/2007/Batty_VariationalFluids/

This version uses face area weights (length in 2D) rather than volume fraction weights (area in 2D), as the former have been shown to be slightly more accurate by Ng et al, due to their connection with finite volume discretizations: http://math.ewha.ac.kr/~chohong/publications/article_12_fluid_solid_coupling.pdf

It includes both the original SPD formulation with dense blocks due to the rigid body, and an alternative sparse symmetric indefinite formulation that you get by reintroducing the rigid body velocities as a variable (briefly discussed in Bridson's book, 2nd Ed.).