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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.8 Windows x86-64

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

Uploaded CPython 3.8 Windows x86

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

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

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

Uploaded CPython 3.8

lightweaver-0.3.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.3.0.tar.gz.

File metadata

  • Download URL: lightweaver-0.3.0.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.0 CPython/3.8.6

File hashes

Hashes for lightweaver-0.3.0.tar.gz
Algorithm Hash digest
SHA256 8a6137ddbd80aa7cad2e9c57169d2d7636c99f0b3771fb6d3b27849d5d34effb
MD5 80ca271aa25372cebfffd15aa59c594c
BLAKE2b-256 1548c7b8c69d87fdb5076d615cfa79a7fae5be8329b72c5cef8826367cad0813

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lightweaver-0.3.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.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.6

File hashes

Hashes for lightweaver-0.3.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 77143356ae31cbf3dd592e75c28c2a5301cba8d423e391cc554d0aff8525ada1
MD5 f5c464491d02b01ddec7b5d6ef29d545
BLAKE2b-256 58db6ab0162ded27048ac268b9c725a58d0a5d988b2f172aca9a13f079ffc96e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lightweaver-0.3.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.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.6

File hashes

Hashes for lightweaver-0.3.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 ff874e99a4018c4e93bf0acbf8cef2c5ebfcf94966ab22db6b6becfd456c5b22
MD5 8bdf3bcc656774d2947375aa0dbe4801
BLAKE2b-256 f1b81ebbb474bd285469102705a6f2fc25fd1bc231acfb9761574c5114796ab3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lightweaver-0.3.0-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.0 CPython/3.8.6

File hashes

Hashes for lightweaver-0.3.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 8f173bfcbdaca5ba9966a09f625a9e098a78fdec7c5ec60d16cf46e2cb3d21ea
MD5 04a89d6caca29c83e39e6156fdb3307d
BLAKE2b-256 9ad918622fe65ee8f8a4f61c3b22a7c059b6399615faf7ae9232449d01004787

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lightweaver-0.3.0-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.0 CPython/3.8.6

File hashes

Hashes for lightweaver-0.3.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 33daaeaa77f1c5b567490130d0f2dadc365b67baf0bbc0e82e952605387d6c9c
MD5 fe4880f9381b9435a31cb5c45b921b8c
BLAKE2b-256 cf7d034ff08ada5e404a5280fb2a7f67daa3eec46fa42d15982d030ea5cbf53b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lightweaver-0.3.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.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.6

File hashes

Hashes for lightweaver-0.3.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 82b24761a699d34417182c007c6d5da77236ac52f7a0a2d19b834ebda4500940
MD5 05aca886592faab65fe5fce689f9ddb2
BLAKE2b-256 653431fd59ab905915ceea7dd69f9444bd8f59feddb88ef59492199a35d6f923

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