Skip to content

Commit

Permalink
Merge branch 'fem_nanogrid' into 'main'
Browse files Browse the repository at this point in the history
Add support for NanoVDB grids in warp.fem

See merge request omniverse/warp!533
  • Loading branch information
mmacklin committed May 31, 2024
2 parents 8a8b744 + 82daf56 commit 86af5b8
Show file tree
Hide file tree
Showing 28 changed files with 1,439 additions and 1,209 deletions.
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,15 @@
- Fix memory leak in mesh BVH ([GH-225](https://github.com/NVIDIA/warp/issues/225))
- Use C++17 with NVCC when building the Warp library and user kernels
- Increase PTX target architecture up to `sm_75` (from `sm_70`), enabling Turing ISA features
- Extended NanoVDB support (see `warp.Volume`):
- Add support for data-agnostic index grids, allocation at voxel granularity
- New `volume_lookup_index`, `volume_sample_index` and generic `volume_sample`/`volume_lookup`/`volume_store` kernel-level functions
- Zero-copy aliasing of in-memory grids, support for multi-grid buffers
- Grid introspection and blind data access capabilities
- warp.fem can now work directly on NanoVDB grids using `warp.fem.Nanogrid`
- Fixed `volume_sample_v` and `volume_store_*` adjoints
- Prevent `volume_store` from overwriting grid background values
- Improve validation of user-provided fields and values in warp.fem

## [1.1.1] - 2024-05-24

Expand Down
9 changes: 6 additions & 3 deletions docs/modules/fem.rst
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Basic workflow

The typical steps for solving a linear PDE are as follow:

- Define a :class:`.Geometry` (grid, mesh, etc). At the moment, 2D and 3D regular grids, triangle, quadrilateral, tetrahedron and hexahedron meshes are supported.
- Define a :class:`.Geometry` (grid, mesh, etc). At the moment, 2D and 3D regular grids, NanoVDB volumes, and triangle, quadrilateral, tetrahedron and hexahedron unstructured meshes are supported.
- Define one or more :class:`.FunctionSpace`, by equipping the geometry elements with shape functions. See :func:`.make_polynomial_space`. At the moment, continuous/discontinuous Lagrange (:math:`P_{k[d]}, Q_{k[d]}`) and Serendipity (:math:`S_k`) shape functions of order :math:`k \leq 3` are supported.
- Define an integration :class:`.GeometryDomain`, for instance the geometry's cells (:class:`.Cells`) or boundary sides (:class:`.BoundarySides`).
- Integrate linear forms to build the system's right-hand-side. Define a test function over the function space using :func:`.make_test`,
Expand Down Expand Up @@ -119,8 +119,8 @@ Introductory examples
- ``example_diffusion.py``: 2D diffusion with homogeneous Neumann and Dirichlet boundary conditions
* ``example_diffusion_3d.py``: 3D variant of the diffusion problem
- ``example_convection_diffusion.py``: 2D convection-diffusion using semi-Lagrangian advection
* ``example_diffusion_dg0.py``: 2D convection-diffusion using finite-volume and upwind transport
* ``example_diffusion_dg.py``: 2D convection-diffusion using Discontinuous Galerkin with upwind transport and Symmetric Interior Penalty
* ``example_convection_diffusion_dg.py``: 2D convection-diffusion using Discontinuous Galerkin with upwind transport and Symmetric Interior Penalty
- ``example_burgers.py``: 2D inviscid Burgers using Discontinuous Galerkin with upwind transport and slope limiter
- ``example_stokes.py``: 2D incompressible Stokes flow using mixed :math:`P_k/P_{k-1}` or :math:`Q_k/P_{(k-1)d}` elements
- ``example_navier_stokes.py``: 2D Navier-Stokes flow using mixed :math:`P_k/P_{k-1}` elements
- ``example_mixed_elasticity.py``: 2D linear elasticity using mixed continuous/discontinuous :math:`S_k/P_{(k-1)d}` elements
Expand Down Expand Up @@ -250,6 +250,9 @@ Geometry
.. autoclass:: Hexmesh
:show-inheritance:

.. autoclass:: Nanogrid
:show-inheritance:

.. autoclass:: LinearGeometryPartition

.. autoclass:: ExplicitGeometryPartition
Expand Down
Loading

0 comments on commit 86af5b8

Please sign in to comment.