Thermal Conduction
Documentation/UserGuide/Thermal Conduction
Both isotropic and anisotropic thermal conduction can be added. In either case, configure the code with
% configure --enable-conduction
Both are added at first-order via operator splitting.
The update is explicit in time, so that a very restrictive CFL constraint on the time step will be used.
Isotropic thermal conduction
Enable by setting a value for the coefficient of thermal diffusion kappa_iso
in the problem generator. For example, to read a value
from the <problem>
block in the input file, or to set a default value of zero if a value is not specified in the input file, add the line
kappa_iso = par_getd_def("problem","kappa_iso",0.0);
anywhere in the problem generator.
If the code detects kappa_iso > 0
, then thermal conduction will be applied. Currently kappa_iso
must be a constant.
If both kappa_iso
and kappa_aniso
(see below) are zero, the code assumes an error was made in initializing these constants, and aborts.
Anisotropic thermal conduction
In this case, the heat flux is parallel to the magnetic field lines. MHD must be enabled to use anisotropic thermal conduction.
Enable by setting a value for the coefficient of parallel thermal diffusion kappa_aniso
in the problem generator. For example, to read a value
from the <problem>
block in the input file, or to set a default value of zero if a value is not specified in the input file, add the line
kappa_aniso = par_getd_def("problem",kappa_aniso",0.0);
anywhere in the problem generator.
If the code detects kappa_aniso > 0
, then thermal conduction will be added. Currently kappa_aniso
must be a constant.
To add both non-zero parallel and isotropic thermal conduction, simply set values for both kappa_iso
and kappa_aniso
in the
problem generator.
If both kappa_iso
and kappa_aniso
are zero, and conduction is enabled, the code will terminate with an error message.
Units
Note the kappa’s are diffusivities, not conductivities. Also note the current implementation uses “dimensionless units” in that the factor (mbar/k_B) is not included in calculating the temperature (instead, T=P/d is used). For cgs units, kappa must be entered in units of (cm^2/s), and the heat fluxes calculated in the counduction functions would need to be multiplied by (k_B/mbar).