Graph Framework
|
Stiff dispersion 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) |
Stiff 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. | |
Stiff dispersion function.
T | Base type of the calculation. |
SAFE_MATH | Use Safe Math operations. |
|
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.
[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 >.