Datatype for inplane operators
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| procedure(curvature_interface), | public, | pointer | :: | curvature | => | null() |
Curvature operator |
| procedure(curvature_interface), | public, | pointer | :: | curvature_sqrd | => | null() |
Curvature operator |
Initialises inplane operators
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(inplane_operators_t), | intent(inout) | :: | self |
Instance of the type |
||
| class(equilibrium_t), | intent(inout), | target | :: | equi |
Equilibrium |
|
| type(mesh_cart_t), | intent(inout), | target | :: | mesh |
Mesh |
|
| class(equilibrium_storage_t), | intent(inout), | target | :: | equi_on_mesh |
Equilibrim quantities on mesh |
|
| real(kind=GP), | intent(in) | :: | norm_scale | |||
| real(kind=GP), | intent(in) | :: | norm_flutter |
Evaluates derivative in x direction
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(inplane_operators_t), | intent(in) | :: | self |
Instance of the type |
||
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | u |
Values of variable u |
|
| integer, | intent(in) | :: | l |
Index, for which x-derivative shall be computed |
Evaluates derivative in y direction
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(inplane_operators_t), | intent(in) | :: | self |
Instance of the type |
||
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | u |
Values of variable u |
|
| integer, | intent(in) | :: | l |
Index, for which y-derivative shall be computed |
Evaluates J^(-1) d/dx(J co du/dx u) + d/dy(co du/dy) where J is the Jacobian
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(inplane_operators_t), | intent(in) | :: | self |
Instance of the type |
||
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | u |
Values of variable u |
|
| integer, | intent(in) | :: | l |
Index, for which nabla_pol_sqrd is be computed |
||
| real(kind=GP), | intent(in), | optional, | dimension(self%n_points) | :: | co |
Coefficient, if not present it is assumed 1 |
Evaluates Arakawa bracket [u,v] = du/dxdv/dy - du/dydv/dx second order, see [A. Arakawa, J. Comput. Phys. 135, 103 (1997)]
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(inplane_operators_t), | intent(in) | :: | self |
Instance of the type |
||
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | u |
Values of variable u |
|
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | v |
Values of variable v |
|
| integer, | intent(in) | :: | l |
Index, for which Arakawa Bracket is be computed |
Evaluates doubled Arakawa bracket [u,[u,v]], second order
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(inplane_operators_t), | intent(in) | :: | self |
Instance of the type |
||
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | u |
Values of variable u |
|
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | v |
Values of variable v |
|
| integer, | intent(in) | :: | l |
Index, for which double Arakawa bracket is be computed |
Curvature operator Computation based on toroidal magnetic field
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(inplane_operators_t), | intent(in) | :: | self |
Instance of the type |
||
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | u |
Values of variable u |
|
| integer, | intent(in) | :: | l |
Index, for which curvature is computed |
Curvature operator Simple computation via vertical derivative -2 d/dy Useful for slab/circular geometry
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(inplane_operators_t), | intent(in) | :: | self |
Instance of the type |
||
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | u |
Values of variable u |
|
| integer, | intent(in) | :: | l |
Index, for which curvature is computed |
Evaluates squared curvature operator Computation based on toroidal magnetic field
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(inplane_operators_t), | intent(in) | :: | self |
Instance of the type |
||
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | u |
Values of variable u |
|
| integer, | intent(in) | :: | l |
Index, for which curvature is computed |
Evaluates squared curvature operator Simple computation via vertical derivative 4 d^2/dy^2 second order, central finite difference
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(inplane_operators_t), | intent(in) | :: | self |
Instance of the type |
||
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | u |
Values of variable u |
|
| integer, | intent(in) | :: | l |
Index, for which curvature is computed |
Evaluates non-linear advection div(co [adv_pot, v]_{x,y}) where v = grad(pot) + diafac*grad(pi) / ne
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(inplane_operators_t), | intent(in) | :: | self |
Instance of the type |
||
| real(kind=GP), | intent(in) | :: | dia_fac |
Factor in front of diamagnetic term |
||
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | co |
Values of coefficient |
|
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | adv_pot |
Values of the first input in bracket [adv_pot, v] |
|
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | potv |
Values of electrostatic potential |
|
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | tiv |
Values of ion temperature |
|
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | nev |
Values of density |
|
| integer, | intent(in) | :: | l |
Index, for which term is computed |
Applies dissipation of order ndiss: du = div (co grad (nabla_pol_sqrd^{ndiss-1} u) )
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(inplane_operators_t), | intent(inout) | :: | self |
Instance of the type |
||
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | u |
Values of variable u |
|
| integer, | intent(in) | :: | ndiss |
Order of dissipation operator |
||
| real(kind=GP), | intent(out), | dimension(self%n_points_inner) | :: | du |
Change added with dissipation |
|
| real(kind=GP), | intent(in), | optional, | dimension(self%n_points) | :: | co |
Coefficient applied in last Laplacian operation |
Evaluates flutter gradient of f using Arakawa bracket co*[apar,u]/btor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(inplane_operators_t), | intent(in) | :: | self |
Instance of the type |
||
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | apar |
Values of variable apar |
|
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | u |
Values of variable u |
|
| integer, | intent(in) | :: | l |
Index, for which flutter_grad is be computed |
Evaluates flutter divergence of f using Arakawa bracket co*[apar,u]/btor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(inplane_operators_t), | intent(in) | :: | self |
Instance of the type |
||
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | apar |
Values of variable apar |
|
| real(kind=GP), | intent(in), | dimension(self%n_points) | :: | u |
Values of variable u |
|
| integer, | intent(in) | :: | l |
Index, for which flutter_div is be computed |