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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.9Windows x86-64

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

File metadata

  • Download URL: ngstents-0.1.dev441.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.dev441.tar.gz
Algorithm Hash digest
SHA256 fc156dd078a27e8cb098c3583b18206b59536fa153612eecbd9839ff1c330e46
MD5 74598b15e32c5f1930295dc3a7bd2aff
BLAKE2b-256 adffad57fabaa12e4f1738eec1c8efdef15d7dd638f6112e889d47ed4ef9d380

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev441-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e7ef194a78d6334a015b420fee8d53675f164ac9fc38d7c5896916023d4a931b
MD5 843f4c995c9078c17933ae37f0b53f9b
BLAKE2b-256 65880286ded52b6cbe354408c1e7483542824b91fc78d98a20b8243e9e0b19e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev441-cp312-cp312-manylinux_2_28_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8dd497e10ffe0d2205febff37ac15934577e593d3dc85f995de4d1be3b633491
MD5 c7efc3a2ad60b2d023167c12abfb4f94
BLAKE2b-256 20825f8097de081fd0b32b297213ae85c23d482949b37bbddb52ab122e6652af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev441-cp312-cp312-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 c19fc9449c0004e05c5f56d9512c27e12e1682e55a895706073f25b766d62aef
MD5 a985782954a1e89bfb936ed6bd226c90
BLAKE2b-256 365087326701c12a76d9b13cff37b253e4a88edb7f34bfe5cd2a868a8a6866b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev441-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3b82a59df843925a16dfbc967969b8555d0ddb65ab6b757b94f75fd5787c5f86
MD5 f964fb1a79883040b43cb485004b1ec2
BLAKE2b-256 4c9f15a2b21eddc2f2701cf3403383f5e2a9e0e04b9a9ddbe3befb0fb9683c24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev441-cp311-cp311-manylinux_2_28_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fd1d720e26c322426b63201bc328b705894e981060efdbcf735ea7957915134c
MD5 846c88db671df720b208a2d993635be6
BLAKE2b-256 1efd494ed42b796301238dd127f595c9f27e3359eaa9497a2a3b813352e86393

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev441-cp311-cp311-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 2c6e19831cf61d4ec7ee27fdf439ea74d0a8658786ac340a2c425eab391dbbd6
MD5 d303ce771631800f517feed72e8f0e2d
BLAKE2b-256 771591bab56a24b0c18842be251c449592954a5134de5f116087caf52a937d7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev441-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fa8ac9df1bc60b2cf79793faeddc685515b9fd34bb5a6ec6638961da9a3622d6
MD5 70853af1324802d45859dbf449e03f55
BLAKE2b-256 a8fa49959e9aab8a7ac09574695c0c396f265b103d098aab4642e259cc94844d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev441-cp310-cp310-manylinux_2_28_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 78d38e317de618e8d0ac63603dcf433cc07571cefe13afcd0105d983ade12c39
MD5 1442be31fdd7ce831568afcb8067d122
BLAKE2b-256 7b3980be29bb32663d5244010bff59538694665f517a3e32af21b83b4131c2aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev441-cp310-cp310-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 274e51197d2104c9d29b1da29a41ebbd72163242480874a1a1255b049fb15f26
MD5 83c84272292f851a81edfa2070667e2b
BLAKE2b-256 253b5054057162f6d99a22b46d8deaad40404edab45573577657da8f939df4d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev441-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 bce7b37c1d047cb48495f6b1b678729090bbeb9a1b1d096fa46db0319ac73f15
MD5 4ad31cd4568ca736b298e36ef3585693
BLAKE2b-256 fefdc862d94d3c9b46b8ff2437c05bda85dae92a26c2cf390516c645c5e3cb10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev441-cp39-cp39-manylinux_2_28_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2350712673d1550dde7e2a29643e12d38f81f9d453c5f5e8d6a0f6351ddcbed5
MD5 bac0d2963b68401af713372c4515c24f
BLAKE2b-256 a02cba09e7438153f23129e943d5ee8f3a726c42f03959e4b8ba5b84b4323a74

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ngstents-0.1.dev441-cp39-cp39-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 2de1d329ecc511bc73bb16eaa24d3da1372355b22b6e809c19e6af341842d4a0
MD5 41ecbdff28214c74b3ccc9f059da86c8
BLAKE2b-256 a9449a1caa4efc5effe2f3229a3cd53c21ce41fd639f3931e51620fac69b1ea2

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