Implementation of parallel operators with non-aligned methods, These methods are mostly for testing purpose or exploring numerical techniques, i.e. there is no focus on performance optimisation and no unit tests were created for these routines - Guenter's scheme second order: (see S. Guenter et al., Journal of Computational Physics 209 (2005) 354–370 - Guenter's scheme fourth order: (see S. Guenter et al., Journal of Computational Physics 226 (2007) 2306-2316
Computes gradient (dudx, dudy, dudphi = dudz) at 3D staggered positions Gradient is computed according to symmetric formulation of Guenter's scheme Staggered point is at northeast-forward position w.r.t. its considered grid point on full grid Second and fourth order are implemented
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(comm_handler_t), | intent(in) | :: | comm_handler |
Communicator |
||
| class(equilibrium_t), | intent(inout) | :: | equi |
Equilibrium |
||
| type(mesh_cart_t), | intent(inout) | :: | mesh |
Mesh within poloidal plane |
||
| type(parallel_map_t), | intent(in) | :: | map |
Parallel map |
||
| type(variable_t) | :: | u |
Variable, must be defined on canonical grid |
|||
| real(kind=GP), | intent(out), | dimension(mesh%get_n_points(), 3) | :: | gradu |
Values of gradient |
|
| integer, | intent(in), | optional | :: | order |
Order of scheme default: 2 |
Computes parallel gradient at 3D staggered positions Based on gradient_3D_staggered
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(comm_handler_t), | intent(in) | :: | comm_handler |
Communicator |
||
| class(equilibrium_t), | intent(inout) | :: | equi |
Equilibrium |
||
| type(mesh_cart_t), | intent(inout) | :: | mesh |
Mesh within poloidal plane |
||
| type(parallel_map_t), | intent(in) | :: | map |
Parallel map |
||
| type(variable_t), | intent(in) | :: | u |
Variable, must be defined on canonical grid |
||
| real(kind=GP), | intent(out), | dimension(mesh%get_n_points()) | :: | pargradu |
Values of parallel gradient |
|
| integer, | intent(in), | optional | :: | order |
Order of scheme default: 2 |
Computes parallel divergence from parallel flux defined at 3D staggered positions Result (pardivu) is defined on full grid Based on symmetric formulation of Guenter's scheme (2nd and 4th order available)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | comm |
MPI communicator |
||
| class(equilibrium_t), | intent(inout) | :: | equi |
Equilibrium |
||
| type(mesh_cart_t), | intent(inout) | :: | mesh |
Mesh within poloidal plane |
||
| type(parallel_map_t), | intent(in) | :: | map |
Parallel map |
||
| real(kind=GP), | intent(in), | dimension(mesh%get_n_points()) | :: | uflx |
Parallel flux |
|
| real(kind=GP), | intent(out), | dimension(mesh%get_n_points_inner()) | :: | pardivu |
Parallel divergence of uflx |
|
| integer, | intent(in), | optional | :: | order |
Order of scheme default: 2 |