Skip to main content

Gravo MG: A Fast Geometric Multigrid Method for Curved Surfaces

Project description

Gravo MG Python Bindings

[Paper] [Project page]

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


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 details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

gravomg-0.0.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (203.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

gravomg-0.0.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (203.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

gravomg-0.0.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (203.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

gravomg-0.0.4-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (202.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

gravomg-0.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (203.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

gravomg-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (204.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

gravomg-0.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (203.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

gravomg-0.0.4-cp310-cp310-macosx_13_0_arm64.whl (153.1 kB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

gravomg-0.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (203.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

gravomg-0.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (203.3 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

gravomg-0.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (205.6 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

gravomg-0.0.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (205.6 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

File details

Details for the file gravomg-0.0.4.tar.gz.

File metadata

  • Download URL: gravomg-0.0.4.tar.gz
  • Upload date:
  • Size: 227.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for gravomg-0.0.4.tar.gz
Algorithm Hash digest
SHA256 8154b5ffd93f8228a50c1569c8b74d307f8803dfbea0d08c099a521c40a0e882
MD5 9b6a586f1f531bfb25590f93f61d128d
BLAKE2b-256 ecc2c5057a547b455a706c28082a629fa22752655f9ea718bde9d0a7fa6883ee

See more details on using hashes here.

File details

Details for the file gravomg-0.0.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

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

See more details on using hashes here.

File details

Details for the file gravomg-0.0.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

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

See more details on using hashes here.

File details

Details for the file gravomg-0.0.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

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

See more details on using hashes here.

File details

Details for the file gravomg-0.0.4-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

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

See more details on using hashes here.

File details

Details for the file gravomg-0.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

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

See more details on using hashes here.

File details

Details for the file gravomg-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

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

See more details on using hashes here.

File details

Details for the file gravomg-0.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

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

See more details on using hashes here.

File details

Details for the file gravomg-0.0.4-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for gravomg-0.0.4-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 1fa5c6506cb76f908d2c6cca77facf6de97d9c18ddae28e1a8d1be285863fb50
MD5 9c00e85f4f961e5966a01e59874bbec5
BLAKE2b-256 f6cfece38a031d3fb4b7487180f5c273b8ab343d21fa7da381b092075e614878

See more details on using hashes here.

File details

Details for the file gravomg-0.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

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

See more details on using hashes here.

File details

Details for the file gravomg-0.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

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

See more details on using hashes here.

File details

Details for the file gravomg-0.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

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

See more details on using hashes here.

File details

Details for the file gravomg-0.0.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

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

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page