𝕌pdes
𝕌pdes is a general-purpose library for mesh-free PDE simulation and control.
Features
𝕌pdes leverages Radial Basis Functions (RBFs) and JAX to provide the following features:
- User-centric design: no need to re-implement a solver for each new PDE
- Lightning fast mesh-free simulation via Radial Basis Functions
- Robust differentiable simulation via JAX, and portable across CPU, GPU, and TPU
- Support for Dirichlet, Neumann, Robin, and Periodic boundary conditions
- Automatic generation of normals from 2D GMSH meshes
𝕌pdes in incredibly extendable, with additional features added frequently.
Getting started
The package is available on PyPI. You can install it with
pip install updes
The example below illustrates how to solve the Laplace equation with Dirichlet and Neumann boundary conditions:
import updes
import jax.numpy as jnp
facet_types={"South":"n", "West":"d", "North":"d", "East":"d"}
cloud = updes.SquareCloud(Nx=30, Ny=20, facet_types=facet_types)
def my_diff_operator(x, center, rbf, monomial, fields):
return updes.nodal_laplacian(x, center, rbf, monomial)
def my_rhs_operator(x, centers, rbf, fields):
return 0.0
sine = lambda coord: jnp.sin(jnp.pi * coord[0])
zero = lambda coord: 0.0
boundary_conditions = {"South":zero, "West":zero, "North":sine, "East":zero}
sol = updes.pde_solver_jit(diff_operator=my_diff_operator,
rhs_operator=my_rhs_operator,
cloud=cloud,
boundary_conditions=boundary_conditions,
rbf=updes.polyharmonic,
max_degree=1)
cloud.visualize_field(sol.vals, cmap="jet", projection="3d", title="RBF solution")
𝕌pdes can handle much complicated cases with little to no modifications to the code above. Check out further notebooks and scripts in the documentation and the folder demos
!
Dependencies
- Core: JAX - GMSH - Lineax - Matplotlib - Seaborn - Scikit-Learn
- Optional: PyVista - FFMPEG - QuartoDoc
See the pyproject.toml
file the specific versions of the dependencies.
Cite us !
If you use this software, please cite us with the following BibTeX entry:
@inproceedings{nzoyem2023comparison,
title={A comparison of mesh-free differentiable programming and data-driven strategies for optimal control under PDE constraints},
author={Nzoyem Ngueguin, Roussel Desmond and Barton, David AW and Deakin, Tom},
booktitle={Proceedings of the SC'23 Workshops of The International Conference on High Performance Computing, Network, Storage, and Analysis},
pages={21--28},
year={2023}}