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

Stiff dispersion function. More...

#include <dispersion.hpp>

Inheritance diagram for dispersion::stiff< 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)
 Stiff 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.
 

Detailed Description

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

Stiff dispersion 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::stiff< 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

Stiff function.

This is not really a dispersion function but is an example of a stiff system.

dx/dt = -1.0E3*(x - Exp(-t)) - Exp(-t) (1)

We need to figure out a disperison function D(w,k,x) such that

dx/dt = -(dD/dk)/(dD/dw) = -1.0E3*(x - Exp(-t)) - Exp(-t). (2)

If we assume,

D = (1.0E3*(x - Exp(-t)) - Exp(-t))*kx + w (3)

dD/dw = 1 (4)

dD/dkx = (1.0E3*(x - Exp(-t)) - Exp(-t)) (5)

This satisfies equations 1.

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: