Skip to main content

Spacetime tent facilities for solving hyperbolic equations

Project description

Spacetime Tents in NGSolve

This NGS-Tents (ngstents) package is a c++ extension of the NGSolve finite element library, designed to ease experimentation with solvers based on spacetime tents for hyperbolic systems. A python front-end allows new equations (linear or nonlinear conservation laws) to be solved by easily defining required fluxes and numerical fluxes in a few lines of code.

Install

Build using pip

On a computer with a build system (compiler etc), you can install NGS-Tents by

python3 -m pip install git+https://github.com/jayggg/ngstents.git

If you do not have the dependency ngsolve installed, this command will attempt to install ngsolve first, before proceeding to install ngstents. If you prefer to use your own existing install of ngsolve, please use the --no-build-isolation argument:

python3 -m pip install --no-build-isolation git+https://github.com/jayggg/ngstents.git

Build using CMake

If you built ngsolve from source, you can also build and install ngstents in the traditional manner. After cloning this repository, compile the c++ code here and install as follows:

cd src
mkdir build && cd build
cmake -DNGSolve_DIR=<Path2YourNGSolveInstallCMake>  ..
make install

(Often CMake is able to correctly detect the path to your NGSolve installation in which case you do not have to specify the NGSolve_DIR variable.)

Binary install

If you do not have a compiler, then you can install NGS-Tents using a binary installer. To do so on linux, mac, and windows (with python>= 3.9), use the following command.

pip install --pre ngstents

Use

To start using this code's python interface, import the module after installation:

import ngstents

It contains classes named Tent and TentSlab used to partition spacetime into tents. It also has a submodule named conslaw which contains specific pre-programmed hyperbolic equations and also facilities to define and solve new hyperbolic systems using the python interface. Use python's help system to query for documentation on each object. The demo folder contains example scripts. The docs folder contains more documentation, explained next.

Documentation

Read the docs online. This documentation is generated from hands-on style tutorial notebooks in the docs folder.

Offline, to build and test the docs locally, navigate to the ngstents/docs folder and run these:

pip install -r requirements.txt
sphinx-build -b html . _build_docs

You can then open the docs from ngstents/docs/_build_docs/INDEX.html.

Alternately, you can build a jupyter book of the documentation by navigating to the ngstents/docs folder and issuing

jupyter-book build .

which creates documentation in ngstents/docs/_build/INDEX.html.

Check

If you extend the code, your new code changes can be cross-checked against a test suite provided in the 'tests' folder. For example, if you have pytest installed, move to the ngstents/tests folder and use pytest:

pytest .

Organization

  • src: c++ source code
  • py: python packaging files
  • doc: tutorials and explanations
  • demo: examples of applications
  • tests: test suite

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

ngstents-0.1.dev444.tar.gz (353.1 kB view details)

Uploaded Source

Built Distributions

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

ngstents-0.1.dev444-cp312-cp312-win_amd64.whl (729.1 kB view details)

Uploaded CPython 3.12Windows x86-64

ngstents-0.1.dev444-cp312-cp312-manylinux_2_28_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

ngstents-0.1.dev444-cp312-cp312-macosx_10_15_universal2.whl (3.1 MB view details)

Uploaded CPython 3.12macOS 10.15+ universal2 (ARM64, x86-64)

ngstents-0.1.dev444-cp311-cp311-win_amd64.whl (728.1 kB view details)

Uploaded CPython 3.11Windows x86-64

ngstents-0.1.dev444-cp311-cp311-manylinux_2_28_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

ngstents-0.1.dev444-cp311-cp311-macosx_10_15_universal2.whl (3.1 MB view details)

Uploaded CPython 3.11macOS 10.15+ universal2 (ARM64, x86-64)

ngstents-0.1.dev444-cp310-cp310-win_amd64.whl (726.5 kB view details)

Uploaded CPython 3.10Windows x86-64

ngstents-0.1.dev444-cp310-cp310-manylinux_2_28_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

ngstents-0.1.dev444-cp310-cp310-macosx_10_15_universal2.whl (3.1 MB view details)

Uploaded CPython 3.10macOS 10.15+ universal2 (ARM64, x86-64)

ngstents-0.1.dev444-cp39-cp39-win_amd64.whl (730.1 kB view details)

Uploaded CPython 3.9Windows x86-64

ngstents-0.1.dev444-cp39-cp39-manylinux_2_28_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

ngstents-0.1.dev444-cp39-cp39-macosx_10_15_universal2.whl (3.1 MB view details)

Uploaded CPython 3.9macOS 10.15+ universal2 (ARM64, x86-64)

File details

Details for the file ngstents-0.1.dev444.tar.gz.

File metadata

  • Download URL: ngstents-0.1.dev444.tar.gz
  • Upload date:
  • Size: 353.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ngstents-0.1.dev444.tar.gz
Algorithm Hash digest
SHA256 4e8675220eda52e7e308448aab3e92762302ca326bda03d2b6128b8026742480
MD5 a6af54fc20caf468e7ce974b07a03703
BLAKE2b-256 36c558c75a189fc184d0f7d2602c4748d9b535c46e18a5c0a8542bf1746fafb3

See more details on using hashes here.

File details

Details for the file ngstents-0.1.dev444-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for ngstents-0.1.dev444-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4906982dc060763f10d85b63e8b0408557b61800d1fa2b5fe7debe500f8b628a
MD5 ac6863a23c444543430972314eb6ce53
BLAKE2b-256 36b44e9ee12324e0bb915d0e83eccd194517fbf2ad6f5d96e44da47c21d93a28

See more details on using hashes here.

File details

Details for the file ngstents-0.1.dev444-cp312-cp312-manylinux_2_28_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ngstents-0.1.dev444-cp312-cp312-manylinux_2_28_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5647551c60a1533e243ff2001d463e811148605257613e6e7d9affcad7dfe85d
MD5 ff8c6cb6488bf3939c7909bb60c263c5
BLAKE2b-256 845af4f4d1c59d7d6136eb6c4461c776dc669f109a5f0784eb8d897e4d997c04

See more details on using hashes here.

File details

Details for the file ngstents-0.1.dev444-cp312-cp312-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for ngstents-0.1.dev444-cp312-cp312-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 707209cdbb6b8d948e154c17b4bd4724b9fd1509fdff27657a3dacfc60a3dfac
MD5 dc91549a01af5aa44649d22de0dbe47f
BLAKE2b-256 068f76de55afbfc98fc307c5fce99c0363736533de711711c1c3d17bf8a7050f

See more details on using hashes here.

File details

Details for the file ngstents-0.1.dev444-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for ngstents-0.1.dev444-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7d61e491cfec331f5f5303bee43951da3aa8c832107c7939ebca2023cf8f4c5f
MD5 6b1328706741cddc60d003163216fb90
BLAKE2b-256 cba38166d78a5a6b092467a0e3d48ca77990147348a73bc43305288bca402df7

See more details on using hashes here.

File details

Details for the file ngstents-0.1.dev444-cp311-cp311-manylinux_2_28_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ngstents-0.1.dev444-cp311-cp311-manylinux_2_28_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ed4f1d047df729675eec2b2ccef4db1ad9ccc23b25a6414af5b98e744d51bcec
MD5 025ab195e0042ee87db2090ff35136f7
BLAKE2b-256 53509a17a312e2bc9de86814c405977527b4e93ee9a0256cd486d6d949c3c482

See more details on using hashes here.

File details

Details for the file ngstents-0.1.dev444-cp311-cp311-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for ngstents-0.1.dev444-cp311-cp311-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 7c80eed828bff3be7b997a7c7c9230409d7dff74cb4b6f1b756dd717daffbb7d
MD5 bb43adb0b609f0134a69853dbeacdc3f
BLAKE2b-256 1bdb765d686619a2d8b43d0d722eb1fc7148a7ed481e796a7cef905c39bb2918

See more details on using hashes here.

File details

Details for the file ngstents-0.1.dev444-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for ngstents-0.1.dev444-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c0c2d687f3d4ec70b82df43e37de22e883822d17439278f3acc2e63da2a6a377
MD5 96e183fc6728b2fbe945298e1de793a3
BLAKE2b-256 ae577bd44c724558604ae7df9b6216d1227c43e043d5853da4c285d4ff4cd90a

See more details on using hashes here.

File details

Details for the file ngstents-0.1.dev444-cp310-cp310-manylinux_2_28_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ngstents-0.1.dev444-cp310-cp310-manylinux_2_28_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7f87eff8700e6c23ba02bb6ca486027324c94803a38d99c43522dc0b209005ea
MD5 76d982d3b8f1c084df4fa3c51b44f921
BLAKE2b-256 5ca0215c8979fcbdfa23e2570d0701c1a1dbfa2a1c929d361afd9e3ea2157dea

See more details on using hashes here.

File details

Details for the file ngstents-0.1.dev444-cp310-cp310-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for ngstents-0.1.dev444-cp310-cp310-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 d009d7885b818597aee7f77faa2dd2a400a32cbf341abd9078c05ef5018037ac
MD5 d76d2970cced8c14309d53157afcad60
BLAKE2b-256 fa79dce5fa1c7e358bfd810eed763928c43af4b9615a300d3245e53999b4e19d

See more details on using hashes here.

File details

Details for the file ngstents-0.1.dev444-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for ngstents-0.1.dev444-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 3a05471e572d79f2108ff5bd4e8672d120acc3e4bfc56d0d71267a6bf390e111
MD5 724f83c647a438e2a200f6cc2099401e
BLAKE2b-256 6e6240efdfe63bebf13d0a71ea0f5733226ed82e5aea87f26184587cccf9247f

See more details on using hashes here.

File details

Details for the file ngstents-0.1.dev444-cp39-cp39-manylinux_2_28_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ngstents-0.1.dev444-cp39-cp39-manylinux_2_28_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 010b777bdfc7267fa260a68f6449da5aace397eb8539d586e2630caa22e6b96d
MD5 f0168290beff5e86f4b2612ce839e91d
BLAKE2b-256 5b9cae7548735bf8652fbc48ac3b558dbd2b6a417f823ba3740e1364c97d3a4b

See more details on using hashes here.

File details

Details for the file ngstents-0.1.dev444-cp39-cp39-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for ngstents-0.1.dev444-cp39-cp39-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 b1f564ca8a0807b1374bf094584b18e1eead25575d3c7512ace5dcef7ca29d80
MD5 710bd424e55ea2a6e2194bd583111f5a
BLAKE2b-256 a9bb33bca286153f451972cdc26c40224eb67fb6baf2c67403210f711689ce5e

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