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.5.0.tar.gz (3.2 MB view details)

Uploaded Source

Built Distributions

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

Uploaded CPython 3.8 Windows x86-64

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

Uploaded CPython 3.8 Windows x86

lightweaver-0.5.0-cp38-cp38-manylinux2010_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

lightweaver-0.5.0-cp38-cp38-manylinux1_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.8

lightweaver-0.5.0-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.5.0.tar.gz.

File metadata

  • Download URL: lightweaver-0.5.0.tar.gz
  • Upload date:
  • Size: 3.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.7

File hashes

Hashes for lightweaver-0.5.0.tar.gz
Algorithm Hash digest
SHA256 388804c7de1578a9bf6d0c547ca3e359ec4c373e63a1ab735f2052f6513dcee5
MD5 f87e55073ab2fb507219fbabd8b9d8e0
BLAKE2b-256 a461f7047e2d6cbde01f3dac5966d6f622383c11e99ff74f811026a29982225e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lightweaver-0.5.0-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.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.7

File hashes

Hashes for lightweaver-0.5.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f9525916ccee507455e073658b65a1ea12a68f1187396b8c146b90212b23604f
MD5 fe4f3795eb329514c6a24dd67f2abdf4
BLAKE2b-256 528309ebf67f2406ec935ca270beeff09f2671388919a12cac180ac5f7e8a838

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lightweaver-0.5.0-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.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.7

File hashes

Hashes for lightweaver-0.5.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 6346a5eec5973a29b55e6eb5ee1487a9cb4f54ea33f73e0a6afdbc2acc5f6c92
MD5 f62b04aba08db4cd824ac45d571ba6ec
BLAKE2b-256 c29aff6cb0cd5a7cfb9d1839789f89010fad600724e38ef260b44dd7c43c27dc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lightweaver-0.5.0-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 6.9 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.7

File hashes

Hashes for lightweaver-0.5.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 54c0de012576a486817e029e83c79a135485faa76fbef9b35c21ef89fc418ee6
MD5 eb15c5c7fe5d587425a9eb8488a54bd3
BLAKE2b-256 6d3f08c4349331dc7074e957aad4928499fe66122386a99fa83c15af73e1ecaa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lightweaver-0.5.0-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 6.9 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.7

File hashes

Hashes for lightweaver-0.5.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 04791fde719c14f1a1de64816ef62472739bf19440366a4f4e14db53fa9175ea
MD5 9a19bbc02732bf19b620de4542dac484
BLAKE2b-256 b2a9b907562e0747d2aea414f24d9a68beb6bf5790c7b1ce951aa289fa4b0d6c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lightweaver-0.5.0-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.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.7

File hashes

Hashes for lightweaver-0.5.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3f9b97501b23c5f579969981d1885b56e3205eb5e996c3778671be974d975c15
MD5 2d5f4c2905cfd05c3b6e060edaac6b35
BLAKE2b-256 089ce19591bf9663900fb2cc49454a9406fdc0b1ade8fc8bbd989e276615eadd

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