fieldline_tracer_m Module

Field line tracing via the DOP853 integrator


Uses

  • module~~fieldline_tracer_m~~UsesGraph module~fieldline_tracer_m fieldline_tracer_m dop853_constants dop853_constants module~fieldline_tracer_m->dop853_constants dop853_module dop853_module module~fieldline_tracer_m->dop853_module module~comm_handling_m comm_handling_m module~fieldline_tracer_m->module~comm_handling_m module~equilibrium_m equilibrium_m module~fieldline_tracer_m->module~equilibrium_m module~error_handling_m error_handling_m module~fieldline_tracer_m->module~error_handling_m module~precision_m precision_m module~fieldline_tracer_m->module~precision_m module~screen_io_m screen_io_m module~fieldline_tracer_m->module~screen_io_m module~status_codes_m status_codes_m module~fieldline_tracer_m->module~status_codes_m mpi mpi module~comm_handling_m->mpi module~equilibrium_m->module~precision_m module~error_handling_m->module~comm_handling_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~error_handling_m->mpi netcdf netcdf module~error_handling_m->netcdf iso_c_binding iso_c_binding 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

Used by

  • module~~fieldline_tracer_m~~UsedByGraph module~fieldline_tracer_m fieldline_tracer_m module~auxiliaries_test_diffusion_m auxiliaries_test_diffusion_m module~auxiliaries_test_diffusion_m->module~fieldline_tracer_m module~connection_length_m connection_length_m module~connection_length_m->module~fieldline_tracer_m module~dommaschk_equilibrium_m dommaschk_equilibrium_m module~dommaschk_equilibrium_m->module~fieldline_tracer_m module~map_factory_s map_factory_s module~map_factory_s->module~fieldline_tracer_m module~map_factory_s->module~dommaschk_equilibrium_m module~parbnd_taylor_m parbnd_taylor_m module~parbnd_taylor_m->module~fieldline_tracer_m module~parbnd_taylor_m->module~connection_length_m module~vis_vtk3d_m vis_vtk3d_m module~vis_vtk3d_m->module~fieldline_tracer_m program~diagnose_poincare diagnose_poincare program~diagnose_poincare->module~fieldline_tracer_m module~equilibrium_factory_m equilibrium_factory_m program~diagnose_poincare->module~equilibrium_factory_m program~test_diffusion test_diffusion program~test_diffusion->module~fieldline_tracer_m program~test_diffusion->module~auxiliaries_test_diffusion_m program~test_diffusion->module~vis_vtk3d_m program~test_diffusion->module~equilibrium_factory_m module~dommaschk_equilibrium_netcdf_s dommaschk_equilibrium_netcdf_s module~dommaschk_equilibrium_netcdf_s->module~dommaschk_equilibrium_m module~equilibrium_factory_m->module~dommaschk_equilibrium_m module~immersed_trace_m immersed_trace_m module~immersed_trace_m->module~connection_length_m module~parbnd_taylor_netcdf_s parbnd_taylor_netcdf_s module~parbnd_taylor_netcdf_s->module~parbnd_taylor_m module~immersed_factory_m immersed_factory_m module~immersed_factory_m->module~immersed_trace_m program~benchmark_helmholtz_solvers benchmark_helmholtz_solvers program~benchmark_helmholtz_solvers->module~equilibrium_factory_m

Subroutines

public subroutine set_tolerance(rtol_, atol_)

Sets the DOP853 relative and absolute error tolerances for each equation solved during the field line tracing

Arguments

Type IntentOptional Attributes Name
real(kind=DP), intent(in), dimension(neq) :: rtol_

Relative error tolerance for each equation

real(kind=DP), intent(in), dimension(neq) :: atol_

Absolute error tolerance for each equation

public subroutine trace(x_init, y_init, phi_init, dphi, equi, x_end, y_end, phi_end, arclen, fluxexp, condition, stop_int, tracing_terminated, maxstep, istat)

Performs integration along field line. If condition is present, performs field line tracing while condition is true

Arguments

Type IntentOptional Attributes Name
real(kind=FP), intent(in) :: x_init

Start point (x-coordinate)

real(kind=FP), intent(in) :: y_init

Start point (y-coordinate)

real(kind=FP), intent(in) :: phi_init

Start point (phi-coordinate)

real(kind=FP), intent(in) :: dphi

Toroidal distance to be traced

class(equilibrium_t), intent(inout), target :: equi

Equilibrium defining the field line

real(kind=FP), intent(out), optional :: x_end

End point (x-coordinate)

real(kind=FP), intent(out), optional :: y_end

End point (y-coordinate)

real(kind=FP), intent(out), optional :: phi_end

Actual phi-coordinate end point of integration (relevant if condition is present)

real(kind=FP), intent(out), optional :: arclen

Length along field line

real(kind=FP), intent(out), optional :: fluxexp

Flux expansion, i.e. 1 / Btor integrated along fieldline

procedure(condition_interface), optional :: condition

Trace is performed until condition is true

logical, intent(in), optional :: stop_int

If = true, then the routine stops the integration once the condition is met. Otherwise, integration continues with integrand multiplied by zero. The default setting is false.

logical, intent(out), optional :: tracing_terminated

True, if given as an input, and the tracing was terminated due the fulfillment of the given condition. False by default.

real(kind=FP), intent(in), optional :: maxstep

Maximum stepsize for the integration

integer, intent(out), optional :: istat

PARALLAX error status of trace routine. If present, the trace routine will trigger a warning in case of error, and return an error code. If not present, the trace routine will trigger an error.