parbnd_taylor_m Module

Handles setting of parallel boundary conditions according to Taylor expansion along boundary conditions See Appendix B of Andreas Stegmeir et al. 2018 Plasma Phys. Control. Fusion 60 035005. DOI 10.1088/1361-6587/aaa373


Uses

  • module~~parbnd_taylor_m~~UsesGraph module~parbnd_taylor_m parbnd_taylor_m module~connection_length_m connection_length_m module~parbnd_taylor_m->module~connection_length_m module~constants_m constants_m module~parbnd_taylor_m->module~constants_m module~elementary_functions_m elementary_functions_m module~parbnd_taylor_m->module~elementary_functions_m module~equilibrium_m equilibrium_m module~parbnd_taylor_m->module~equilibrium_m module~error_handling_m error_handling_m module~parbnd_taylor_m->module~error_handling_m module~fieldline_tracer_m fieldline_tracer_m module~parbnd_taylor_m->module~fieldline_tracer_m module~mesh_cart_m mesh_cart_m module~parbnd_taylor_m->module~mesh_cart_m module~precision_m precision_m module~parbnd_taylor_m->module~precision_m module~screen_io_m screen_io_m module~parbnd_taylor_m->module~screen_io_m module~status_codes_m status_codes_m module~parbnd_taylor_m->module~status_codes_m module~connection_length_m->module~equilibrium_m module~connection_length_m->module~error_handling_m module~connection_length_m->module~fieldline_tracer_m module~connection_length_m->module~precision_m module~connection_length_m->module~screen_io_m module~connection_length_m->module~status_codes_m module~descriptors_m descriptors_m module~connection_length_m->module~descriptors_m module~constants_m->module~precision_m module~elementary_functions_m->module~precision_m module~equilibrium_m->module~precision_m module~error_handling_m->module~precision_m module~error_handling_m->module~screen_io_m module~error_handling_m->module~status_codes_m module~comm_handling_m comm_handling_m module~error_handling_m->module~comm_handling_m mpi mpi module~error_handling_m->mpi netcdf netcdf module~error_handling_m->netcdf module~fieldline_tracer_m->module~equilibrium_m module~fieldline_tracer_m->module~error_handling_m module~fieldline_tracer_m->module~precision_m module~fieldline_tracer_m->module~screen_io_m module~fieldline_tracer_m->module~status_codes_m dop853_constants dop853_constants module~fieldline_tracer_m->dop853_constants dop853_module dop853_module module~fieldline_tracer_m->dop853_module module~fieldline_tracer_m->module~comm_handling_m module~mesh_cart_m->module~equilibrium_m module~mesh_cart_m->module~error_handling_m module~mesh_cart_m->module~precision_m module~mesh_cart_m->module~status_codes_m iso_c_binding iso_c_binding module~mesh_cart_m->iso_c_binding module~mesh_cart_m->module~comm_handling_m module~mesh_cart_m->module~descriptors_m module~slab_equilibrium_m slab_equilibrium_m module~mesh_cart_m->module~slab_equilibrium_m module~mesh_cart_m->netcdf module~precision_m->iso_c_binding iso_fortran_env iso_fortran_env module~precision_m->iso_fortran_env module~precision_m->mpi module~precision_m->netcdf module~screen_io_m->module~precision_m module~screen_io_m->iso_fortran_env module~screen_io_m->netcdf module~comm_handling_m->mpi module~descriptors_m->module~screen_io_m module~slab_equilibrium_m->module~equilibrium_m module~slab_equilibrium_m->module~precision_m module~slab_equilibrium_m->module~screen_io_m module~slab_equilibrium_m->module~descriptors_m module~params_equi_slab_m params_equi_slab_m module~slab_equilibrium_m->module~params_equi_slab_m module~params_equi_slab_m->module~error_handling_m module~params_equi_slab_m->module~precision_m module~params_equi_slab_m->module~screen_io_m module~params_equi_slab_m->module~status_codes_m module~params_equi_slab_m->iso_fortran_env

Used by

  • module~~parbnd_taylor_m~~UsedByGraph module~parbnd_taylor_m parbnd_taylor_m module~parbnd_taylor_netcdf_s parbnd_taylor_netcdf_s module~parbnd_taylor_netcdf_s->module~parbnd_taylor_m

Variables

Type Visibility Attributes Name Initial
real(kind=FP), protected :: trace_max_step_size = PI/180.0_FP

Maximum step size of trace algorithm

real(kind=FP), protected :: depth_alt = 0.5_FP

Depth at which method switches to alternate expression

real(kind=FP), protected :: wd_alt = 0.5_FP

Width over which method switches to alternate expression

integer, protected :: hermite_order_alt = 2

Order of transition (hermite polynomials) to alternate expression

real(kind=FP), protected :: depth_flb = 1.5_FP

Depth at which method switches to fallback expression

real(kind=FP), protected :: wd_flb = 0.5_FP

Width over which method switches to fallback expression

integer, protected :: hermite_order_flb = 2

Order of transition (hermite polynomials) to fallback expression

real(kind=FP), protected :: depth_ctgy = 2.5_FP

Depth at which method switches to contingency (deep depth) expression

real(kind=FP), protected :: wd_ctgy = 0.5_FP

Width over which method switches to contingency expression

integer, protected :: hermite_order_ctgy = 2

Order of transition (hermite polynomials) to contingency expression


Derived Types

type, public ::  parbnd_taylor_t

Handles setting of boundary conditions at parallel boundaries according to Taylor expansion method

Components

Type Visibility Attributes Name Initial
integer, public, allocatable, dimension(:) :: b_bnd_direction

Indicates if the magnetic field is directed towards or away the boundary at the closest parallel boundary: - = 1 : if B points toward the boundary - = -1 : if B points away from the boundary) - = 0 : if no boundary is found nearby (e.g., in closed field line region or when the boundary is too far from the point)

real(kind=FP), public, allocatable, dimension(:,:) :: dists_to_bnd

Distances along the magnetic field line to the boundary

Read more…
real(kind=FP), public, allocatable, dimension(:) :: depth_in_bnd

Corresponding toridal angle to boundary in units of dphi - Positive values indicate that point is inside boundary - Negative values indicate that point is outside boundary - A value of zero indicates that boundary is too far away (e.g., in closed field line region)

Finalizations Procedures

final :: destructor_parbnd_taylor_t

Type-Bound Procedures

procedure, public :: init => init_parbnd_taylor
procedure, public :: display
procedure, public :: write_netcdf => write_netcdf_parbnd_taylor
procedure, public :: read_netcdf => read_netcdf_parbnd_taylor
procedure, public :: set_guard_points
procedure, public :: extrapolate_guard_points