llnl / llnl/axom

Port vertex welding code to GPUs via RAJA

Open
#705 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement GPU low priority Quest Reviewed Spin
Dominant language
C++
Stars
196
Forks
34
Avg merge
4d 1h
Merged PRs (30d)
11

Description

The vertex welding code converts a "soup of triangles", e.g. from an STL mesh, into a mesh whose triangles share vertices.

The code currently depends on std library functionality, e.g. hashmaps (`std::unordered_map`) and `std::hash`,
as well as `spin::RectangularLattice` (which is being ported in #677). GPU-ready hashmaps are the subject of #630

https://github.com/LLNL/axom/blob/18f7408e72e2924e71edde1938648cb0a9019c10/src/axom/quest/MeshTester.hpp#L367-L400

This might be helpful for improved robustness in the `SignedDistance` query. See, e.g. #703.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the vertex-welding implementation referenced in src/axom/quest/MeshTester.hpp at lines 367-400. Review the std::unordered_map, std::hash, and spin::RectangularLattice dependencies, along with related work in #677 and #630. Done means the vertex-welding path is portable to GPUs through RAJA and its impact on the SignedDistance query can be evaluated.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics, hpc
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.