lightweaver 0.14.1__cp310-cp310-win_amd64.whl → 0.14.2rc1__cp310-cp310-win_amd64.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.
- lightweaver/DefaultIterSchemes/SimdImpl_AVX2FMA.cp310-win_amd64.pdb +0 -0
- lightweaver/DefaultIterSchemes/SimdImpl_AVX2FMA.cp310-win_amd64.pyd +0 -0
- lightweaver/DefaultIterSchemes/SimdImpl_AVX512.cp310-win_amd64.pdb +0 -0
- lightweaver/DefaultIterSchemes/SimdImpl_AVX512.cp310-win_amd64.pyd +0 -0
- lightweaver/DefaultIterSchemes/SimdImpl_SSE2.cp310-win_amd64.pdb +0 -0
- lightweaver/DefaultIterSchemes/SimdImpl_SSE2.cp310-win_amd64.pyd +0 -0
- lightweaver/LwCompiled.cp310-win_amd64.pdb +0 -0
- lightweaver/LwCompiled.cp310-win_amd64.pyd +0 -0
- lightweaver/atmosphere.py +27 -25
- lightweaver/atomic_model.py +1 -1
- lightweaver/atomic_table.py +1 -1
- lightweaver/barklem.py +2 -2
- lightweaver/broadening.py +3 -2
- lightweaver/collisional_rates.py +3 -2
- lightweaver/constants.py +1 -6
- lightweaver/fal.py +10 -1
- lightweaver/libenkiTS.pyd +0 -0
- lightweaver/molecule.py +3 -3
- lightweaver/multi.py +7 -6
- lightweaver/version.py +2 -2
- {lightweaver-0.14.1.dist-info → lightweaver-0.14.2rc1.dist-info}/METADATA +1 -1
- {lightweaver-0.14.1.dist-info → lightweaver-0.14.2rc1.dist-info}/RECORD +25 -25
- {lightweaver-0.14.1.dist-info → lightweaver-0.14.2rc1.dist-info}/WHEEL +1 -1
- {lightweaver-0.14.1.dist-info → lightweaver-0.14.2rc1.dist-info}/licenses/LICENSE +0 -0
- {lightweaver-0.14.1.dist-info → lightweaver-0.14.2rc1.dist-info}/top_level.txt +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
lightweaver/atmosphere.py
CHANGED
|
@@ -130,8 +130,8 @@ def get_top_pressure(eos: Wittmann, temp, ne=None, rho=None):
|
|
|
130
130
|
For internal use.
|
|
131
131
|
|
|
132
132
|
In order this is deduced from:
|
|
133
|
-
- the electron density `ne
|
|
134
|
-
- the mass density `rho
|
|
133
|
+
- the electron density `ne` [m-3], if provided
|
|
134
|
+
- the mass density `rho` [kg m-3], if provided
|
|
135
135
|
- the electron pressure present in FALC
|
|
136
136
|
|
|
137
137
|
Returns
|
|
@@ -141,10 +141,10 @@ def get_top_pressure(eos: Wittmann, temp, ne=None, rho=None):
|
|
|
141
141
|
|
|
142
142
|
'''
|
|
143
143
|
if ne is not None:
|
|
144
|
-
pe = ne
|
|
144
|
+
pe = (ne << u.Unit('m-3')).to('cm-3').value * cgs.BK * temp
|
|
145
145
|
return eos.pg_from_pe(temp, pe)
|
|
146
146
|
elif rho is not None:
|
|
147
|
-
return eos.pg_from_rho(temp, rho)
|
|
147
|
+
return eos.pg_from_rho(temp, (rho << u.Unit('kg m-3')).to('g cm-3').value)
|
|
148
148
|
|
|
149
149
|
pgasCgs = np.array([0.70575286, 0.59018545, 0.51286639, 0.43719268, 0.37731009,
|
|
150
150
|
0.33516886, 0.31342915, 0.30604891, 0.30059491, 0.29207645,
|
|
@@ -949,20 +949,20 @@ class Atmosphere:
|
|
|
949
949
|
if nHTot is None and ne is not None:
|
|
950
950
|
if verbose:
|
|
951
951
|
print('Setting nHTot from electron pressure.')
|
|
952
|
-
pe = ne
|
|
952
|
+
pe = (ne << u.Unit('m-3')).to('cm-3').value * cgs.BK * temperature
|
|
953
953
|
rho = np.zeros(Nspace)
|
|
954
954
|
for k in range(Nspace):
|
|
955
955
|
rho[k] = eos.rho_from_pe(temperature[k], pe[k])
|
|
956
|
-
nHTot = np.copy(rho
|
|
956
|
+
nHTot = np.copy((rho << u.Unit('g cm-3')).to('kg m-3').value
|
|
957
957
|
/ (Const.Amu * abundance.massPerH))
|
|
958
958
|
elif ne is None and nHTot is not None:
|
|
959
959
|
if verbose:
|
|
960
960
|
print('Setting ne from mass density.')
|
|
961
|
-
rho = Const.Amu * abundance.massPerH * nHTot
|
|
961
|
+
rho = ((Const.Amu * abundance.massPerH * nHTot) << u.Unit('kg m-3')).to('g cm-3').value
|
|
962
962
|
pe = np.zeros(Nspace)
|
|
963
963
|
for k in range(Nspace):
|
|
964
964
|
pe[k] = eos.pe_from_rho(temperature[k], rho[k])
|
|
965
|
-
ne = np.copy(pe / (cgs.BK * temperature)
|
|
965
|
+
ne = np.copy(((pe / (cgs.BK * temperature)) << u.Unit('cm-3')).to('m-3').value)
|
|
966
966
|
elif ne is None and nHTot is None:
|
|
967
967
|
if Pgas is not None and Pgas.shape[0] != Nspace:
|
|
968
968
|
raise ValueError('Dimensions of Pgas do not match atmospheric depth')
|
|
@@ -973,7 +973,7 @@ class Atmosphere:
|
|
|
973
973
|
if verbose:
|
|
974
974
|
print('Setting ne, nHTot from provided gas pressure.')
|
|
975
975
|
# Convert to cgs for eos
|
|
976
|
-
pgas = Pgas
|
|
976
|
+
pgas = (Pgas << u.Unit('Pa')).to('dyn cm-2').value
|
|
977
977
|
pe = np.zeros(Nspace)
|
|
978
978
|
rho = np.zeros(Nspace)
|
|
979
979
|
for k in range(Nspace):
|
|
@@ -983,7 +983,7 @@ class Atmosphere:
|
|
|
983
983
|
if verbose:
|
|
984
984
|
print('Setting ne, nHTot from provided electron pressure.')
|
|
985
985
|
# Convert to cgs for eos
|
|
986
|
-
pe = Pe
|
|
986
|
+
pe = (Pe << u.Unit('Pa')).to('dyn cm-2').value
|
|
987
987
|
pgas = np.zeros(Nspace)
|
|
988
988
|
rho = np.zeros(Nspace)
|
|
989
989
|
for k in range(Nspace):
|
|
@@ -991,19 +991,19 @@ class Atmosphere:
|
|
|
991
991
|
rho[k] = eos.rho_from_pe(temperature[k], pe[k])
|
|
992
992
|
elif Pgas is None and Pe is None:
|
|
993
993
|
# Doing Hydrostatic Eq. based here on NICOLE implementation
|
|
994
|
-
gravAcc = 10**logG
|
|
994
|
+
gravAcc = ((10**logG) << u.Unit('m s-2')).to('cm s-2').value
|
|
995
995
|
Avog = 6.022045e23 # Avogadro's Number
|
|
996
996
|
if Ptop is None and PeTop is not None:
|
|
997
997
|
if verbose:
|
|
998
998
|
print(('Setting ne, nHTot to hydrostatic equilibrium (logG=%f)'
|
|
999
999
|
' from provided top electron pressure.') % logG)
|
|
1000
|
-
PeTop
|
|
1000
|
+
PeTop = (PeTop << u.Unit("Pa")).to('dyn cm-2').value
|
|
1001
1001
|
Ptop = eos.pg_from_pe(temperature[0], PeTop)
|
|
1002
1002
|
elif Ptop is not None and PeTop is None:
|
|
1003
1003
|
if verbose:
|
|
1004
1004
|
print(('Setting ne, nHTot to hydrostatic equilibrium (logG=%f)'
|
|
1005
1005
|
' from provided top gas pressure.') % logG)
|
|
1006
|
-
Ptop
|
|
1006
|
+
Ptop = (Ptop << u.Unit("Pa")).to('dyn cm-2').value
|
|
1007
1007
|
PeTop = eos.pe_from_pg(temperature[0], Ptop)
|
|
1008
1008
|
elif Ptop is None and PeTop is None:
|
|
1009
1009
|
if verbose:
|
|
@@ -1017,9 +1017,9 @@ class Atmosphere:
|
|
|
1017
1017
|
if scale == ScaleType.Tau500:
|
|
1018
1018
|
tau = depthScale
|
|
1019
1019
|
elif scale == ScaleType.Geometric:
|
|
1020
|
-
height = depthScale
|
|
1020
|
+
height = (depthScale << u.Unit('m')).to('cm').value
|
|
1021
1021
|
else:
|
|
1022
|
-
cmass = depthScale
|
|
1022
|
+
cmass = (depthScale << u.Unit('kg m-2')).to('g cm-2').value
|
|
1023
1023
|
|
|
1024
1024
|
# NOTE(cmo): Compute HSE following the NICOLE method.
|
|
1025
1025
|
rho = np.zeros(Nspace)
|
|
@@ -1066,14 +1066,14 @@ class Atmosphere:
|
|
|
1066
1066
|
else:
|
|
1067
1067
|
raise ConvergenceError(('No convergence in HSE at depth point %d, '
|
|
1068
1068
|
'last change %2.4e') % (k, change))
|
|
1069
|
-
nHTot = np.copy(rho
|
|
1069
|
+
nHTot = np.copy((rho << u.Unit('g cm-3')).to('kg m-3').value
|
|
1070
1070
|
/ (Const.Amu * abundance.massPerH))
|
|
1071
|
-
ne = np.copy(pe / (cgs.BK * temperature)
|
|
1071
|
+
ne = np.copy(((pe / (cgs.BK * temperature)) << u.Unit('cm-3')).to('m-3').value)
|
|
1072
1072
|
|
|
1073
1073
|
# NOTE(cmo): Compute final pgas, pe from EOS that will be used for
|
|
1074
1074
|
# background opacity.
|
|
1075
1075
|
rhoSI = Const.Amu * abundance.massPerH * nHTot
|
|
1076
|
-
rho =
|
|
1076
|
+
rho = (rhoSI << u.Unit('kg m-3')).to('g cm-3').value
|
|
1077
1077
|
pgas = np.zeros_like(depthScale)
|
|
1078
1078
|
pe = np.zeros_like(depthScale)
|
|
1079
1079
|
for k in range(Nspace):
|
|
@@ -1083,7 +1083,8 @@ class Atmosphere:
|
|
|
1083
1083
|
chi_c = np.zeros_like(depthScale)
|
|
1084
1084
|
for k in range(depthScale.shape[0]):
|
|
1085
1085
|
chi_c[k] = eos.cont_opacity(temperature[k], pgas[k], pe[k],
|
|
1086
|
-
np.array([5000.0])).item()
|
|
1086
|
+
np.array([5000.0])).item()
|
|
1087
|
+
chi_c = (chi_c << u.Unit('cm')).to('m').value
|
|
1087
1088
|
|
|
1088
1089
|
# NOTE(cmo): We should now have a uniform minimum set of data (other
|
|
1089
1090
|
# than the scale type), allowing us to simply convert between the
|
|
@@ -1299,22 +1300,23 @@ class Atmosphere:
|
|
|
1299
1300
|
if verbose:
|
|
1300
1301
|
print('Setting nHTot from electron pressure.')
|
|
1301
1302
|
flatNe = view_flatten(ne)
|
|
1302
|
-
pe = flatNe
|
|
1303
|
+
pe = (flatNe << u.Unit('m-3')).to('cm-3').value * cgs.BK * flatTemperature
|
|
1303
1304
|
rho = np.zeros(Nspace)
|
|
1304
1305
|
for k in range(Nspace):
|
|
1305
1306
|
rho[k] = eos.rho_from_pe(flatTemperature[k], pe[k])
|
|
1306
|
-
nHTot = np.
|
|
1307
|
-
|
|
1307
|
+
nHTot = np.ascontiguousarray(
|
|
1308
|
+
(rho << u.Unit('g cm-3')).to('kg m-3').value
|
|
1309
|
+
/ (Const.Amu * abundance.massPerH)
|
|
1310
|
+
)
|
|
1308
1311
|
elif ne is None and nHTot is not None:
|
|
1309
1312
|
if verbose:
|
|
1310
1313
|
print('Setting ne from mass density.')
|
|
1311
1314
|
flatNHTot = view_flatten(nHTot)
|
|
1312
|
-
rho = (Const.Amu * abundance.massPerH * flatNHTot
|
|
1313
|
-
* Const.CM_TO_M**3 / Const.G_TO_KG)
|
|
1315
|
+
rho = ((Const.Amu * abundance.massPerH * flatNHTot) << u.Unit('kg m-3')).to('g cm-3').value
|
|
1314
1316
|
pe = np.zeros(Nspace)
|
|
1315
1317
|
for k in range(Nspace):
|
|
1316
1318
|
pe[k] = eos.pe_from_rho(flatTemperature[k], rho[k])
|
|
1317
|
-
ne = np.
|
|
1319
|
+
ne = np.ascontiguousarray(((pe / (cgs.BK * flatTemperature)) << u.Unit('cm-3')).to('m-3').value)
|
|
1318
1320
|
elif ne is None and nHTot is None:
|
|
1319
1321
|
raise ValueError('Cannot omit both ne and nHTot (currently).')
|
|
1320
1322
|
flatX = view_flatten(x)
|
lightweaver/atomic_model.py
CHANGED
lightweaver/atomic_table.py
CHANGED
|
@@ -635,7 +635,7 @@ class KuruczPfTable:
|
|
|
635
635
|
self.Tpf.shape[0]))
|
|
636
636
|
ionpot.append(np.array(u.unpack_farray(stages[-1], u.unpack_double)))
|
|
637
637
|
|
|
638
|
-
ionpot = [i * Const.
|
|
638
|
+
ionpot = [i * Const.HC_CM for i in ionpot]
|
|
639
639
|
pf = [np.log(p) for p in pf]
|
|
640
640
|
self.pf = pf
|
|
641
641
|
self.ionpot = ionpot
|
lightweaver/barklem.py
CHANGED
|
@@ -113,8 +113,8 @@ class Barklem:
|
|
|
113
113
|
while atom.levels[ic].stage < atom.levels[j].stage + 1:
|
|
114
114
|
ic += 1
|
|
115
115
|
|
|
116
|
-
deltaEi = (atom.levels[ic].E - atom.levels[i].E) * Const.
|
|
117
|
-
deltaEj = (atom.levels[ic].E - atom.levels[j].E) * Const.
|
|
116
|
+
deltaEi = (atom.levels[ic].E - atom.levels[i].E) * Const.HC_CM
|
|
117
|
+
deltaEj = (atom.levels[ic].E - atom.levels[j].E) * Const.HC_CM
|
|
118
118
|
E_Rydberg = Const.ERydberg / (1.0 + Const.MElectron
|
|
119
119
|
/ (atom.element.mass * Const.Amu))
|
|
120
120
|
|
lightweaver/broadening.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from dataclasses import dataclass, field
|
|
2
2
|
from typing import TYPE_CHECKING, Any, List, Optional, Sequence
|
|
3
3
|
|
|
4
|
+
import astropy.units as u
|
|
4
5
|
import numpy as np
|
|
5
6
|
|
|
6
7
|
import lightweaver.constants as Const
|
|
@@ -507,10 +508,10 @@ class HydrogenLinearStarkBroadening(StandardLineBroadener):
|
|
|
507
508
|
nLower = int(np.round(np.sqrt(0.5*self.line.iLevel.g)))
|
|
508
509
|
|
|
509
510
|
a1 = 0.642 if nUpper - nLower == 1 else 1.0
|
|
510
|
-
C = a1 * 0.6 * (nUpper**2 - nLower**2)
|
|
511
|
+
C = a1 * 0.6 * (nUpper**2 - nLower**2)
|
|
511
512
|
if not self.reproduceOldRHBug:
|
|
512
513
|
C *= 4.0 * np.pi * 0.425
|
|
513
|
-
GStark = C * atmos.ne**(2.0/3.0)
|
|
514
|
+
GStark = C * u.Unit('m-2').to('cm-2') * atmos.ne**(2.0/3.0)
|
|
514
515
|
return GStark
|
|
515
516
|
|
|
516
517
|
@dataclass(eq=False)
|
lightweaver/collisional_rates.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from dataclasses import dataclass, field
|
|
2
2
|
from typing import TYPE_CHECKING, Sequence, cast
|
|
3
3
|
|
|
4
|
+
import astropy.units as u
|
|
4
5
|
import numpy as np
|
|
5
6
|
from numba import njit
|
|
6
7
|
from scipy.special import exp1
|
|
@@ -283,7 +284,7 @@ class Ar85Cdi(CollisionalRates):
|
|
|
283
284
|
|
|
284
285
|
fxj *= fac
|
|
285
286
|
fac = 6.69e-7 / cdi[m, 0]**1.5
|
|
286
|
-
Cup += fac * fxj
|
|
287
|
+
Cup += fac * (fxj << u.Unit('cm3')).to('m3').value
|
|
287
288
|
Cup[Cup < 0] = 0.0
|
|
288
289
|
|
|
289
290
|
Cup *= atmos.ne
|
|
@@ -327,7 +328,7 @@ class Burgess(CollisionalRates):
|
|
|
327
328
|
wlog = np.log(1.0 + invdEkT)
|
|
328
329
|
wb = wlog**(betaB / (1.0 + invdEkT))
|
|
329
330
|
Cup = (2.1715e-8 * cbar * (13.6/dE)**1.5 * np.sqrt(dEkT)
|
|
330
|
-
* exp1(dEkT) * wb * atmos.ne
|
|
331
|
+
* exp1(dEkT) * wb * (atmos.ne << u.Unit('m-3')).to('cm-3').value)
|
|
331
332
|
|
|
332
333
|
Cup *= self.fudge
|
|
333
334
|
Cdown = Cup * nstar[self.i, :] / nstar[self.j, :]
|
lightweaver/constants.py
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
CLight = 2.99792458E+08 # Speed of light [m/s] */
|
|
3
3
|
HPlanck = 6.6260755E-34 # Planck's constant [Js] */
|
|
4
4
|
HC = HPlanck * CLight
|
|
5
|
+
HC_CM = HC * 1e2 # HC with c in cm/s, for wavenumbers as cm-1
|
|
5
6
|
KBoltzmann = 1.380658E-23 # Boltzman's constant [J/K] */
|
|
6
7
|
Amu = 1.6605402E-27 # Atomic mass unit [kg] */
|
|
7
8
|
MElectron = 9.1093897E-31 # Electron mass [kg] */
|
|
@@ -16,12 +17,6 @@ ABarH = 7.42E-41 # polarizability of Hydrogen [Fm^2]
|
|
|
16
17
|
E_ION_HMIN = 0.754*EV
|
|
17
18
|
|
|
18
19
|
NM_TO_M = 1.0E-09
|
|
19
|
-
CM_TO_M = 1.0E-02
|
|
20
|
-
KM_TO_M = 1.0E+03
|
|
21
|
-
ERG_TO_JOULE = 1.0E-07
|
|
22
|
-
G_TO_KG = 1.0E-03
|
|
23
|
-
MICRON_TO_NM = 1.0E+03
|
|
24
|
-
MEGABARN_TO_M2 = 1.0E-22
|
|
25
20
|
|
|
26
21
|
VMICRO_CHAR=3.0e3
|
|
27
22
|
B_CHAR=0.0 #TESLA
|
lightweaver/fal.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from typing import Callable
|
|
2
2
|
|
|
3
|
+
import astropy.units as u
|
|
3
4
|
import numpy as np
|
|
4
5
|
|
|
5
6
|
import lightweaver.constants as Const
|
|
@@ -428,4 +429,12 @@ nh = np.array([
|
|
|
428
429
|
[1.2887E+17, 1.7545E+12, 3.8349E+11, 3.0146E+11, 3.2285E+11, 3.7897E+15],
|
|
429
430
|
]).T
|
|
430
431
|
|
|
431
|
-
Falc82: Callable[[], Atmosphere] = lambda: Atmosphere.make_1d(
|
|
432
|
+
Falc82: Callable[[], Atmosphere] = lambda: Atmosphere.make_1d(
|
|
433
|
+
ScaleType.ColumnMass,
|
|
434
|
+
depthScale=(cmass << u.Unit('g cm-2')).to('kg m-2').value,
|
|
435
|
+
temperature=np.copy(temp),
|
|
436
|
+
ne=(ne << u.Unit('cm-3')).to('m-3').value,
|
|
437
|
+
vlos=(vel << u.Unit('km/s')).to('m/s').value,
|
|
438
|
+
vturb=(vturb << u.Unit('km/s')).to('m/s').value,
|
|
439
|
+
hydrogenPops=(nh << u.Unit('cm-3')).to('m-3').value,
|
|
440
|
+
)
|
lightweaver/libenkiTS.pyd
CHANGED
|
Binary file
|
lightweaver/molecule.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from collections import OrderedDict
|
|
2
2
|
from typing import List, Optional, Tuple, Union
|
|
3
3
|
|
|
4
|
+
import astropy.units as u
|
|
4
5
|
import numpy as np
|
|
5
6
|
from numba import njit
|
|
6
7
|
from parse import parse
|
|
@@ -36,7 +37,7 @@ def equilibrium_constant_kurucz_70(tempRange, mk, Ediss, eqc):
|
|
|
36
37
|
minTemp = tempRange[0]
|
|
37
38
|
maxTemp = tempRange[1]
|
|
38
39
|
kB = Const.KBoltzmann
|
|
39
|
-
CM_TO_M =
|
|
40
|
+
CM_TO_M = u.Unit('cm').to('m')
|
|
40
41
|
|
|
41
42
|
@njit('float64(float64)')
|
|
42
43
|
def kurucz_70(T):
|
|
@@ -56,7 +57,7 @@ def equilibrium_constant_kurucz_85(tempRange, mk, Ediss, eqc):
|
|
|
56
57
|
minTemp = tempRange[0]
|
|
57
58
|
maxTemp = tempRange[1]
|
|
58
59
|
kB = Const.KBoltzmann
|
|
59
|
-
CM_TO_M =
|
|
60
|
+
CM_TO_M = u.Unit('cm').to('m')
|
|
60
61
|
|
|
61
62
|
@njit('float64(float64)')
|
|
62
63
|
def kurucz_85(T):
|
|
@@ -76,7 +77,6 @@ def equilibrium_constant_sauval_tatum(tempRange, Ediss, eqc):
|
|
|
76
77
|
minTemp = tempRange[0]
|
|
77
78
|
maxTemp = tempRange[1]
|
|
78
79
|
kB = Const.KBoltzmann
|
|
79
|
-
CM_TO_M = Const.CM_TO_M
|
|
80
80
|
THETA0 = Const.Theta0
|
|
81
81
|
Ediss = Ediss / Const.EV
|
|
82
82
|
|
lightweaver/multi.py
CHANGED
|
@@ -2,6 +2,7 @@ import re
|
|
|
2
2
|
from dataclasses import dataclass
|
|
3
3
|
from typing import Tuple
|
|
4
4
|
|
|
5
|
+
import astropy.units as u
|
|
5
6
|
import numpy as np
|
|
6
7
|
|
|
7
8
|
import lightweaver.constants as C
|
|
@@ -75,19 +76,19 @@ def read_multi_atmos(filename: str) -> Tuple[MultiMetadata, Atmosphere]:
|
|
|
75
76
|
scaleMode = scaleStr[0].upper()
|
|
76
77
|
if scaleMode == 'M':
|
|
77
78
|
scaleType = ScaleType.ColumnMass
|
|
78
|
-
dscale = 10**dscale
|
|
79
|
+
dscale = ((10**dscale) << u.Unit('g cm-2')).to('kg m-2').value
|
|
79
80
|
elif scaleMode == 'T':
|
|
80
81
|
scaleType = ScaleType.Tau500
|
|
81
82
|
dscale = 10**dscale
|
|
82
83
|
elif scaleMode == 'H':
|
|
83
84
|
scaleType = ScaleType.Geometric
|
|
84
|
-
dscale
|
|
85
|
+
dscale = (dscale << u.Unit('km')).to('m').value
|
|
85
86
|
else:
|
|
86
87
|
raise ValueError('Unknown scale type: %s (expected M, T, or H)' % scaleStr)
|
|
87
88
|
|
|
88
|
-
vlos
|
|
89
|
-
vturb
|
|
90
|
-
ne
|
|
89
|
+
vlos = (vlos << u.Unit('km s-1')).to('m s-1').value
|
|
90
|
+
vturb = (vturb << u.Unit('km s-1')).to('m s-1').value
|
|
91
|
+
ne = (ne << u.Unit('cm-3')).to('m-3').value
|
|
91
92
|
|
|
92
93
|
if len(lines) <= Nspace:
|
|
93
94
|
raise ValueError('Hydrogen populations not supplied!')
|
|
@@ -98,7 +99,7 @@ def read_multi_atmos(filename: str) -> Tuple[MultiMetadata, Atmosphere]:
|
|
|
98
99
|
vals = [float(v) for v in vals]
|
|
99
100
|
hPops[:, k] = vals
|
|
100
101
|
|
|
101
|
-
hPops
|
|
102
|
+
hPops = (hPops << u.Unit('cm-3')).to('m-3').value
|
|
102
103
|
|
|
103
104
|
meta = MultiMetadata(atmosName, logG)
|
|
104
105
|
atmos = Atmosphere.make_1d(scale=scaleType,
|
lightweaver/version.py
CHANGED
|
@@ -17,5 +17,5 @@ __version__: str
|
|
|
17
17
|
__version_tuple__: VERSION_TUPLE
|
|
18
18
|
version_tuple: VERSION_TUPLE
|
|
19
19
|
|
|
20
|
-
__version__ = version = '0.14.
|
|
21
|
-
__version_tuple__ = version_tuple = (0, 14,
|
|
20
|
+
__version__ = version = '0.14.2rc1'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 14, 2, 'rc1')
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
lightweaver/LwCompiled.cp310-win_amd64.pdb,sha256=
|
|
2
|
-
lightweaver/LwCompiled.cp310-win_amd64.pyd,sha256=
|
|
1
|
+
lightweaver/LwCompiled.cp310-win_amd64.pdb,sha256=kbFSNj5JOrRIMZiqvv4DfczOXKCO73DM3-Dqp9gbtss,11603968
|
|
2
|
+
lightweaver/LwCompiled.cp310-win_amd64.pyd,sha256=5C18ouQ4CswKZOzCqKq4LineaqykQQWTI7FC_kPT0UA,1667072
|
|
3
3
|
lightweaver/__init__.py,sha256=H7soQn8gi2nuSnVBqoMFEUH8oCzdBnKavpfb6s0J9Sw,1630
|
|
4
|
-
lightweaver/atmosphere.py,sha256=
|
|
5
|
-
lightweaver/atomic_model.py,sha256=
|
|
4
|
+
lightweaver/atmosphere.py,sha256=NdKHjpbe63WCzrt0jhbOLSk6wIBg2zFzV_0VDllMrFY,65912
|
|
5
|
+
lightweaver/atomic_model.py,sha256=T72Rb4yiHro0kmlTVTj9Y_LLwJmtfjVgzK2OZGapbF4,27715
|
|
6
6
|
lightweaver/atomic_set.py,sha256=3je5mxOKJu1wLNqSKYNpvX5PD5H75sJZ7y_Lz4haAZ4,49318
|
|
7
|
-
lightweaver/atomic_table.py,sha256=
|
|
8
|
-
lightweaver/barklem.py,sha256=
|
|
7
|
+
lightweaver/atomic_table.py,sha256=Q1dZXdPAUKorlCRsteZfLGNIuBug6gDWlEa6y2Y87z4,21677
|
|
8
|
+
lightweaver/barklem.py,sha256=s2xJgc1vRP1ZsHmO4qbw5pA1gOE1iV1uZ89kErC4cLM,5686
|
|
9
9
|
lightweaver/benchmark.py,sha256=V-AQ4AVho5iimqmfmDjM0_0nxcbRLCxQnPuti0G0h4s,4114
|
|
10
|
-
lightweaver/broadening.py,sha256=
|
|
11
|
-
lightweaver/collisional_rates.py,sha256=
|
|
10
|
+
lightweaver/broadening.py,sha256=QL0wBZq8UmRH859hD-nqZ2_VEjaWZ-C35pV6gky1rKI,19788
|
|
11
|
+
lightweaver/collisional_rates.py,sha256=LrvpvCLipUGIErnWm8sCNjWZF8sZmsIRcR5ZhzI8lFQ,11772
|
|
12
12
|
lightweaver/config.py,sha256=maB1SleftUdoHGSJ7TLst0qs98qzszU1duk9U9PVhFo,3401
|
|
13
|
-
lightweaver/constants.py,sha256=
|
|
13
|
+
lightweaver/constants.py,sha256=zCqydpItKKf_v1fgdk5TXMC_LPVGpfJZj9ur6gPsJcE,963
|
|
14
14
|
lightweaver/crtaf.py,sha256=4ApcidO2bLT6w8sqOHlyfg8uTCjXRqWZlFKCWVvdwzo,8519
|
|
15
|
-
lightweaver/fal.py,sha256=
|
|
15
|
+
lightweaver/fal.py,sha256=I1BGWjKJOB2kSMjqCXnf5ov2MOd2HLIj7ftcDPD-18s,12277
|
|
16
16
|
lightweaver/iterate_ctx.py,sha256=qrY912jmL4B5fLpe8FL3TNKymDxqSfNWugxPtQJFRDo,9594
|
|
17
17
|
lightweaver/iteration_update.py,sha256=AxLHOYElhLDCIt27n05okaLqvHysYdUJ0uRxp4wI3Ww,4896
|
|
18
18
|
lightweaver/libenkiTS.exp,sha256=U4wlbfNcpY3HyIOAKGR9wpXhfaQ2TIyJNIpKxFOM_v0,7324
|
|
19
19
|
lightweaver/libenkiTS.lib,sha256=GxVs7w4sRvz6AFMOIWbL_zHH6pjhOeaWcfGTt_1pB1c,12756
|
|
20
|
-
lightweaver/libenkiTS.pyd,sha256=
|
|
21
|
-
lightweaver/molecule.py,sha256=
|
|
22
|
-
lightweaver/multi.py,sha256=
|
|
20
|
+
lightweaver/libenkiTS.pyd,sha256=ckbQ7kRQ79y4BSmdzFqICF3w1Or-Hj0LnivX69pwaEw,27648
|
|
21
|
+
lightweaver/molecule.py,sha256=1--50JHO4dMNjxCASdsKWw6xo1YMNCXNpCpvbGS1QGM,7725
|
|
22
|
+
lightweaver/multi.py,sha256=pK9hdoA4sJcTki4xUQtDdFBWW43ZSwN9rQuXVc3F608,3411
|
|
23
23
|
lightweaver/nr_update.py,sha256=E97_M_rSVGWVB1f4xP0bSUozQ3s9km3RoqrRxjNaUo4,4545
|
|
24
24
|
lightweaver/rh_atoms.py,sha256=HrQwKjLR2Qr7TWlIh4X2H94i1vTiYv1L7YIcPJRPmAU,4451814
|
|
25
25
|
lightweaver/simd_management.py,sha256=0YkgGTb5GaafRtbka8wPBWAIoDhUkkumqLVNQESpx20,1475
|
|
26
26
|
lightweaver/utils.py,sha256=hrtp9HjYp3rN1k0mxOCtze8uIsuwEg6WBneiyoF63xI,17031
|
|
27
|
-
lightweaver/version.py,sha256=
|
|
27
|
+
lightweaver/version.py,sha256=EwF_hTDOXJZdgRn28Ro1j8PN8vkmbGnvrZngYZm1VNM,544
|
|
28
28
|
lightweaver/wittmann.py,sha256=UEOCyeO5AQdpI2keqhFHJV9n4EWIoEDqV29OjEVl09o,46788
|
|
29
29
|
lightweaver/zeeman.py,sha256=_ETVvjcAFIAdkJH5k_WsSvTNckUJMlu7w12L46-aaLE,5908
|
|
30
30
|
lightweaver/Data/AbundancesAsplund09.pickle,sha256=SkgRSYCmYHp8pEZNsC7qotTlKE4xVrUClDOOWAm0PmI,13810
|
|
@@ -62,14 +62,14 @@ lightweaver/Data/DefaultMolecules/CH/CH_X-C_12.asc,sha256=0bHU-qGnqtPp1tkmlhS4QA
|
|
|
62
62
|
lightweaver/Data/DefaultMolecules/CO/vmax=3_Jmax=49_dv=1_26,sha256=mOIj7mxR7ulwGk31ez-OHbpXiFD3FotwiF2nWODNAcg,22694
|
|
63
63
|
lightweaver/Data/DefaultMolecules/CO/vmax=9_Jmax=120_dv=1_26,sha256=gnJpCqD9QgwkcCslbeQQaJcSsGt7bs4EDeoM5RkS2Is,166379
|
|
64
64
|
lightweaver/DefaultIterSchemes/.placeholder,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
65
|
-
lightweaver/DefaultIterSchemes/SimdImpl_AVX2FMA.cp310-win_amd64.pdb,sha256=
|
|
66
|
-
lightweaver/DefaultIterSchemes/SimdImpl_AVX2FMA.cp310-win_amd64.pyd,sha256=
|
|
67
|
-
lightweaver/DefaultIterSchemes/SimdImpl_AVX512.cp310-win_amd64.pdb,sha256=
|
|
68
|
-
lightweaver/DefaultIterSchemes/SimdImpl_AVX512.cp310-win_amd64.pyd,sha256=
|
|
69
|
-
lightweaver/DefaultIterSchemes/SimdImpl_SSE2.cp310-win_amd64.pdb,sha256=
|
|
70
|
-
lightweaver/DefaultIterSchemes/SimdImpl_SSE2.cp310-win_amd64.pyd,sha256=
|
|
71
|
-
lightweaver-0.14.
|
|
72
|
-
lightweaver-0.14.
|
|
73
|
-
lightweaver-0.14.
|
|
74
|
-
lightweaver-0.14.
|
|
75
|
-
lightweaver-0.14.
|
|
65
|
+
lightweaver/DefaultIterSchemes/SimdImpl_AVX2FMA.cp310-win_amd64.pdb,sha256=_DTFUCnCZgRqmzokotPZKPdeiKfEcKkvJjhiUKrF5X0,7720960
|
|
66
|
+
lightweaver/DefaultIterSchemes/SimdImpl_AVX2FMA.cp310-win_amd64.pyd,sha256=FbAIIzmmfSsinyMagP3mIepuZOI3Shbs1i2VM293594,998400
|
|
67
|
+
lightweaver/DefaultIterSchemes/SimdImpl_AVX512.cp310-win_amd64.pdb,sha256=zU6IuVS8b-PmAuHuEwb2x27Zav9Wipmh72Ra0gxnmLQ,7802880
|
|
68
|
+
lightweaver/DefaultIterSchemes/SimdImpl_AVX512.cp310-win_amd64.pyd,sha256=8zALSAfcdbUj2W-HmJoa5heO7yIsb4JD93Yc-l5Bw8g,1046016
|
|
69
|
+
lightweaver/DefaultIterSchemes/SimdImpl_SSE2.cp310-win_amd64.pdb,sha256=18_Z5edfy8bIV5Jp-ZnOi2XTJUle4PGF-Nzt2D19eYo,7671808
|
|
70
|
+
lightweaver/DefaultIterSchemes/SimdImpl_SSE2.cp310-win_amd64.pyd,sha256=HEwcCxMYqODhlxs4gagDWykM64kduxJ10cqCF6Vr0Hc,973824
|
|
71
|
+
lightweaver-0.14.2rc1.dist-info/licenses/LICENSE,sha256=nAwKFYOi3C0HlWsbAbErqfFsTYWo1Jtn3h3sFoqn1xo,1101
|
|
72
|
+
lightweaver-0.14.2rc1.dist-info/METADATA,sha256=ZrclHgHARJGe48PLt7pODMt6n1CSt_8TJU6uPqK7iNM,4302
|
|
73
|
+
lightweaver-0.14.2rc1.dist-info/WHEEL,sha256=KUuBC6lxAbHCKilKua8R9W_TM71_-9Sg5uEP3uDWcoU,101
|
|
74
|
+
lightweaver-0.14.2rc1.dist-info/top_level.txt,sha256=TqtjW3ntlT7MIESoNNYcnSCgDEaBQzYOpiz1UfqalfU,12
|
|
75
|
+
lightweaver-0.14.2rc1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|