Graph Framework
Loading...
Searching...
No Matches
dispersion::cold_plasma< T, SAFE_MATH > Class Template Reference

Cold Plasma Disperison function. More...

#include <dispersion.hpp>

Inheritance diagram for dispersion::cold_plasma< T, SAFE_MATH >:
dispersion::physics< T, SAFE_MATH > dispersion::dispersion_function< T, SAFE_MATH >

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

- Public Types inherited from dispersion::dispersion_function< T, SAFE_MATH >
typedef T base
 Type def to retrieve the backend base type.
 
- Static Public Attributes inherited from dispersion::dispersion_function< T, SAFE_MATH >
static constexpr bool safe_math = SAFE_MATH
 Retrieve template parameter of safe math.
 
- Protected Attributes inherited from dispersion::physics< T, 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.
 

Detailed Description

template<jit::float_scalar T, bool SAFE_MATH = false>
class dispersion::cold_plasma< T, SAFE_MATH >

Cold Plasma Disperison function.

Template Parameters
TBase type of the calculation.
SAFE_MATHUse Safe Math operations.

Member Function Documentation

◆ D()

template<jit::float_scalar T, bool SAFE_MATH = false>
virtual graph::shared_leaf< T, SAFE_MATH > dispersion::cold_plasma< 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 
)
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)

Parameters
[in]wOmega variable.
[in]kxKx variable.
[in]kyKy variable.
[in]kzKz variable.
[in]xx variable.
[in]yy variable.
[in]zz variable.
[in]tCurrent time.
[in]eqThe plasma equilibrium.

Implements dispersion::dispersion_function< T, SAFE_MATH >.


The documentation for this class was generated from the following file: