SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2403.04750 · ICLR · 2024

JAX-SPH: A Differentiable Smoothed Particle Hydrodynamics Framework

Johannes Brandstetter, Artur Toshev, Nikolaus Adams, Gianluca Galletti, Jonas Erbesdobler, Harish Ramachandran

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 29 functions out of this paper's own repositories and ran 24 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

RepositoryRoleRan
tumaer/jax-sph canonical 22 of 27
copy not recorded — 2 of 2
FunctionStatusWhere it lives
CubicKernel Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("3aecdc94485dd82f")
GaussianKernel Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("757f694ba9b864a6")
QuinticKernel Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("e71299cc5c7c2fb3")
RIEMANNEoS Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("67cc9af56d7b9c94")
SuperGaussianKernel Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("59622e5aa0799915")
TaitEoS Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("74064dfd85a06d28")
WendlandC2Kernel Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("e062820f4151fbb6")
WendlandC4Kernel Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("b70e8d6235713117")
WendlandC6Kernel Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("8a614af301f3e846")
acceleration_delta_fn_wrapper Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("620e9860205755e7")
acceleration_riemann_fn_wrapper Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("65cc2dd70d2ede31")
acceleration_standard_fn_wrapper Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("55bcd8c9fb4d8402")
acceleration_tvf_fn_wrapper Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("cf7b6117b3a800a6")
artificial_viscosity_fn_wrapper Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("e9772fcabc94e37e")
gwbc_fn_riemann_wrapper Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("484a4f6373cc90d2")
gwbc_fn_wrapper Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("540f2c455332e62d")
limiter_fn_wrapper Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("3a5977ac868b8646")
rho_evol_fn Ran this paper's copy was not recorded; identical code first harvested from tumaer/jax-sph
pointer only · get_code("b2b87cb713d14139")
rho_evol_fn_delta_wrapper Ran this paper's copy was not recorded; identical code first harvested from tumaer/jax-sph
pointer only · get_code("3f463624d5a53697")
rho_evol_riemann_fn_wrapper Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("180f8202e770c1e6")
rho_summation_fn Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("036ad2dbcd402efe")
temperature_derivative_wrapper Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("e689be2b6dd40cc1")
tvf_stress_fn Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("149e9977a43ee4a3")
wall_phi_vec_wrapper Ran tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("fa2c0e8010787179")
BaseEoS Not yet run tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("88214fd6f47afce8")
BaseKernel Not yet run tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("8d8d56b4ecd17d77")
Tag Not yet run tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("4c1ced7cf05db770")
WCSPH Not yet run tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("754be323a56df590")
rho_renorm_fn Not yet run tumaer/jax-sph/jax_sph/solver.py
code served (permissive licence) · get_code("0e17333b6adfde84")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

Particle-based fluid simulations have emerged as a powerful tool for solving the Navier-Stokes equations, especially in cases that include intricate physics and free surfaces. The recent addition of machine learning methods to the toolbox for solving such problems is pushing the boundary of the quality vs. speed tradeoff of such numerical simulations. In this work, we lead the way to Lagrangian fluid simulators compatible with deep learning frameworks, and propose JAX-SPH -a Smoothed Particle Hydrodynamics (SPH) framework implemented in JAX. JAX-SPH builds on the code for dataset generation from the LagrangeBench project (Toshev et al., 2024b) and extends this code in multiple ways: (a) integration of further key SPH algorithms, (b) restructuring the code toward a Python package, (c) verification of the gradients through the solver, and (d) demonstration of the utility of the gradients for solving inverse problems as well as a Solver-inthe-Loop application. Our code is available at https://github.com/tumaer/jax-sph.

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("2403.04750")
get_code_for_paper("2403.04750")
have("2403.04750")

Connect an agent — have() is free.