Gravo MG: A Fast Geometric Multigrid Method for Curved Surfaces
Project description
Gravo MG Python Bindings
Python binding for Gravo MG. Gravo MG is a Geometric Multigrid Method for solving linear systems on curved surfaces. For more information, check out our project page.
How to use
Given positions of points on a mesh or point clouds and a neighborhood graph (e.g., the edges on a mesh), you can use Gravo MG to solve linear systems as follows:
import mgsolver
V, F = # Mesh with vertices and faces
M = # Mass matrix
S = # Stiffness matrix (Laplacian)
# Create the hierarchy
neigh = gravomg.util.neighbors_from_stiffness(S)
solver = gravomg.MultigridSolver(V, neigh, M)
# Solve a linear system
lhs = # Some left hand side, e.g. M + 0.01 * S, make sure it is in csr format.
rhs = # Some right hand side, e.g. M @ V
solution = solver.solve(lhs, rhs)
Installation
The Gravo MG package is available on pip
pip install gravomg
If you would like to recompile yourself, you can clone this repository
git clone --recurse https://github.com/rubenwiersma/gravo_mg_python.git
And install from the folder
cd gravo_mg_python
pip install ./
Citations
Please cite our paper if this code contributes to an academic publication:
@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}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
gravomg-0.0.4.tar.gz
(227.7 kB
view hashes)
Built Distributions
Close
Hashes for gravomg-0.0.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7cb651d5782f5cc6e589821610b86f64f4b0a51c9b51e05d77185615d2428475 |
|
MD5 | bb712e32fde49eabc12e22637587a88c |
|
BLAKE2b-256 | cc02e36a1671ac57e175d49de59a31eee7ca6da63042899ae9ca8363a3c2d183 |
Close
Hashes for gravomg-0.0.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b0fc08864ba6e04f41e388c8a3b24253e5459527a72dea23801c0350a5d3613 |
|
MD5 | 3b8f8c220ce24ad4925ce0656f47fbf2 |
|
BLAKE2b-256 | 6165391e39b111e6ee2ccbfb98d3677b8b88812567d06ac54ce67665f93be747 |
Close
Hashes for gravomg-0.0.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e0cb0ccb528a77d9d9e3fd70f97aa97010946cf075dbdc7ae7e75385262b53f |
|
MD5 | ed565e8f1e5a73e72d97736805f1e8ad |
|
BLAKE2b-256 | 12219aa84d5ef64a5d64e4843f42bf7ae153c9da7d80982c795b21f1d22695eb |
Close
Hashes for gravomg-0.0.4-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb9dd4f6a52944f260d454e65e4afaa3b9b8718e2497068b912add712fa6e5fb |
|
MD5 | 3f0b1c5c7ccfc003dba2412c93cb51c6 |
|
BLAKE2b-256 | 7bddaf2ef86967ee47f4b58b9097eaae6606618e60b2057c241127aca9762756 |
Close
Hashes for gravomg-0.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b048515b2bac2dce24139a52a7c3ee4f3ab33c8e491516d28dc008db11221024 |
|
MD5 | c0a1e225a965a6c633644d310c0e5c98 |
|
BLAKE2b-256 | 03e61df16b2944c8feb4f496884c36cb36a22deecfc6bc466cdd7d5d5317bc3a |
Close
Hashes for gravomg-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5843b486f3be7fe0ac43ba7a454dc667490659a86c54d64e637107a724283be |
|
MD5 | d2d55af5f8b1582d56a5a30418463f95 |
|
BLAKE2b-256 | 132ca30ddd31b875c4453139190dbd3e0248d82bc98c1a8b8e761a9d72ee162b |
Close
Hashes for gravomg-0.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21f28c49b30b38fce87dd4533347965143a9843cbfe3ccdda6115fc1dd4728dd |
|
MD5 | e91188bbe5e22f37a47e4dd853e21572 |
|
BLAKE2b-256 | 43ca350831d70751b7cad61ef27fa20ec7d7f49ee47d13a0b51cd56dfa9fe08f |
Close
Hashes for gravomg-0.0.4-cp310-cp310-macosx_13_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1fa5c6506cb76f908d2c6cca77facf6de97d9c18ddae28e1a8d1be285863fb50 |
|
MD5 | 9c00e85f4f961e5966a01e59874bbec5 |
|
BLAKE2b-256 | f6cfece38a031d3fb4b7487180f5c273b8ab343d21fa7da381b092075e614878 |
Close
Hashes for gravomg-0.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9143473ed290c1d7722b9a564e6a7ca161f86ed2bf83e249f1ce799ed8adb77f |
|
MD5 | 665135b1ffaf73c6932527a683da1e71 |
|
BLAKE2b-256 | 0e4f415273aaa018a3d7afffd9d509dc474262023c631eaacef57af986d4f437 |
Close
Hashes for gravomg-0.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03afd7cba8278877325c98ea5c0407c449eb2a0920b10726640534ad4f066b57 |
|
MD5 | d102476c5aadee51a0f65c6bb33858b0 |
|
BLAKE2b-256 | d7e9f0bf1a3fd5c166cbc26765a1e9e256a437ee6ce929195da47b064432a31e |
Close
Hashes for gravomg-0.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c9f90c19bacdb48a5c95c883d13ba018c214f9a087e239f903616ce8a258879 |
|
MD5 | b79dce663e011417c7dfffff251a71c0 |
|
BLAKE2b-256 | ccc320a1ea4c273436b5d40ace1f5534fcbdcd1ebe75530b6fdd1a545f8321db |
Close
Hashes for gravomg-0.0.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6052f4a2fe3c58ccd4ef0330bb0b996e34e6bb7369897b339a9ade8a837546e3 |
|
MD5 | c618af8b31ad9381012ed1e70fcac252 |
|
BLAKE2b-256 | 05a1c41afe6a515c350d546e7f55f31e77a0763ffdf4b71ed2e3537ad119f9ee |