-
Notifications
You must be signed in to change notification settings - Fork 117
Diffusion Processes
In general, there are two categories of diffusion processes that Athena++ can model:
- Hydrodynamic diffusion such as fluid viscosity and thermal conduction
- Field diffusion such as Ohmic dissipation and ambipolar diffusion
These four specific diffusion processes have been natively implemented in the code.
Users do not need to manually enable the diffusion solver during the configuration stage. These capabilities are automatically invoked when the runtime parameters specify nonzero coefficients.
However, certain diffusion processes depend on specific physics and will be ignored if the code is configured without the requisite options. For example, in order to calculate Ohmic dissipation and ambipolar diffusion, the magnetic field has to be enabled during configuration with -b
. Similarly, thermal conduction is calculated only when a non-barotropic equation of state is enabled when Configuring
The additional microphysics are enrolled automatically through the following optional input parameters:
<problem>
nu_iso = 0.01 # isotropic viscosity coefficient
nu_aniso = 0.0 # anisotropic viscosity coefficient
kappa_iso = 0.01 # isotropic thermal conduction coefficient
kappa_aniso = 0.0 # anisotropic thermal conduction coefficient
eta_ohm = 0.01 # Ohmic resistivity coefficient
eta_ad = 0.0 # Ambipolar diffusion coefficient
Positive coefficients invoke the calculation of the corresponding physical processes. We note the anisotropic viscosity and thermal conduction are not currently implemented in Athena++. However, users may define such processes in the Problem Generators and enroll functions via the Mesh::EnrollViscosityCoefficient()
, Mesh::EnrollConductionCoefficient()
, Mesh::EnrollFieldDiffusivity()
methods.
Currently all diffusion processes are calculated using the conservative quantities; the resulting diffusion fluxes are directly added to the total hydro and/or field fluxes in a non-operator-split fashion. In order to calculate the viscosity stress tensor, we make use of the covariant derivative of vectors, with the help of geometric scale factors and their derivatives. Please see Covariant Expressions for Vector and Tensor Operators for a summary of the general expressions and a table of the scale factors used in the code.
Getting Started
User Guide
- Configuring
- Compiling
- The Input File
- Problem Generators
- Boundary Conditions
- Coordinate Systems and Meshes
- Running the Code
- Outputs
- Using MPI and OpenMP
- Static Mesh Refinement
- Adaptive Mesh Refinement
- Load Balancing
- Special Relativity
- General Relativity
- Passive Scalars
- Shearing Box
- Diffusion Processes
- General Equation of State
- FFT
- High-Order Methods
- Super-Time-Stepping
- Orbital Advection
- Rotating System
- Reading Data from External Files
Programmer Guide