lightweaver 0.15.0__cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of lightweaver might be problematic. Click here for more details.

Files changed (69) hide show
  1. lightweaver/Data/AbundancesAsplund09.pickle +0 -0
  2. lightweaver/Data/AtomicMassesNames.pickle +0 -0
  3. lightweaver/Data/Barklem_dfdata.dat +41 -0
  4. lightweaver/Data/Barklem_pddata.dat +40 -0
  5. lightweaver/Data/Barklem_spdata.dat +46 -0
  6. lightweaver/Data/DefaultMolecules/C2.molecule +27 -0
  7. lightweaver/Data/DefaultMolecules/CH/CH_X-A.asc +46409 -0
  8. lightweaver/Data/DefaultMolecules/CH/CH_X-A_12.asc +28322 -0
  9. lightweaver/Data/DefaultMolecules/CH/CH_X-B.asc +4272 -0
  10. lightweaver/Data/DefaultMolecules/CH/CH_X-B_12.asc +2583 -0
  11. lightweaver/Data/DefaultMolecules/CH/CH_X-C.asc +20916 -0
  12. lightweaver/Data/DefaultMolecules/CH/CH_X-C_12.asc +13106 -0
  13. lightweaver/Data/DefaultMolecules/CH.molecule +35 -0
  14. lightweaver/Data/DefaultMolecules/CN.molecule +30 -0
  15. lightweaver/Data/DefaultMolecules/CO/vmax=3_Jmax=49_dv=1_26 +296 -0
  16. lightweaver/Data/DefaultMolecules/CO/vmax=9_Jmax=120_dv=1_26 +2162 -0
  17. lightweaver/Data/DefaultMolecules/CO.molecule +30 -0
  18. lightweaver/Data/DefaultMolecules/CO_NLTE.molecule +29 -0
  19. lightweaver/Data/DefaultMolecules/CaH.molecule +29 -0
  20. lightweaver/Data/DefaultMolecules/H2+.molecule +27 -0
  21. lightweaver/Data/DefaultMolecules/H2.molecule +27 -0
  22. lightweaver/Data/DefaultMolecules/H2O.molecule +27 -0
  23. lightweaver/Data/DefaultMolecules/HF.molecule +29 -0
  24. lightweaver/Data/DefaultMolecules/LiH.molecule +27 -0
  25. lightweaver/Data/DefaultMolecules/MgH.molecule +34 -0
  26. lightweaver/Data/DefaultMolecules/N2.molecule +28 -0
  27. lightweaver/Data/DefaultMolecules/NH.molecule +27 -0
  28. lightweaver/Data/DefaultMolecules/NO.molecule +27 -0
  29. lightweaver/Data/DefaultMolecules/O2.molecule +27 -0
  30. lightweaver/Data/DefaultMolecules/OH.molecule +27 -0
  31. lightweaver/Data/DefaultMolecules/SiO.molecule +26 -0
  32. lightweaver/Data/DefaultMolecules/TiO.molecule +30 -0
  33. lightweaver/Data/Quadratures.pickle +0 -0
  34. lightweaver/Data/pf_Kurucz.input +0 -0
  35. lightweaver/DefaultIterSchemes/.placeholder +0 -0
  36. lightweaver/DefaultIterSchemes/SimdImpl_AVX2FMA.cpython-310-x86_64-linux-gnu.so +0 -0
  37. lightweaver/DefaultIterSchemes/SimdImpl_AVX512.cpython-310-x86_64-linux-gnu.so +0 -0
  38. lightweaver/DefaultIterSchemes/SimdImpl_SSE2.cpython-310-x86_64-linux-gnu.so +0 -0
  39. lightweaver/LwCompiled.cpython-310-x86_64-linux-gnu.so +0 -0
  40. lightweaver/__init__.py +33 -0
  41. lightweaver/atmosphere.py +1640 -0
  42. lightweaver/atomic_model.py +852 -0
  43. lightweaver/atomic_set.py +1286 -0
  44. lightweaver/atomic_table.py +653 -0
  45. lightweaver/barklem.py +151 -0
  46. lightweaver/benchmark.py +113 -0
  47. lightweaver/broadening.py +605 -0
  48. lightweaver/collisional_rates.py +337 -0
  49. lightweaver/config.py +106 -0
  50. lightweaver/constants.py +22 -0
  51. lightweaver/crtaf.py +197 -0
  52. lightweaver/fal.py +440 -0
  53. lightweaver/iterate_ctx.py +241 -0
  54. lightweaver/iteration_update.py +134 -0
  55. lightweaver/libenkiTS.so +0 -0
  56. lightweaver/molecule.py +225 -0
  57. lightweaver/multi.py +113 -0
  58. lightweaver/nr_update.py +106 -0
  59. lightweaver/rh_atoms.py +19743 -0
  60. lightweaver/simd_management.py +42 -0
  61. lightweaver/utils.py +504 -0
  62. lightweaver/version.py +34 -0
  63. lightweaver/wittmann.py +1375 -0
  64. lightweaver/zeeman.py +157 -0
  65. lightweaver-0.15.0.dist-info/METADATA +81 -0
  66. lightweaver-0.15.0.dist-info/RECORD +69 -0
  67. lightweaver-0.15.0.dist-info/WHEEL +6 -0
  68. lightweaver-0.15.0.dist-info/licenses/LICENSE +21 -0
  69. lightweaver-0.15.0.dist-info/top_level.txt +1 -0
lightweaver/zeeman.py ADDED
@@ -0,0 +1,157 @@
1
+ from dataclasses import dataclass
2
+ from fractions import Fraction
3
+ from typing import TYPE_CHECKING, Iterator, Optional, cast
4
+
5
+ import numpy as np
6
+
7
+ if TYPE_CHECKING:
8
+ from .atomic_model import AtomicLine
9
+
10
+ def fraction_range(start: Fraction, stop: Fraction,
11
+ step: Fraction=Fraction(1,1)) -> Iterator[Fraction]:
12
+ '''
13
+ Works like range, but with Fractions. Does no checking, so best to make
14
+ sure the range you're asking for is sane and divides down properly.
15
+ '''
16
+ while start < stop:
17
+ yield start
18
+ start += step
19
+
20
+ @dataclass
21
+ class ZeemanComponents:
22
+ '''
23
+ Storage for communicating the Zeeman components between functions, also
24
+ shared with the backend, giving a slightly tighter contract than usual:
25
+ all arrays must be contiguous and alpha must be of dtype np.int32.
26
+ '''
27
+ alpha: np.ndarray
28
+ strength: np.ndarray
29
+ shift: np.ndarray
30
+
31
+ def zeeman_strength(Ju: Fraction, Mu: Fraction, Jl: Fraction, Ml: Fraction) -> float:
32
+ '''
33
+ Computes the strength of a Zeeman component, following del Toro Iniesta
34
+ (p. 137) albeit larger by a factor of 2 which is corrected by
35
+ normalisation.
36
+ Takes J upper and lower (u and l respectively), and M upper and lower.
37
+ '''
38
+ alpha = int(Ml - Mu)
39
+ dJ = int(Ju - Jl)
40
+
41
+ # These parameters are x2 those in del Toro Iniesta (p. 137), but we
42
+ # normalise after the fact, so it's fine
43
+
44
+ if dJ == 0: # jMin = ju = jl
45
+ if alpha == 0: # pi trainsitions
46
+ s = 2.0 * Mu**2
47
+ elif alpha == -1: # sigma_b transitions
48
+ s = (Ju + Mu) * (Ju - Mu + 1.0)
49
+ elif alpha == 1: # sigma_r transitions
50
+ s = (Ju - Mu) * (Ju + Mu + 1.0)
51
+ elif dJ == 1: # jMin = jl, Mi = Ml
52
+ if alpha == 0: # pi trainsitions
53
+ s = 2.0 * ((Jl + 1)**2 - Ml**2)
54
+ elif alpha == -1: # sigma_b transitions
55
+ s = (Jl + Ml + 1) * (Jl + Ml + 2.0)
56
+ elif alpha == 1: # sigma_r transitions
57
+ s = (Jl - Ml + 1.0) * (Jl - Ml + 2.0)
58
+ elif dJ == -1: # jMin = ju, Mi = Mu
59
+ if alpha == 0: # pi trainsitions
60
+ s = 2.0 * ((Ju + 1)**2 - Mu**2)
61
+ elif alpha == -1: # sigma_b transitions
62
+ s = (Ju - Mu + 1) * (Ju - Mu + 2.0)
63
+ elif alpha == 1: # sigma_r transitions
64
+ s = (Ju + Mu + 1.0) * (Ju + Mu + 2.0)
65
+ else:
66
+ raise ValueError('Invalid dJ: %d' % dJ)
67
+
68
+ return float(s)
69
+
70
+ def lande_factor(J: Fraction, L: int, S: Fraction) -> float:
71
+ '''
72
+ Computes the Lande g-factor for an atomic level from the J, L, and S
73
+ quantum numbers.
74
+ '''
75
+ if J == 0.0:
76
+ return 0.0
77
+ return float(1.5 + (S * (S + 1.0) - L * (L + 1)) / (2.0 * J * (J + 1.0)))
78
+
79
+ def effective_lande(line: 'AtomicLine'):
80
+ '''
81
+ Computes the effective Lande g-factor for an atomic line.
82
+ '''
83
+ if line.gLandeEff is not None:
84
+ return line.gLandeEff
85
+
86
+ i = line.iLevel
87
+ j = line.jLevel
88
+ if any(x is None for x in [i.J, i.L, i.S, j.J, j.L, j.S]):
89
+ raise ValueError(('Cannot compute gLandeEff as gLandeEff not set and some of '
90
+ 'J, L and S None for line %s') % repr(line))
91
+ gL = lande_factor(i.J, i.L, i.S) # type: ignore
92
+ gU = lande_factor(j.J, j.L, j.S) # type: ignore
93
+
94
+ return 0.5 * (gU + gL) + \
95
+ 0.25 * (gU - gL) * (j.J * (j.J + 1.0) - i.J * (i.J + 1.0)) # type: ignore
96
+
97
+ def compute_zeeman_components(line: 'AtomicLine') -> Optional[ZeemanComponents]:
98
+ '''
99
+ Computes, if possible, the set of Zeeman components for an atomic line.
100
+
101
+ If gLandeEff is specified on the line, then basic three-component Zeeman
102
+ splitting will be computed directly.
103
+ Otherwise, if both the lower and upper levels of the line support
104
+ LS-coupling (i.e. J, L, and S all specified, and J <= L + S), then the
105
+ LS-coupling formalism is applied to compute the components of "anomalous"
106
+ Zeeman splitting.
107
+ If neither of these cases are fulfilled, then None is returned.
108
+
109
+ Parameters
110
+ ----------
111
+ line : AtomicLine
112
+ The line to attempt to compute the Zeeman components from.
113
+
114
+ Returns
115
+ -------
116
+ components : ZeemanComponents or None
117
+ The Zeeman splitting components, if possible.
118
+ '''
119
+ # NOTE(cmo): Just do basic three-component Zeeman splitting if an effective
120
+ # Lande g-factor is specified on the line.
121
+ if line.gLandeEff is not None:
122
+ alpha = np.array([-1, 0, 1], dtype=np.int32)
123
+ strength = np.ones(3)
124
+ shift = alpha * line.gLandeEff
125
+ return ZeemanComponents(alpha, strength, shift)
126
+
127
+ # NOTE(cmo): Do LS coupling ("anomalous" Zeeman splitting)
128
+ if line.iLevel.lsCoupling and line.jLevel.lsCoupling:
129
+ # Mypy... you're a pain sometimes... (even if you are technically correct)
130
+ Jl = cast(Fraction, line.iLevel.J)
131
+ Ll = cast(int, line.iLevel.L)
132
+ Sl = cast(Fraction, line.iLevel.S)
133
+ Ju = cast(Fraction, line.jLevel.J)
134
+ Lu = cast(int, line.jLevel.L)
135
+ Su = cast(Fraction, line.jLevel.S)
136
+
137
+ gLl = lande_factor(Jl, Ll, Sl)
138
+ gLu = lande_factor(Ju, Lu, Su)
139
+ alpha = []
140
+ strength = []
141
+ shift = []
142
+ norm = np.zeros(3)
143
+
144
+ for ml in fraction_range(-Jl, Jl+1):
145
+ for mu in fraction_range(-Ju, Ju+1):
146
+ if abs(ml - mu) <= 1.0:
147
+ alpha.append(int(ml - mu))
148
+ shift.append(gLl*ml - gLu*mu)
149
+ strength.append(zeeman_strength(Ju, mu, Jl, ml))
150
+ norm[alpha[-1]+1] += strength[-1]
151
+ alpha = np.array(alpha, dtype=np.int32)
152
+ strength = np.array(strength)
153
+ shift = np.array(shift)
154
+ strength /= norm[alpha + 1]
155
+
156
+ return ZeemanComponents(alpha, strength, shift)
157
+ return None
@@ -0,0 +1,81 @@
1
+ Metadata-Version: 2.4
2
+ Name: lightweaver
3
+ Version: 0.15.0
4
+ Summary: Non-LTE Radiative Transfer Framework in Python
5
+ Author-email: Chris Osborne <lw@contextuallight.com>
6
+ Maintainer-email: Chris Osborne <lw@contextuallight.com>
7
+ License-Expression: MIT
8
+ Requires-Python: >=3.10
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: numpy>=2.0
12
+ Requires-Dist: numba~=0.60
13
+ Requires-Dist: matplotlib
14
+ Requires-Dist: scipy
15
+ Requires-Dist: parse
16
+ Requires-Dist: specutils
17
+ Requires-Dist: tqdm
18
+ Requires-Dist: weno4
19
+ Requires-Dist: pyyaml
20
+ Requires-Dist: mda-xdrlib; python_version > "3.12"
21
+ Dynamic: license-file
22
+
23
+ # Lightweaver
24
+
25
+ **C. Osborne (University of Glasgow) & I. Milić (NSO/CU Boulder), 2019-2021**
26
+
27
+ **MIT License**
28
+
29
+ Lightweaver is an NLTE radiative transfer code in the style of [RH](https://github.com/ITA-Solar/rh).
30
+ It is well validated against RH and also [SNAPI](https://github.com/ivanzmilic/snapi).
31
+ The code is currently designed for plane parallel atmospheres, either 1D single columns (which can be parallelised over wavelength) or 1.5D parallel columns with `ProcessPool` or MPI parallelisation.
32
+ There is also support for unpolarised radiative transfer in 2D atmospheres.
33
+
34
+ Lightweaver is described in a [paper (including examples!)](https://arxiv.org/abs/2107.00475), and has [API documentation](https://goobley.github.io/Lightweaver/).
35
+
36
+ Whilst the core numerics are implemented 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).
37
+ Other languages with a C/C++ interface could interact directly with this core, hopefully allowing it to be reused as needed in different projects.
38
+
39
+ The aim of Lightweaver is to provide an NLTE Framework, rather than a "code".
40
+ That is to say, it should be more malleable, 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.
41
+ Formal solvers that comply with the interface defined in Lightweaver can be compiled into separate shared libraries and then loaded at runtime.
42
+ The preceding concepts are inspired by the popular python machine learning frameworks such as PyTorch and Tensorflow.
43
+
44
+ ## Installation
45
+
46
+ 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.
47
+ Lightweaver requires python 3.8+, and it is recommended to be run inside a virtual environment using `conda`.
48
+ In this case a new virtual environment can be created with:
49
+ ```
50
+ conda create -n Lightweaver python=3.8
51
+ ```
52
+ activate the environment:
53
+ ```
54
+ conda activate Lightweaver
55
+ ```
56
+ and Lightweaver can then be installed with
57
+ ```
58
+ python -m pip install lightweaver
59
+ ```
60
+
61
+ ### Installation from source
62
+
63
+ 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.
64
+ This requires a compiler supporting C++17.
65
+ The build is then run with `python3 -m pip install -vvv -e .`.
66
+ The libraries currently produce a few warnings, but should not produce any errors.
67
+
68
+ ## Documentation
69
+
70
+ - [Paper](https://arxiv.org/abs/2107.00475).
71
+ - [API documentation](https://goobley.github.io/Lightweaver/).
72
+ - I suggest looking through [the samples repository](https://github.com/Goobley/LightweaverSamples) (in particular the `Simple*.py`) after the code description in the paper to gain an understanding of the basic functionality and interfaces.
73
+ These samples are unfortunately not always up to date, but are a work in progress.
74
+ - The [MsLightweaver repository](https://github.com/Goobley/MsLightweaver) contains a more "production grade" tool built on Lightweaver for reprocessing the time-dependent radiative output from RADYN simulations.
75
+ This tool is currently undocumented, but has a relatively simple structure.
76
+
77
+ Please contact me through this repository if difficulties are encountered.
78
+
79
+ ## Acknowledgements
80
+
81
+ The [python implementation](https://github.com/jaimedelacruz/witt) of the Wittmann equation of state has been kindly provided J. de la Cruz Rodriguez.
@@ -0,0 +1,69 @@
1
+ lightweaver/LwCompiled.cpython-310-x86_64-linux-gnu.so,sha256=FsP6KEbnMYDuRUFb7PoZ0lqxP27sFT7hjkbDNnTW0X0,23050720
2
+ lightweaver/__init__.py,sha256=-0rZwR6uj0GhVvLuHvMLY0zSktyWq7Pj-DbMtBPgUKk,1597
3
+ lightweaver/atmosphere.py,sha256=YlKl2NEe08HbtqICfQVvh95z4ZnHiWLpmk2gdbAY-5Q,64272
4
+ lightweaver/atomic_model.py,sha256=c9CfrWeFnBH1X4-umM5bALUUO6Z2T4TL7vjkfKVeFJc,26863
5
+ lightweaver/atomic_set.py,sha256=_8y_xhQT6hE0f6MOaPaJPywhTKbXqXc8UgWcyAjUtfc,48032
6
+ lightweaver/atomic_table.py,sha256=eWjjbjfzapz2I875kf1O3C-1zod0Cq51rul_C5l_Vlw,21024
7
+ lightweaver/barklem.py,sha256=L5at5pKgv3u6fQW2_4NedghSFshNPqi5430Owhxldz8,5535
8
+ lightweaver/benchmark.py,sha256=Ii4sjaP7BSNacpxQo8Fm22X-wOn6PJxqrs6G_Z2ZjK8,4001
9
+ lightweaver/broadening.py,sha256=OEymNWV6AA968_KlqbMfooT8v3kR64YR-_n8Bkfy0XE,19184
10
+ lightweaver/collisional_rates.py,sha256=orlzfAtdfmxltptn-3phOmvADXILxcYaI0c_y9m5Ysg,11435
11
+ lightweaver/config.py,sha256=_GzSvhhK5B-wqZXYNopPqdp4muCX3b8a2AbyVWU2Rdo,3295
12
+ lightweaver/constants.py,sha256=wk5GanELqBGaGuIYL0Fw8-_lc2m0AhTFpZO_vLlb6Ls,941
13
+ lightweaver/crtaf.py,sha256=OVuSlWI6XeWVHDJ6HBrl9XcgvhnlX3klMkKtHCJd6go,8322
14
+ lightweaver/fal.py,sha256=ONFDYaNTE3uEN7NXhgkxg-nixVkVP7z3m5zSZk0FFfY,11837
15
+ lightweaver/iterate_ctx.py,sha256=y07gYwqW3TTPbrrTM8bwBRtb675_nW5ufU4fDPq7ECc,9353
16
+ lightweaver/iteration_update.py,sha256=UI11afqPCRDUU01viZAtb1R-xjpnbdmp4rZZpF-c-rA,4762
17
+ lightweaver/libenkiTS.so,sha256=Di7FMNKX2WcgK79HwaMy1jEQaVrYJIJ1dM69S9wW54g,256744
18
+ lightweaver/molecule.py,sha256=fToQAn-dyD0XOjNsxvbfJrVpnDrkLjt5nqqI88oL_BA,7500
19
+ lightweaver/multi.py,sha256=5KTNLgDQnceLzu6TxLe42Go4fHkSLDymtskZRrzbInE,3298
20
+ lightweaver/nr_update.py,sha256=tjQ19wLlzQghCKWvqgkqbJZh3upPS64TK6Yi3qiKHoA,4439
21
+ lightweaver/rh_atoms.py,sha256=mZgqkHRqyvKTvNtI3atuRsX-MEB-F3c1wPJVgpN5cx8,4432071
22
+ lightweaver/simd_management.py,sha256=bz_5_6T_Tj69y7udYflMMHVI-EUX8lmeBS4JMiqwUP8,1433
23
+ lightweaver/utils.py,sha256=L_-i6sYyuLEAFpxaCrhjVlRwDGOGSNqKRHhUj_aQv_Y,16527
24
+ lightweaver/version.py,sha256=SoHo2OdsszIeBVry9FXA5bwSZQJrUVCQbQiNdbzrIa8,714
25
+ lightweaver/wittmann.py,sha256=NxxVheNjYkS9UbDAbz1vXx_Y5_y-Awxplt6J_sVQYxo,45413
26
+ lightweaver/zeeman.py,sha256=xZJB5m4942bntpD35ZFhjeCB25t5LXmkiR3R9msXjZk,5751
27
+ lightweaver/Data/AbundancesAsplund09.pickle,sha256=SkgRSYCmYHp8pEZNsC7qotTlKE4xVrUClDOOWAm0PmI,13810
28
+ lightweaver/Data/AtomicMassesNames.pickle,sha256=F8yNKvfeJIVhzNB1CXtMdEt7NX5N-932vup86VY0-DM,10394
29
+ lightweaver/Data/Barklem_dfdata.dat,sha256=DDPFg7xU7BJglq7HgRWtK_E-0VJWXr2ybLaF1xwTM9M,3979
30
+ lightweaver/Data/Barklem_pddata.dat,sha256=h4mpBjrw6vovx30MkJ7bdFBzGLSyZgPQySK6dSklqH4,3953
31
+ lightweaver/Data/Barklem_spdata.dat,sha256=DWQcznCQxeFyi0QyRtKbY-E3oK1nlsVag1plP_y-E2U,4600
32
+ lightweaver/Data/Quadratures.pickle,sha256=iHhL_eZsppT445YMc_gQqG2CAFSJAOmsfbSj9XuaCcE,1281
33
+ lightweaver/Data/pf_Kurucz.input,sha256=p9FbJUBrJzYzElO2RX2O9M-j8-8idUYhIJmRIbinNKg,592244
34
+ lightweaver/Data/DefaultMolecules/C2.molecule,sha256=irTF8Z1I04VKOMH8ukMeYetoe-vcqQoBOFdZ9Q4rbNc,428
35
+ lightweaver/Data/DefaultMolecules/CH.molecule,sha256=QR7HOTIagavI6KilljWXISbc4isPJI7xnbSYkiAzrD8,665
36
+ lightweaver/Data/DefaultMolecules/CN.molecule,sha256=V5Bc14b_xbsmyqkkTUpE4DFkH_3tenofgtXADd1WAcI,539
37
+ lightweaver/Data/DefaultMolecules/CO.molecule,sha256=PD4-NrZNkwzixuLvpe6lkM3sNiaZgr_lJn7jsGiiBks,563
38
+ lightweaver/Data/DefaultMolecules/CO_NLTE.molecule,sha256=LSLoaQPzn5UGG_RZ9_v21QlyedhTEu7U54I17qXigwI,510
39
+ lightweaver/Data/DefaultMolecules/CaH.molecule,sha256=GRXgZBRhOdV5r_1FQDXcUIKxIcZHYMw_q1W5qFwJ1kk,477
40
+ lightweaver/Data/DefaultMolecules/H2+.molecule,sha256=Zzi0uzcePKfnEPfe31nyYXYUo8W2W-He3nOGznYj3Vg,400
41
+ lightweaver/Data/DefaultMolecules/H2.molecule,sha256=9zshTouruhm22gzRjUn7JOZcQBHnZaD7Q8VNauvMX1w,504
42
+ lightweaver/Data/DefaultMolecules/H2O.molecule,sha256=BnltJ-ycoSHtj-p9feM4iDRdYyGavqlHPCAHRKZSpgI,410
43
+ lightweaver/Data/DefaultMolecules/HF.molecule,sha256=s5JYRFj19rD6SLfhMEwGUMaSWo_yCFBx5pMzWxJhCmk,521
44
+ lightweaver/Data/DefaultMolecules/LiH.molecule,sha256=LHll4H4MTI7DUwG6uih3S_KSGNA8nbGlvuj6e-yAWjw,429
45
+ lightweaver/Data/DefaultMolecules/MgH.molecule,sha256=lVaNBIDWEl0xQlZ6fnQaI-JgP6_bdIdj7o-JTtkR8j8,693
46
+ lightweaver/Data/DefaultMolecules/N2.molecule,sha256=ONCkT6y8hOHCVdFaicejEjMqML5TKDQsl0C9FOWoXxo,428
47
+ lightweaver/Data/DefaultMolecules/NH.molecule,sha256=ydXwil7Dtm77jdFx9eWnA9LBDIwcHRd7XO_9Gzb21bE,415
48
+ lightweaver/Data/DefaultMolecules/NO.molecule,sha256=xZ0YimArKnk_SvOG7t2BAGLzzUyRn0xuddfHuHU7nh8,416
49
+ lightweaver/Data/DefaultMolecules/O2.molecule,sha256=_DqOWNKOxAMjpNvQX1rwSXbC5ZkWVdoszsWx9tY2PAc,418
50
+ lightweaver/Data/DefaultMolecules/OH.molecule,sha256=-wZcTpx1cd_I9JdO925KVTbr_LiRHjcgnpJpfc8jtrc,477
51
+ lightweaver/Data/DefaultMolecules/SiO.molecule,sha256=X4YK32ZcFu71XFF4zVUJctUgs8I_BYbIphaKDuQSCQA,389
52
+ lightweaver/Data/DefaultMolecules/TiO.molecule,sha256=RQWuV7AEJp6qlwOmx2JO-dmYCxwbgasd41aEOvobtEg,571
53
+ lightweaver/Data/DefaultMolecules/CH/CH_X-A.asc,sha256=tTpTh0OTft7TY4iozjBDrnRZ6hescfaEcVBpyEKc-xQ,3480579
54
+ lightweaver/Data/DefaultMolecules/CH/CH_X-A_12.asc,sha256=Rqz8fz0diUug0dBHe44Ocd3sFIJecaR6oK-7joQwjrQ,2010775
55
+ lightweaver/Data/DefaultMolecules/CH/CH_X-B.asc,sha256=1ojSRNjpYv1K1gLVY939kYWmr1g-kuhXGKpvyHn5NnE,320304
56
+ lightweaver/Data/DefaultMolecules/CH/CH_X-B_12.asc,sha256=gAScIebIY7OeXqBHu7S0RrB2mS6tW8AS6p4ZGJLRlgs,183306
57
+ lightweaver/Data/DefaultMolecules/CH/CH_X-C.asc,sha256=H3BcjjQekEcwTwjuj4NwnGHysYJBFh3j2E3WnKSLSw0,1568605
58
+ lightweaver/Data/DefaultMolecules/CH/CH_X-C_12.asc,sha256=0bCZ-WXFV2K2lwBlgOkwuvkP-Bj0Sks6TjWtY2hq8LA,930439
59
+ lightweaver/Data/DefaultMolecules/CO/vmax=3_Jmax=49_dv=1_26,sha256=ROW6cpVEu2yeHAqAaIOVQ9iDN9tERN5BXG0OvIpzRfw,22398
60
+ lightweaver/Data/DefaultMolecules/CO/vmax=9_Jmax=120_dv=1_26,sha256=6x6Sja6a2KBEAnWfXEntpKgtJK97hN_Vj29ZM5fmKko,164217
61
+ lightweaver/DefaultIterSchemes/.placeholder,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
+ lightweaver/DefaultIterSchemes/SimdImpl_AVX2FMA.cpython-310-x86_64-linux-gnu.so,sha256=pJHt0-S_F5dQbyYs-KsJSHRvcPX7ht0j8EL0HzQ8JD0,16519584
63
+ lightweaver/DefaultIterSchemes/SimdImpl_AVX512.cpython-310-x86_64-linux-gnu.so,sha256=D5VvcGIwJM-nWgkmL-0DUZiDcij6RoGMMRgB8p3i_hQ,17298776
64
+ lightweaver/DefaultIterSchemes/SimdImpl_SSE2.cpython-310-x86_64-linux-gnu.so,sha256=ymnsBzr8tXISSrmFt3n6OE0SnhNurEp0ryFbRgNSJpU,15937112
65
+ lightweaver-0.15.0.dist-info/METADATA,sha256=BjWCYCTVR78EiGykHwtiBCNYEA5TVg1Hdl5HIdProe4,4218
66
+ lightweaver-0.15.0.dist-info/WHEEL,sha256=HeTPKmtWRHAcGMCPCdnU4FtSZuvZBNNr3hB4MNGY2JY,152
67
+ lightweaver-0.15.0.dist-info/top_level.txt,sha256=TqtjW3ntlT7MIESoNNYcnSCgDEaBQzYOpiz1UfqalfU,12
68
+ lightweaver-0.15.0.dist-info/RECORD,,
69
+ lightweaver-0.15.0.dist-info/licenses/LICENSE,sha256=wVMbqLUgFqYma4RAdIHtNAm0ml2RXvgMxXZH6wbqfiw,1080
@@ -0,0 +1,6 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp310-cp310-manylinux_2_24_x86_64
5
+ Tag: cp310-cp310-manylinux_2_28_x86_64
6
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2019 Christopher M J Osborne
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ lightweaver