TL;DR
WaterLily.jl is a versatile, differentiable Julia-based CFD solver that efficiently handles complex geometries and motions, supporting multi-platform execution and enabling advanced integration with machine learning workflows.
Contribution
The paper introduces WaterLily.jl, a novel, open-source, differentiable CFD solver in Julia supporting multi-platform backends and complex geometries, with significant performance improvements.
Findings
Supports GPU acceleration with up to 100x speed-up
Fully differentiable using automatic differentiation
Comparable performance to low-level CFD codes
Abstract
Integrating computational fluid dynamics (CFD) solvers into optimization and machine-learning frameworks is hampered by the rigidity of classic computational languages and the slow performance of more flexible high-level languages. In this work, we introduce WaterLily.jl: an open-source incompressible viscous flow solver written in the Julia language. An immersed boundary method is used to enforce the effect of solid boundaries on flow past complex geometries with arbitrary motions. The small code base is multidimensional, multiplatform and backend-agnostic, ie. it supports serial and multithreaded CPU execution, and GPUs of different vendors. Additionally, the pure-Julia implementation allows the solver to be fully differentiable using automatic differentiation. The computational cost per time step and grid point remains constant with increasing grid size on CPU backends, and we…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
