Graph Framework
|
Cold Plasma Disperison function. More...
#include <dispersion.hpp>
Public Member Functions | |
virtual graph::shared_leaf< T, SAFE_MATH > | D (graph::shared_leaf< T, SAFE_MATH > w, graph::shared_leaf< T, SAFE_MATH > kx, graph::shared_leaf< T, SAFE_MATH > ky, graph::shared_leaf< T, SAFE_MATH > kz, graph::shared_leaf< T, SAFE_MATH > x, graph::shared_leaf< T, SAFE_MATH > y, graph::shared_leaf< T, SAFE_MATH > z, graph::shared_leaf< T, SAFE_MATH > t, equilibrium::shared< T, SAFE_MATH > &eq) |
Cold Plasma Disperison function. | |
Additional Inherited Members | |
![]() | |
typedef T | base |
Type def to retrieve the backend base type. | |
![]() | |
static constexpr bool | safe_math = SAFE_MATH |
Retrieve template parameter of safe math. | |
![]() | |
const T | epsion0 = 8.8541878138E-12 |
Vacuum permitivity. | |
const T | mu0 = M_PI*4.0E-7 |
Vacuum permeability. | |
const T | q = 1.602176634E-19 |
Fundamental charge. | |
const T | me = 9.1093837015E-31 |
Electron mass. | |
const T | c = static_cast<T> (1.0)/std::sqrt(epsion0*mu0) |
Speed of light. | |
Cold Plasma Disperison function.
T | Base type of the calculation. |
SAFE_MATH | Use Safe Math operations. |
|
inlinevirtual |
Cold Plasma Disperison function.
D = Det[ϵ + nn - n^2I] (1)
[ ϵ_11 ϵ_12 0 ]
ϵ = [ -ϵ_12 ϵ_11 0 ] (2) [ 0 0 ϵ_33 ]
s represents each plasma species.
ϵ_11 = 1 - Σ_s ɑ(s)^2/(1 - ɣ(s)^2) (3) ϵ_12 = -iΣ_s ɣ(s)ɑ(s)^2/(1 - ɣ(s)^2) (4) ϵ_33 = 1 - Σ_s ɑ(s)^2
ɑ(s) is the normalized plasma frequency for a plasma species and ɣ(s) is the normalized cyclotron frequency for each species. Note that electrons have a negative charge.
ɑ = ⍵_p/⍵ (5) ɣ = Ω_c/⍵ (6)
The plasma frequency is defined as
⍵_p^2 = n*q^2/ϵ0m (7) Ω_c = qB/m (8)
[in] | w | Omega variable. |
[in] | kx | Kx variable. |
[in] | ky | Ky variable. |
[in] | kz | Kz variable. |
[in] | x | x variable. |
[in] | y | y variable. |
[in] | z | z variable. |
[in] | t | Current time. |
[in] | eq | The plasma equilibrium. |
Implements dispersion::dispersion_function< T, SAFE_MATH >.