Skip to main content

Non-LTE Radiative Transfer Framework in Python

Project description

Lightweaver

C. Osborne (University of Glasgow) & I. Milić (NSO/CU Boulder), 2019-2020

MIT License

Lightweaver is an NLTE radiative transfer code in the style of RH. It is well validated against RH and also SNAPI. The code is currently designed for plane parallel atmospheres, either 1D single columns (wavelength parallelisation in progress) or 1.5D parallel columns with ProcessPool or MPI parallelisation. There is also preliminary support for 2D atmospheres.

Whilst the core numerics are implented in C++, as much of the non-performance critical code as possible is implemented in Python, and the code currently only has a Python interface (provided through a Cython binding module). These bindings could be rewritten in another language, so long as the same information can be provided to the C++ core.

The aim of Lightweaver is to provide an NLTE Framework, rather than a "code". That is to say, it should be more maleable, and provide easier access to experimentation, with most forms of experimentation (unless one wants to play with formal solvers or iteration schemes), being available directly from python. Formal solvers that comply with the interface defined in Lightweaver can be compiled into separate shared libraries and then loaded at runtime. The preceding concepts are inspired by the well-recieved machine learning frameworks such as PyTorch and Tensorflow.

Installation

For most users precompiled python wheels (supporting modern Linux, Mac, and Windows 10 systems) can be installed from pip and are the easiest way to get started with Lightweaver. Lightweaver requires python 3.8+, and it is recommended to be run inside a virtual environment using conda. In this case a new virtual environment can be created with:

conda create -n Lightweaver python=3.8

activate the environment:

conda activate Lightweaver

and Lightweaver can then be installed with

python -m pip install lightweaver

Installation from source

Whilst the above should work for most people, if you wish to work on the Lightweaver backend it is beneficial to have a source installation. This requires a compiler supporting C++17. The build is then run with python3 -m pip install -vvv -e .. The libraries currently produce a few warnings, but should not produce any errors.

Documentation

Documentation is currently lacking, although it is currently being produced. I suggest looking through the samples repository (in particular the Simple*.py) to gain an understanding of the basic functionality and interfaces. These samples are kept as up to date as possible.

Feel free to contact me through this repository if difficulties are encountered.

Acknowledgements

The python implementation of the Wittmann equation of state has been kindly provided J. de la Cruz Rodriguez.

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

lightweaver-0.3.2.tar.gz (3.2 MB view details)

Uploaded Source

Built Distributions

lightweaver-0.3.2-cp38-cp38-win_amd64.whl (3.2 MB view details)

Uploaded CPython 3.8 Windows x86-64

lightweaver-0.3.2-cp38-cp38-win32.whl (3.1 MB view details)

Uploaded CPython 3.8 Windows x86

lightweaver-0.3.2-cp38-cp38-manylinux2010_x86_64.whl (7.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

lightweaver-0.3.2-cp38-cp38-manylinux1_x86_64.whl (7.0 MB view details)

Uploaded CPython 3.8

lightweaver-0.3.2-cp38-cp38-macosx_10_9_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

Details for the file lightweaver-0.3.2.tar.gz.

File metadata

  • Download URL: lightweaver-0.3.2.tar.gz
  • Upload date:
  • Size: 3.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for lightweaver-0.3.2.tar.gz
Algorithm Hash digest
SHA256 5735e240e00f7d77176f3aa20cd715dfaceb825fdebcd86fa5586172d3421ded
MD5 5f0eeb0c3c3c79e259bc310a782ff997
BLAKE2b-256 fbb78e12aa914ca748ac458837780a6e98296975bb2176676d6dd5c97fd24764

See more details on using hashes here.

File details

Details for the file lightweaver-0.3.2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: lightweaver-0.3.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for lightweaver-0.3.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 704827fedfe968db85014a28a2f2e991bdc1b0cfd98338af6a701288f61d9a1b
MD5 2e3512c161c5457e6af709f8e32f06e8
BLAKE2b-256 3210bbb56fe2c776a58d31c3a953f86375cb855432544338b1369267ed444d2b

See more details on using hashes here.

File details

Details for the file lightweaver-0.3.2-cp38-cp38-win32.whl.

File metadata

  • Download URL: lightweaver-0.3.2-cp38-cp38-win32.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for lightweaver-0.3.2-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 f3ecb4f37d4a6e93fbfd1e058c5a3b822b34b8257120b095e2e23bd33e9d6dc9
MD5 673bdba13c8af47febdea14465455643
BLAKE2b-256 255a97b0e18251cb47f88a8f893b8cda016ed74944f4c08994dc7ebdf1802055

See more details on using hashes here.

File details

Details for the file lightweaver-0.3.2-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: lightweaver-0.3.2-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 7.0 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for lightweaver-0.3.2-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 4ceb654dc0d7c0d46f75127f62c02c6ab3987c8d0515825d777f0cd09ba33063
MD5 6632fbb42329d43e4be8bd567349b29b
BLAKE2b-256 82ec6df50d82a28631fb02af543de0dc7a899da6ae028665c7615f245737824e

See more details on using hashes here.

File details

Details for the file lightweaver-0.3.2-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: lightweaver-0.3.2-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 7.0 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for lightweaver-0.3.2-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b9acd4f67c552fb56ae0a2b9864f16eb7285477d2a5c1496aab03fe0ca751cc6
MD5 7651abb39d70baa2565ced72b1f0ae56
BLAKE2b-256 afc2ccc8b34feeb7429ffb7779e14f9fb7f60738b0902853d46eaf97be0ff8dc

See more details on using hashes here.

File details

Details for the file lightweaver-0.3.2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: lightweaver-0.3.2-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for lightweaver-0.3.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b01cc5f85258d8a26668c95dbfaf537d27fa323a28f4d67ae96e96e63e8834d5
MD5 a47629e1ca7857da3f582cf4a4be3189
BLAKE2b-256 6003af23b5ad199e56af0b16d807ea2dea1b26cade91e586870055eb8ea1fd94

See more details on using hashes here.

Supported by

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