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.dev442.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.dev442-cp312-cp312-win_amd64.whl (729.1 kB view details)

Uploaded CPython 3.12Windows x86-64

ngstents-0.1.dev442-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.dev442-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.dev442-cp311-cp311-win_amd64.whl (728.1 kB view details)

Uploaded CPython 3.11Windows x86-64

ngstents-0.1.dev442-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.dev442-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.dev442-cp310-cp310-win_amd64.whl (726.5 kB view details)

Uploaded CPython 3.10Windows x86-64

ngstents-0.1.dev442-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.dev442-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.dev442-cp39-cp39-win_amd64.whl (730.1 kB view details)

Uploaded CPython 3.9Windows x86-64

ngstents-0.1.dev442-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.dev442-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.dev442.tar.gz.

File metadata

  • Download URL: ngstents-0.1.dev442.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.dev442.tar.gz
Algorithm Hash digest
SHA256 cff88609c00c4a31294a5391f10f41060305998a1bc78bb2de0db9c513fbd23c
MD5 bab99417d8dc8c0f08542cc0502758ed
BLAKE2b-256 362370e75631c760e5d1609dc0982aa384d2a7c1049420228a73424eab03f70a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev442-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 95ee893e75a0b975643d07d57e3f531d5946e16d2e897ad8d4e3e8f1cdc4d1d5
MD5 831730713960d641a648cb75d9ba9bae
BLAKE2b-256 1009b1e59e9ee01a189ab536f072c122f1731d36833ce0bd1b68faa8e1b9447b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev442-cp312-cp312-manylinux_2_28_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a8de905f3c815080e9e169821b66d6b27059877e42de63a11f672f00ff3b9960
MD5 e53a66dffe7ad9f017fa32e30387ce7c
BLAKE2b-256 a75c3b030e5dd84169dfa43fb19c23929963f883063ca1a71bf4aafbaef0d8b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev442-cp312-cp312-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 faf083d7efcc5dffc56f630ffb5d95872d3e099bb276f74a3d24c483b0957bdb
MD5 e17b6e586349ecc0b52c670f05bc9e39
BLAKE2b-256 b34bc765d4c5887bfddda106bbbd0978b6b6e3d6e697c8720714c4d5d29ef8d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev442-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 12fb8bb94ebd99731f40420ffc6def95710cd5c4f3b77a14952b3f202b1ead21
MD5 5cdf83e05fdf27a4a379029ad87f9aa3
BLAKE2b-256 f19457382bb1cde2247e6952949f9dc0314bb4fd485aae4ce905314319d46bd7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev442-cp311-cp311-manylinux_2_28_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6288eb307aba25f82a29c5da96e80f86a7db63c00c265db8278240b0674ed300
MD5 9246e7b8facfff6104b07a1cbadfe689
BLAKE2b-256 a375fe97bf974318f9697fe96d379a07ce10d19a17a5ad88462284192492fb8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev442-cp311-cp311-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 32707958b794f82312b14533c45339aaafd060511c083e107905580bf5fb65dd
MD5 4ac47f2545805fd46104723b92b18c53
BLAKE2b-256 5323b5ac092e5ffd773bf90a923410875b8ab9fa9f71b196e40b489022cd62ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev442-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7fad19a6fde61cb7a7860eea9eda479f3390db1d907a8fb9c3a0ba6794566ddf
MD5 f30805334338abcdf7df5d5bbd797e06
BLAKE2b-256 734e620e4f12b54b7769ec26958e0a8d3825bb872385d8cf4604b211d6317beb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev442-cp310-cp310-manylinux_2_28_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 611ae2eb294422e611bbf025486f804f1b6898aabbb23e4cab472bb668975320
MD5 a8da4c4230bcdd6e81239ae36232d336
BLAKE2b-256 fee7392b07b6985ef1a436211681a8e35f1988ced57e563ee8f2f125fe3acf00

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev442-cp310-cp310-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 9343236c70732278ff4c563d2e9345280e1df43c09c9443dd1504af996e5a6da
MD5 e737ba8e80d1006be2774b43b0040b43
BLAKE2b-256 b5b9b627286dd33ac71d27d75f1644a6e658af7afea176bf9ab4b858ce4bea8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev442-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 466e8d11e508d3be5335920022d42b4409e4b853f57f2b8ececeb8da8819bbea
MD5 5a3221c53a730f3f8d249b9778a4331f
BLAKE2b-256 08a54959393d653ec7c2795d46e9b8ad4c70a81c8e45d3c3259a4cfa46871231

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev442-cp39-cp39-manylinux_2_28_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1a20d6c2b3bb62b02c62f7e51fc7be3526b20b56308df1fee407fb3e890d977d
MD5 783dce1f89750d907cc5a87c737fcfd3
BLAKE2b-256 33790d948e01e929e8e41bf526a05da4d3165236746209c3e437c8d2905acc1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev442-cp39-cp39-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 675ef8fe73eb604a708269ee4e78ddf4f1012b5c97f1cc20e9a6a8ef0f701fb5
MD5 01d7ab63c2d7bda111c35c565e7a45b1
BLAKE2b-256 52558e9a320f20748869a4dfcb633e8c65296987ece6ab32986df05c3c94b373

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