Source code for tofu._physics
import numpy as np
import scipy.constants as scpct
[docs]def compute_bremzeff(Te=None, ne=None, zeff=None, lamb=None):
""" Return the bremsstrahlun spectral radiance at lamb
The plasma conditions are set by:
- Te (eV)
- ne (/m3)
- zeff (adim.)
The wavelength is set by the diagnostics
- lamb (m)
The vol. spectral emis. is returned in ph / (s.m3.sr.m)
The computation requires an intermediate : gff(Te, zeff)
"""
ktkeV = Te * 1.e-3
ktJ = Te * scpct.e
gff = 5.54 - (3.11-np.log(ktkeV))*(0.69-0.13/zeff)
Const = ((scpct.e**6/(scpct.h*scpct.c**3*(np.pi*scpct.epsilon_0)**3))
* np.sqrt(np.pi/(864.*scpct.m_e**3)))
hc = scpct.h*scpct.c
emis = Const/lamb * ne**2*zeff * np.exp(-hc/(lamb*ktJ)) * gff/np.sqrt(ktJ)
units = r'ph / (s.m3.sr.m)'
return emis, units
[docs]def compute_fangle(BR=None, BPhi=None, BZ=None, ne=None, lamb=None):
""" The the vector quantity to be integrated on LOS to get faraday angle
fangle = int_LOS ( abs(sca(quant, u_LOS)) )
Where:
quant = C * lamb**2 * ne * Bv
With:
- C = 2.615e-13 (1/T)
- ne (/m3)
- lamb (m)
- Bv (T)
The resulting faraday angle (after integration) will be in radians
"""
const = scpct.e**3 / (8.*scpct.pi**2
* scpct.epsilon_0 * scpct.m_e**2 * scpct.c**3)
quant = const * lamb**2 * ne * np.array([BR, BPhi, BZ])
units = r'rad / m'
return quant, units