Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rubenwiersma/gravo_mg_cpp
C++ library for Gravo MG
https://github.com/rubenwiersma/gravo_mg_cpp
Last synced: 20 days ago
JSON representation
C++ library for Gravo MG
- Host: GitHub
- URL: https://github.com/rubenwiersma/gravo_mg_cpp
- Owner: rubenwiersma
- License: mit
- Created: 2023-08-06T06:26:19.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-08-14T21:27:46.000Z (over 1 year ago)
- Last Synced: 2024-11-06T00:06:37.598Z (2 months ago)
- Language: C++
- Size: 40 KB
- Stars: 1
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Gravo MG C++ library
[[Paper]](https://graphics.tudelft.nl/~klaus/papers/Gravo_MG.pdf) [[Project page]](https://rubenwiersma.nl/gravomg)![](https://rubenwiersma.nl/assets/img/publications/gravomg/teaser_gravomg.png)
C++ library implementing Gravo MG. Gravo MG is a Geometric Multigrid Method for solving linear systems on curved surfaces. For more information, check out our [project page](https://rubenwiersma.nl/gravomg).
## Linking in CMake
You can add this library to your project by simply including the files in your folder for dependencies (e.g., by using git submodules or CMake fetch content) and then adding the subdirectory to your CMake file:
```cmake
add_subdirectory(deps/gravomg)
target_link_libraries([project_name] PRIVATE gravomg)
```## Usage
Create the solver and construct a hierarchy:
```cpp
GravoMG::MultigridSolver(positions, neighbors, mass)
solver->buildHierarchy();
```Solve a linear system
```cpp
Eigen::SparseMatrix lhs;
Eigen::MatrixXd rhs, x;
solver->solve(lhs, rhs, x);
```## Citations
Please cite our paper if this code contributes to an academic publication:```bib
@Article{WiersmaNasikun2023GravoMG,
author = {Ruben Wiersma, Ahmad Nasikun, Elmar Eisemann, Klaus Hildebrandt},
journal = {SIGGRAPH 2023},
title = {A Fast Geometric Multigrid Method for Curved Surfaces},
year = {2023},
month = jul,
number = {4},
volume = {41},
doi = {10.1145/3588432.3591502},
publisher = {ACM}
}
```