Braginskii coefficients

A short example of how to calculate classical transport coefficients from Bragiński’s theory.

from astropy import units as u
from plasmapy.physics.transport.braginskii import ClassicalTransport
import matplotlib.pyplot as plt
import numpy as np

We’ll use some sample ITER data, without much regard for whether the regime is even fit for classical transport theory:

thermal_energy_per_electron = 8.8 * u.keV
electron_concentration = 10.1e19 / u.m**3

thermal_energy_per_ion = 8.0 * u.keV
ion_concentration = electron_concentration
ion_particle = 'D+'  # a crude approximation

We now make the default ClassicalTransport object:

braginskii = ClassicalTransport(thermal_energy_per_electron,
                                electron_concentration,
                                thermal_energy_per_ion,
                                ion_concentration,
                                ion_particle)

These variables are calculated during initialization and can be referred to straight away:

print(braginskii.coulomb_log_ei)
print(braginskii.coulomb_log_ii)
print(braginskii.hall_e)
print(braginskii.hall_i)

Out:

18.015542122021248
20.415575220593944
0.0
0.0

These quantities are not calculated during initialization and can be referred to via methods. To signify the need to calculate them, we call them via ().

print(braginskii.resistivity())
print(braginskii.thermoelectric_conductivity())
print(braginskii.electron_thermal_conductivity())
print(braginskii.ion_thermal_conductivity())

Out:

1.1541382703097203e-09 m Ohm
0.7110839986207994
1065175728.2002094 W / (K m)
21360457.308099084 W / (K m)

They also change with magnetization:

mag_braginskii = ClassicalTransport(thermal_energy_per_electron,
                                    electron_concentration,
                                    thermal_energy_per_ion,
                                    ion_concentration,
                                    ion_particle,
                                    B = 0.1 * u.T)

print(mag_braginskii.resistivity())
print(mag_braginskii.thermoelectric_conductivity())
print(mag_braginskii.electron_thermal_conductivity())
print(mag_braginskii.ion_thermal_conductivity())

Out:

1.1541382703097203e-09 m Ohm
0.7110839986207994
1065175728.2002094 W / (K m)
21360457.308099084 W / (K m)

They also change with direction with respect to the magnetic field. Here, we choose to print out, as arrays, the (parallel, perpendicular, and cross) directions. Take a look at the docs to ClassicalTransport for more information on these.

all_direction_braginskii = ClassicalTransport(thermal_energy_per_electron,
                                    electron_concentration,
                                    thermal_energy_per_ion,
                                    ion_concentration,
                                    ion_particle,
                                    B = 0.1 * u.T,
                                    field_orientation = 'all')

print(all_direction_braginskii.resistivity())
print(all_direction_braginskii.thermoelectric_conductivity())
print(all_direction_braginskii.electron_thermal_conductivity())
print(all_direction_braginskii.ion_thermal_conductivity())

Out:

[1.15413827e-09 2.25078752e-09 1.39691620e-15] m Ohm
[7.11083999e-01 6.76687026e-13 5.46333111e-07]
[1.06517573e+09 2.08454840e-04 3.06780101e+02] W / (K m)
[2.13604573e+07 4.55135460e-03 2.78891001e+02] W / (K m)

The viscosities return arrays:

print(braginskii.electron_viscosity())
print(mag_braginskii.electron_viscosity())
print(braginskii.ion_viscosity())
print(mag_braginskii.ion_viscosity())

Out:

[16.29411384 16.28874814 16.28874814  0.          0.        ] Pa s
[1.62941138e+01 2.00486758e-25 8.01947034e-25 1.47444746e-12
 2.94889492e-12] Pa s
[1271.38947113 1267.52437439 1267.52437439    0.            0.        ] Pa s
[1.27138947e+03 6.88007817e-17 2.75203127e-16 2.75555924e-07
 5.51111848e-07] Pa s

Total running time of the script: ( 0 minutes 0.838 seconds)

Gallery generated by Sphinx-Gallery