Skip to content

Differentiable and scalable 3D aerodynamics, (optionally) on the GPU.

License

peterdsharpe/Vortax

Repository files navigation

Vortax 🌬️🌪️🍃

NOTE: this library is currently a heavy work in progress - expect breaking changes. Currently, this repo is in a state that may be of interest to aerodynamics researchers, but it's not yet packaged/versioned/tested with the intent of supporting end-users.

Vortax is a JAX library for boundary-element representations of flowfields for fluid dynamics problems, where kernels may be potential flow singularities or otherwise.

Features:

  • Hardware-accelerated: Leverages JAX to run parts of the solve (e.g., kernel computations, linear- and least-squares solves) on GPUs.
  • Scalable: Uses matrix-free methods and hierarchical spatial decompositions to improve runtime for large problems. (WIP)
  • Differentiable: Differentiable with respect to a) geometry, b) freestream conditions, and c) kernel functions.
  • Mesh-compatible: Takes raw unstructured triangulated surface meshes (e.g., STL files) as input, allowing easy application to complex geometries.

Gallery

Interactive motorbike demo:

Motorbike demo

Octree decomposition for hierarchical acceleration:

Octree decomposition

Installation

For a platform-agnostic source installation, requiring Python 3.10+:

pip install -e .

By default, this will pull the CPU-only version of jax and jaxlib, which is compatible with Linux/MacOS/WSL/Windows. To use a GPU, install jax and jaxlib with GPU support. On Linux/MacOS/WSL, you can do this with pip install -U "jax[cuda12]", assuming you have CUDA 12 installed (nvidia-smi to check).

About

Differentiable and scalable 3D aerodynamics, (optionally) on the GPU.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages