Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
>>> fundamental_electron_collision_freq(0.1 * u.eV, 1e6 / u.m ** 3, 'p', V = c / 100)
>>> fundamental_electron_collision_freq(100 * u.eV, 1e20 / u.m ** 3, 'p', coulomb_log = 20)
See Also
--------
collision_frequency
fundamental_ion_collision_freq
"""
# specify to use electron thermal velocity (most probable), not based on reduced mass
V = _replaceNanVwithThermalV(V, T_e, m_e)
species = [ion, "e-"]
Z_i = particles.integer_charge(ion)
nu = collision_frequency(
T_e, n_e, species, z_mean=Z_i, V=V, method=coulomb_log_method
)
coeff = 4 / np.sqrt(np.pi) / 3
# accounting for when a Coulomb logarithm value is passed
if np.any(coulomb_log):
cLog = Coulomb_logarithm(
T_e, n_e, species, z_mean=Z_i, V=V, method=coulomb_log_method
)
# dividing out by typical Coulomb logarithm value implicit in
# the collision frequency calculation and replacing with
# the user defined Coulomb logarithm value
nu_mod = nu * coulomb_log / cLog
nu_e = coeff * nu_mod
else:
>>> fundamental_ion_collision_freq(100 * u.eV, 1e20 / u.m ** 3, 'p', coulomb_log=20)
See Also
--------
collision_frequency
fundamental_electron_collision_freq
"""
m_i = particles.particle_mass(ion)
species = [ion, ion]
# specify to use ion thermal velocity (most probable), not based on reduced mass
V = _replaceNanVwithThermalV(V, T_i, m_i)
Z_i = particles.integer_charge(ion)
nu = collision_frequency(
T_i, n_i, species, z_mean=Z_i, V=V, method=coulomb_log_method
)
# factor of 4 due to reduced mass in bperp and the rest is
# due to differences in definitions of collisional frequency
coeff = np.sqrt(8 / np.pi) / 3 / 4
# accounting for when a Coulomb logarithm value is passed
if np.any(coulomb_log):
cLog = Coulomb_logarithm(
T_i, n_i, species, z_mean=Z_i, V=V, method=coulomb_log_method
)
# dividing out by typical Coulomb logarithm value implicit in
# the collision frequency calculation and replacing with
# the user defined Coulomb logarithm value