Skip to content

Implement explicit 2-D and 3-D weakly compressible MPM fluid solvers #168

Description

@utilForever

Blocked by #166 and #167.

Goal

Assemble the EOS model and fluid transfer state into explicit CPU MPMFluidSolver2 and MPMFluidSolver3 implementations.

Scope

  • Initialize particle reference volumes and density state.
  • Accumulate pressure, gravity, and other external forces on active grid nodes.
  • Advance nodal velocities with explicit integration.
  • Transfer velocities back and update particle positions and volumes.
  • Select stable substeps from grid spacing, velocity, and the configured speed of sound.
  • Provide emitters and builders consistent with existing CubbyFlow solver APIs.

Acceptance criteria

  • Empty updates are safe in both dimensions.
  • With zero pressure and external forces, uniform particle motion is preserved within numerical tolerance.
  • Gravity produces the expected total momentum change.
  • Compressed particles accelerate away from the compressed region.
  • Focused 2-D and 3-D unit tests pass without non-finite state.
  • CPU-only builds remain independent of CUDA.

References

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions