Modules

ModuleSource FileDescription
bessel_m bessel_m.f90
block_structured_grids_m block_structured_grids_m.f90

Module containing the implementation of block-structured grids (BSG).

   block_structured_grids_s block_structured_grids_s.f90
   bsg_construct_s bsg_construct_s.f90
bsg_interpolation_m bsg_interpolation_m.f90

Module containing the implementation of BSG interpolations.

   bsg_interpolation_s bsg_interpolation_s.f90
   equidistant_interpolation_s equidistant_interpolation_s.f90
bsg_operators_m bsg_operators_m.f90

Contains special operators that work with the BSG

   bsg_dot_product_s bsg_dot_product_s.f90
   bsg_interpolate_dist_s bsg_interpolate_dist_s.f90
   bsg_operators_s bsg_operators_s.f90
bsg_types_m bsg_types_m.f90

Module defining different BSG types

chebyshev_polynomials_m chebyshev_polynomials_m.f90

Contains functionality to create Chebyshev polynomials

csralg_m csralg_m.f90

Module implementing features of the matrix algebra with csr matrices

data_array_gpu_m data_array_gpu_m.f90

Module containing additional resources related to GPU and Fortran/C++ interoperability for the data_array_t type

data_array_m data_array_m.f90

Module containing the definition and interface of the data array types. Data array types are wrapper classes containing the 2d, 4d, 5d array and their bounds.

   data_array_s data_array_s.f90
data_storage_m data_storage_m.f90

Module containing the definition and interface of the data storage types. The data storage includes storaging data_arrays with capabilities for MPI halos. These can be exchanged automatically by calling the start_exchange and finish_exchange procedure of the types.

   data_storage_5d_s data_storage_5d_s.f90
   data_storage_cpu_2d_s data_storage_cpu_2d_s.f90
   data_storage_cpu_4d_s data_storage_cpu_4d_s.f90
   data_storage_cpu_5d_s data_storage_cpu_5d_s.f90
   data_storage_gpu_2d_s data_storage_gpu_2d_s.f90
   data_storage_gpu_4d_s data_storage_gpu_4d_s.f90
   data_storage_gpu_5d_s data_storage_gpu_5d_s.f90
   data_storage_s data_storage_s.f90
dcomm_handler_gpu_m dcomm_handler_gpu_m.f90

Module containing additional resources related to GPU and Fortran/C++ interoperability for the dcomm_handler_t type

dcomm_handler_m dcomm_handler_m.f90

Module containing the definition of the dcomm_handler_t type and interface

   dcomm_handler_s dcomm_handler_s.f90
device_memory_tracer_m device_memory_tracer_m.f90

Module containing routines to initialize and finalize the device memory tracing feature

   device_memory_tracer_s device_memory_tracer_s.f90

Submodule containing routines and other resources to initialize and finalize the device memory tracing feature

devtools_m devtools_m.f90

Module containing routines to initialize and finalize the developer tools

diag_files_m diag_files_m.f90
   checkpoint_file_s checkpoint_file_s.f90
   mesh_file_s mesh_file_s.f90
   checkpoint_neut_file_s checkpoint_neut_file_s.f90
   em_fields_file_s em_fields_file_s.f90
   mom_0d_file_s mom_0d_file_s.f90
   mom_2d_file_s mom_2d_file_s.f90
   neutrals_file_s neutrals_file_s.f90
dimensions_m dimensions_m.f90

Module defining the order of the dimensions for the 5D and 2D datatypes

dist_initial_container_m dist_initial_container_m.f90

Module containing different initial distribution functions for the initialization of the simulation

dist_initial_m dist_initial_m.f90

Module containing different initial distribution functions for the initialization of the simulation

Read more…
   dist_initial_anisotropic_s dist_initial_anisotropic_s.f90
   dist_initial_bi_maxw_cpu_s dist_initial_bi_maxw_cpu_s.f90
   dist_initial_double_maxw_cpu_s dist_initial_double_maxw_cpu_s.f90
   dist_initial_isotropic_s dist_initial_isotropic_s.f90
   dist_initial_maxw_cpu_s dist_initial_maxw_cpu_s.f90
   dist_initial_maxw_loc_vspec_cpu_s dist_initial_maxw_loc_vspec_cpu_s.f90
   dist_initial_maxw_vspec_cpu_s dist_initial_maxw_vspec_cpu_s.f90
   dist_initial_ring_cpu_s dist_initial_ring_cpu_s.f90
   dist_initial_slowing_down_cpu_s dist_initial_slowing_down_cpu_s.f90
elliptic_integrals_m elliptic_integrals_m.f90
equilibrium_reference_m equilibrium_reference_m.f90

Module containing analytical reference values for the magnetic equilibrium and various derivatives of it for unit testing

error_params_m error_params_m.f90

Module containing error handling functionality for parameter I/O

file_handling_m file_handling_m.f90
genex_error_handling_m genex_error_handling_m.f90

Module to handle errors in a standardized way

genex_fortran_env_m genex_fortran_env_m.f90

Defines constants used in the genex

genex_status_codes_m genex_status_codes_m.f90

Defines status codes that are used to denote errors and warnings

helpers_arithmetic_operators_m helpers_arithmetic_operators_m.f90

Contains Fortran/C++ interface for dedicated reference values for the unit tests of arithmetic operators

helpers_collision_operators_m helpers_collision_operators_m.f90
helpers_collog_m helpers_collog_m.f90

Contains Fortran/C++ interface for testing the C++ and GPU features of calc_collog

helpers_data_array_gpu_m helpers_data_array_gpu_m.f90

Contains Fortran/C++ interface for unit testing the C++ and GPU features of data_array_t

helpers_data_storage_gpu_m helpers_data_storage_gpu_m.f90

Contains Fortran/C++ interface for unit testing the C++ and GPU features of data_storage_t

helpers_data_storage_m helpers_data_storage.f90

Contains procedures needed for unit testing the mail_delivery_m module

helpers_dcomm_handler_gpu_m helpers_dcomm_handler_gpu_m.f90

Contains Fortran/C++ interface for unit testing the C++ and GPU features of dcomm_handler_t

helpers_dcomm_handler_m helpers_dcomm_handler.f90

Contains procedures needed for unit testing the dcomm_handler_t type

helpers_files_m helpers_files.f90

Contains procedures needed for unit testing the files types

helpers_mail_delivery_gpu_m helpers_mail_delivery_gpu_m.f90

Contains Fortran/C++ interface for unit testing the C++ and GPU features of mailbox_t and mail delivery system

helpers_mail_delivery_m helpers_mail_delivery.f90

Contains procedures needed for unit testing the mail_delivery_m module

helpers_mesh_5d_gpu_m helpers_mesh_5d_gpu_m.f90

Contains Fortran/C++ interface for unit testing the C++ and GPU features of mesh_5d_t

helpers_parameters_m helpers_parameters_m.f90

Contains Fortran/C++ interface for testing the C++ features of the parameters

helpers_profiler_gpu_m helpers_profiler_gpu_m.f90

Contains Fortran/C++ interface for unit testing the C++ and GPU features of the profiler

helpers_timestep_m helpers_timestep_m.f90

Contains helper functions for the timestepping schemes

interop_params_m interop_params_m.f90

Module containing routines and other resources to interoprate the parameters between Fortran and C++

   interop_params_s interop_params_s.f90

Submodule containing routines and other resources to interoprate the parameters between Fortran and C++

lagrange_interpolator_m lagrange_interpolator_m.f90

Module containing prefactors to calculate derivatives on an unstructured grid based on lagrange interpolation up to fourth order. The grid is defined by y1 ---- y2 ---- y3 ---- y4 ---- y5

logger_m logger_m.f90

Module to handle standard input/output. It provides functionality to log info, debug and error information by returning the corresponding channel number that can be used in a write statement.

mail_delivery_m mail_delivery_m.f90

Module containing the implementation of a general data exchange within a communicator

   mail_delivery_s mail_delivery_s.f90
mailbox_m mailbox_m.f90

Module implementing the mailbox_t type

math_m math_m.f90
mesh_5d_gpu_m mesh_5d_gpu_m.f90

Module containing additional resources related to GPU and Fortran/C++ interoperability for the mesh_5d_t type

mesh_5d_m mesh_5d_m.f90

Module containing the implementation of the mesh_5d_t type

   mesh_5d_gpu_s mesh_5d_gpu_s.f90
   mesh_5d_magfield_s mesh_5d_magfield_s.f90

This module contains the implementation of the magnetic field and its derivatives, as well as poloidal flux psi, flux surface label rho, and poloidal angle theta.

   mesh_5d_parcon_s mesh_5d_parcon_s.f90

This module contains the implementation of the parallel connection. This includes information of points along a magnetic field line. It can be used to calculate derivatives and boundary conditions along magnetic field lines.

   mesh_5d_s mesh_5d_s.f90
   mesh_5d_vspec_s mesh_5d_vspec_s.f90

This module contains the implementation of the moment spectral weights to compute fluid moments.

neut_coupling_setup_m neut_coupling_setup_m.f90

This module contains subroutines for the coupling operators shared by the _pn and _np types.

op_axpy_m op_axpy_m.f90
   op_axpy_cpu_m op_axpy_cpu_s.f90
   op_axpy_gpu_m op_axpy_gpu_s.f90
op_base_m op_base_m.f90
op_bnd_cond_m op_bnd_cond_m.f90

Module containing operators to set boundary condition to the distribution function, the electrostatic potential, the parallel component of the electromagnetic vector potential and the parallel electric field.

   op_bnd_cond_dir_cpu_s op_bnd_cond_dir_cpu_s.f90
   op_bnd_cond_dir_gpu_s op_bnd_cond_dir_gpu_s.f90
   op_bnd_cond_mms_cpu_s op_bnd_cond_mms_cpu_s.f90
   op_bnd_cond_neum_cpu_s op_bnd_cond_neum_cpu_s.f90
   op_bnd_cond_neum_gpu_s op_bnd_cond_neum_gpu_s.f90
   op_bnd_cond_neum_vspec_cpu_s op_bnd_cond_neum_vspec_cpu_s.f90
   op_bnd_cond_s op_bnd_cond_s.f90
op_coll_m op_coll_m.f90

Contains operators to calculate the effect of collisions on the distribution function. The Vlasov equation will then become of kinetic type where the eq df/dt = rhs(f) + coll(f) is solved. Collision operator applied via this type, take the input distribution function and the collisional moments (supplied via operators of class op_mom_coll_t) and add the result to the output distribution function.

   op_coll_bgk_cpu_s op_coll_bgk_cpu_s.f90

Contains implementation of op_coll_bgk_cpu_t which represents the BGK collision operator.

   op_coll_bgk_gpu_s op_coll_bgk_gpu_s.f90

Contains implementation of op_coll_bgk_gpu_t which represents the BGK collision operator.

   op_coll_fpl_cpu_s op_coll_fpl_cpu_s.f90

Contains the implementation of op_coll_fpl_cpu_t, the Fokker-Planck-Landau collision operator.

   op_coll_lbd_cpu_s op_coll_lbd_cpu_s.f90

Contains the implementation of op_coll_lbd_cpu_t, the finite volume implementation of the Lenard-Bernstein/Dougherty collision operator.

   op_coll_lbd_vspec_cpu op_coll_lbd_vspec_cpu_s.f90
   op_coll_lorentz_cpu_s op_coll_lorentz_cpu_s.f90
   op_coll_s op_coll_s.f90

Contains common op_coll implementations.

op_copy_m op_copy_m.f90

Real subroutines Integer subroutines Logical subroutines

   op_copy_cpu_m op_copy_cpu_s.f90
   op_copy_gpu_m op_copy_gpu_s.f90
op_diag_mom_0d_m op_diag_mom_0d_m.f90
   op_diag_mom_0d_cpu_s op_diag_mom_0d_cpu_s.f90
   op_diag_mom_0d_vspec_cpu_s op_diag_mom_0d_vspec_cpu_s.f90
op_diag_mom_2d_m op_diag_mom_2d_m.f90
   op_diag_mom_2d_cpu_s op_diag_mom_2d_cpu_s.f90
   op_diag_mom_2d_vspec_cpu_s op_diag_mom_2d_vspec_cpu_s.f90
op_lin_comb_m op_lin_comb_m.f90
   op_lin_comb_cpu_s op_lin_comb_cpu_s.f90
   op_lin_comb_gpu_s op_lin_comb_gpu_s.f90
op_mms_error_m op_mms_error_m.f90
   op_mms_error_cpu_s op_mms_error_cpu_s.f90
op_mms_solution_m op_mms_solution_m.f90

Module containing the op_mms_solution operators.These operators set exact MMS solution on all points in the RZ plane and on all inner points in the other coordinates.

   op_mms_solution_maxwells_eq_cpu_s op_mms_solution_maxwells_eq_cpu_s.f90
   op_mms_solution_ohms_law_cpu_s op_mms_solution_ohms_law_cpu_s.f90
   op_mms_solution_vlasov_eq_cpu_s op_mms_solution_vlasov_eq_cpu_s.f90
op_mms_source_m op_mms_source_m.f90

Contains the MMS source operators used to apply the source terms to the rhs of the Vlasov-Maxwell system

   op_mms_source_maxwells_eq_cpu_s op_mms_source_maxwells_eq_cpu_s.f90
   op_mms_source_ohms_law_cpu_s op_mms_source_ohms_law_cpu_s.f90
   op_mms_source_vlasov_eq_cpu_s op_mms_source_vlasov_eq_cpu_s.f90
op_mom_coll_m op_mom_coll_m.f90

Contains operators that calculate the velocity space moments for the use in the implementation of collision operators

   op_mom_coll_cpu_s op_mom_coll_cpu_s.f90

Contains implementation of op_mom_coll_cpu_t

   op_mom_coll_gpu_s op_mom_coll_gpu_s.f90

Contains implementation of op_mom_coll_gpu_t

   op_mom_coll_vspec_cpu_s op_mom_coll_vspec_cpu_s.f90
op_mom_maxwells_eq_m op_mom_maxwells_eq_m.f90

Module defining an operator to calculate moments of the distribution function that are required to solve the quasi-neutrality equation and Ampere's law

   op_mom_maxwells_eq_cpu_s op_mom_maxwells_eq_cpu_s.f90
   op_mom_maxwells_eq_gpu_s op_mom_maxwells_eq_gpu_s.f90
   op_mom_maxwells_eq_vspec_cpu_s op_mom_maxwells_eq_vspec_cpu_s.f90
op_mom_ohms_law_m op_mom_ohms_law_m.f90

Module defines an operator to calculate moments of the distribution function that are required to solve Ohm's law

   op_mom_ohms_law_cpu_s op_mom_ohms_law_cpu_s.f90
   op_mom_ohms_law_gpu_s op_mom_ohms_law_gpu_s.f90
   op_mom_ohms_law_vspec_cpu_s op_mom_ohms_law_vspec_cpu_s.f90
op_neut_coupling_np_m op_neut_coupling_np_m.f90

This module contains operators to couple the effect of the neutrals on the plasma evolution (neutrals to plasma == np). This is achieved through collision operators and two neutrals-plasma reactions are considered: ionization (iz) and recombination (rc). The concrete, i.e. non abstract, derived types implement specific collision operators, eg. op_neut_coupling_np_krook_t use Krook-like operators.

   op_neut_coupling_np_krook_s op_neut_coupling_np_krook_s.f90
   op_neut_coupling_np_none_s op_neut_coupling_np_none_s.f90

Contains operators subroutines to calculate the effect of neutrals on plasma distributions function in the none case, i.e. nothing happen.

   op_neut_coupling_np_s op_neut_coupling_np_s.f90

This module contains the general initialization routine

op_neut_coupling_pn_m op_neut_coupling_pn_m.f90

This module contains operators to couple the effect of the plasma on the neutrals evolution (plasma to neutrals == pn). This is achieved through collision operators and two neutrals-plasma reactions are considered: ionization (iz) and recombination (rc). The concrete, i.e. non abstract, derived types implement specific collision operators, eg. op_neut_coupling_pn_krook_t use Krook-like operators.

   op_neut_coupling_pn_krook_s op_neut_coupling_pn_krook_s.f90
   op_neut_coupling_pn_none_s op_neut_coupling_pn_none_s.f90

Contain operator subroutines to calculate the effect of plasma on neutrals in the none case, i.e. nothing happen.

   op_neut_coupling_pn_s op_neut_coupling_pn_s.f90

This module contains the general initialization routine

   op_neut_coupling_pn_temp_s op_neut_coupling_pn_temp_s.f90
op_neut_evolve_m op_neut_evolve_m.f90

Operator to evolve the (fluid) evolution equations of the neutrals species

   op_neut_evolve_dummy_s op_neut_evolve_dummy_s.f90

Contains implementation of op_neut_evolve_dummy_t which represents a "dummy" (minimal working but not physical) neutrals evolution operator.

   op_neutrals_1mom_2cfd_s op_neut_evolve_1mom_2cfd_s.f90
   op_neutrals_1mom_4cfd_s op_neut_evolve_1mom_4cfd_s.f90
   op_neutrals_1mom_diff_s op_neut_evolve_1mom_diff_s.f90
op_neut_mom_m op_neut_mom_m.f90

Contains operators that calculate the velocity space moments for the use in the implementation of plasma-neutrals interaction operators

   op_neut_mom_cpu_s op_neut_mom_cpu_s.f90

Contains implementation of op_neut_mom_cpu_t

op_neut_set_initial_m op_neut_set_initial_m.f90
   op_neut_set_initial_cpu_s op_neut_set_initial_cpu_s.f90
op_rhs_vlasov_eq_dynamic_m op_rhs_vlasov_eq_dynamic_m.f90

Contains an operator to calculate time dependent RHS parts

   op_rhs_vlasov_eq_dynamic_cpu_s op_rhs_vlasov_eq_dynamic_cpu_s.f90
   op_rhs_vlasov_eq_dynamic_gpu_s op_rhs_vlasov_eq_dynamic_gpu_s.f90
   op_rhs_vlasov_eq_dynamic_vspec_cpu_s op_rhs_vlasov_eq_dynamic_vspec_cpu_s.f90
op_rhs_vlasov_eq_static_m op_rhs_vlasov_eq_static_m.f90

Contains an operator to calculate time independent RHS parts

   eq_rhs_vlasov_eq_static_vspec_s op_rhs_vlasov_eq_static_vspec_cpu_s.f90
   op_rhs_vlasov_eq_static_bsg_cpu_s op_rhs_vlasov_eq_static_bsg_cpu_s.f90
   op_rhs_vlasov_eq_static_cpu_s op_rhs_vlasov_eq_static_cpu_s.f90
   op_rhs_vlasov_eq_static_gpu_s op_rhs_vlasov_eq_static_gpu_s.f90
   op_rhs_vlasov_eq_static_s op_rhs_vlasov_eq_static_s.f90
   op_rhs_vlasov_eq_static_vspec_s op_rhs_vlasov_eq_static_vspec_s.f90
op_set_initial_condition_m op_set_initial_condition_m.f90
   op_set_init_cond_vspec_s op_set_initial_condition_vspec_cpu_s.f90
   op_set_initial_condition_cpu_s op_set_initial_condition_cpu_s.f90
   op_set_initial_condition_mms_cpu_s op_set_initial_condition_mms_cpu_s.f90
   op_set_initial_condition_s op_set_initial_condition_s.f90
op_set_uniform_m op_set_uniform_m.f90
   op_set_uniform_cpu_s op_set_uniform_cpu_s.f90
   op_set_uniform_gpu_s op_set_uniform_gpu_s.f90
op_sheath_m op_sheath_m.f90

This module contains the implementation of the op_sheath_t type.

   op_sheath_s op_sheath_cpu_s.f90
op_solve_amps_law_m op_solve_amps_law_m.f90

Module defining an operator to solve Amperes's law

   op_solve_amps_law_s op_solve_amps_law_s.f90
op_solve_bpar_eq_m op_solve_bpar_eq_m.f90

Module defining the solve of the B parallel equation

   op_solve_bpar_eq_s op_solve_bpar_eq_s.f90
op_solve_ohms_law_m op_solve_ohms_law_m.f90

Module defining an operator to solve Ohm's law

   op_solve_ohms_law_s op_solve_ohms_law_s.f90
op_solve_qn_eq_m op_solve_qn_eq_m.f90

Module defining an operator to solve the quasi-neutrality equation

   op_solve_qn_eq_s op_solve_qn_eq_s.f90
op_source_container_m op_source_container_m.f90

Module containing op source container

op_source_m op_source_m.f90

Contains the implementation of different source operators

   op_source_dens_cpu_s op_source_dens_cpu_s.f90
   op_source_dens_vspec_cpu_s op_source_dens_vspec_cpu_s.f90
   op_source_heat_cpu_s op_source_heat_cpu_s.f90
   op_source_heat_vspec_cpu_s op_source_heat_vspec_cpu_s.f90
   op_source_lapd_cpu_s op_source_lapd_cpu_s.f90
   op_source_s op_source_s.f90
   op_source_torque_cpu_s op_source_torque_cpu_s.f90
   op_source_torque_vspec_cpu_s op_source_torque_vspec_cpu_s.f90
params_bnd_cond_m params_bnd_cond_m.f90

Module handling paramters for the boundary conditions

params_bsg_m params_bsg_m.f90

Module handling the parameters for Block-Structured Grids (BSG) approach

params_collisions_m params_collisions_m.f90

Module handling parameters for collisions

params_devtools_m params_devtools_m.f90

Module handling parameters for the developer tools

params_diagnostics_m params_diagnostics_m.f90

Module handling the parameters for the diagnostics

params_dist_initial_bi_maxw_m params_dist_initial_bi_maxw_m.f90

Module handling the parameters for dist initial bi-maxwellian

params_dist_initial_double_maxw_m params_dist_initial_double_maxw_m.f90

Module handling the parameters for dist initial double-maxw

params_dist_initial_m params_dist_initial_m.f90

Module containing the parent type of parameters for all the initial distribution functions.

params_dist_initial_maxw_vspec_m params_dist_initial_maxw_vspec_m.f90

This module contains the parameters for the spectral distribution function

params_dist_initial_ring_m params_dist_initial_ring_m.f90

Module handling the parameters for dist initial ring

params_dist_initial_slowing_down_m params_dist_initial_slowing_down_m.f90

Module handling the parameters for dist initial slowing down

params_field_solve_m params_field_solve_m.f90

Module handling the parameters for different field solvers Container type to store parameters for the field solvers

params_gpu_offload_m params_gpu_offload_m.f90

Module containing parameters related to GPU offloading Possible PARALLAX GPU backend parameter: CPU kernel Possible PARALLAX GPU backend parameter: GPU kernel Possible PARALLAX GPU backend parameter: external kernel via RocALUTION Possible PARALLAX GPU backend parameter: external kernel via NVIDIA AMGX Possible PARALLAX GPU backend parameter: external kernel via HYPRE

params_gyrokinetic_system_m params_gyrokinetic_system_m.f90

Module handling parameters for the gyrokinetic system

params_initial_condition_m params_initial_condition_m.f90

Module handling the parameters for the initial condition

params_m params_m.f90

Module containing general functionality related to the parameter file

params_mesh_m params_mesh_m.f90

Module handling the parameters for the mesh

params_mms_m params_mms_m.f90

Module handling the parameters for MMS

params_neutrals_config_m params_neutrals_config_m.f90

Module handling the configurations for the different neutrals species.

params_neutrals_init_m params_neutrals_init_m.f90

Module handling the initialization of neutrals species-specific parameters

params_neutrals_m params_neutrals_m.f90

Module handling the parameters for the different neutrals species

params_neutrals_set_blob_m params_neutrals_set_blob_m.f90

Module handling the blob initialization parameters for neutrals species.

params_normalization_m params_normalization_m.f90

Module handling the parameters for the normalization

params_numerical_scheme_m params_numerical_scheme_m.f90

Module handling the parameters for different numerical schemes

params_parallelization_m params_parallelization_m.f90

Module handling the parameters for the parallelization

params_profile_cbc_m params_profile_cbc_m.f90

Module handling the parameters for the cbc profile

params_profile_lapd_m params_profile_lapd_m.f90

Module handling the parameters for the LAPD profile

params_profile_m params_profile_m.f90

Module containaing the parent type of parameters for all profiles.

params_profile_plateau_m params_profile_plateau_m.f90

Module handling the parameters for the sine plateau profile This profile type is mostly relevant for the neutrals, thus the default container size is n_neut_supported.

params_profile_sine_m params_profile_sine_m.f90

Module handling the parameters for the sine profile

params_profile_uniform_m params_profile_uniform_m.f90

Module handling the parameters for the uniform profile This profile type is currently use only by the neutrals, so the default container size is n_neut_supported.

params_set_blob_m params_set_blob_m.f90

Module handling the parameters for the blob initialization

params_set_mode_m params_set_mode_m.f90

Module handling the parameters for the mode initialization

params_source_dens_m params_source_dens_m.f90

Module handling parameters for the density source Namelist of the localized density source parameters

params_source_heat_m params_source_heat_m.f90

Module handling parameters for the heat source Namelist of the localized heat source parameters

params_source_lapd_m params_source_lapd_m.f90

Module handling parameters for the LAPD source

params_source_m params_source_m.f90

Module handling parameters for the source

params_source_torque_m params_source_torque_m.f90

Module handling parameters for the torque (momentum) source Namelist of the localized torque source parameters

params_species_config_m params_species_config_m.f90

Module handling the configurations for the different species. Configuration means the parameters that specify the initial distribution and the different profiles for density and temperature of a species.

params_species_m params_species_m.f90

Module handling the parameters for the different species

params_time_loop_m params_time_loop_m.f90

Module handling the parameters for the time loop

params_time_split_m params_time_split_m.f90

Module handling the parameters for the time substeps in a splitting algorithm

part_handler_m part_handler_m.f90

Module that handles the structuring of the output into different parts. The parts are labelled by consecutive numbers in the diagnostic directory as: part_1 part_2 ... part_9999 Currently a maximum of 9999 parts is supported.

perf_counter_m perf_counter_m.f90
pirock_coefs_m pirock_coefs_m.f90
polynomial_integrals_m polynomial_integrals_m.f90

Contains analytical integrals involving the Hermite and Laguerre polynomials

profile_container_m profile_container_m.f90

Contains a type that contains a collection of profiles for one species

profiler_gpu_m profiler_gpu_m.f90

Module containing additional resources related to GPU and Fortran/C++ interoperability for the built-in profiler feature

profiler_m profiler_m.f90

Module to analyse the runtime of annotated regions of the program. A region is selected for time measurements by surrounding it with calls to profiler_start and profiler_stop. A performance summary of the different regions is printed on screen by calling profiler_print.

   profiler_region_s profiler_region_s.f90

Contains the implementation of the profiler_region_t type

   profiler_s profiler_s.f90
profiles_m profiles_m.f90

Module containing the implementation of different profiles to initialize the simulation and to set Dirichlet boundary conditions

Read more…
   profile_cbc_cpu_s profile_cbc_cpu_s.f90
   profile_lapd_cpu_s profile_lapd_cpu_s.f90
   profile_plateau_sine_cpu_s profile_plateau_sine_cpu_s.f90
   profile_sine_cpu_s profile_sine_cpu_s.f90
   profile_uniform_cpu_s profile_uniform_cpu_s.f90
quadrature_m quadrature_m.f90
runtime_tracer_m runtime_tracer_m.f90

Module containing routines to initialize and finalize the runtime tracing feature Enumerator for the mode of a profiling region tracing entry NOTE: Synchronize with src/cxx/devtools/runtime_tracer.hxx

   runtime_tracer_s runtime_tracer_s.f90

Submodule containing routines and other resources to initialize and finalize the runtime feature

state_vector_m state_vector_m.f90
   state_vector_s state_vector_s.f90
structured_grids_m structured_grids_m.f90

Module containing the implementation of the structured grids. This includes an abstract base class as well as the vp, mu and phi grids.

   mu_grid_s mu_grid_s.f90
   phi_grid_s phi_grid_s.f90
   vp_grid_s vp_grid_s.f90
system_calls_m system_calls_m.f90
test_params_io_m test_params_io_m.f90
test_params_m test_params_m.f90
   test_params_bnd_cond_s test_params_bnd_cond_s.f90
   test_params_bsg_s test_params_bsg_s.f90
   test_params_coll_s test_params_coll_s.f90
   test_params_devtools_s test_params_devtools_s.f90
   test_params_diagnostics_s test_params_diagnostics_s.f90
   test_params_dist_initial_s test_params_dist_initial_s.f90
   test_params_equi_circular_s test_params_equi_circular_s.f90
   test_params_equi_dommaschk_s test_params_equi_dommaschk_s.f90
   test_params_equi_slab_s test_params_equi_slab_s.f90
   test_params_gpu_offload_s test_params_gpu_offload_s.f90
   test_params_gyrokinetic_system_s test_params_gyrokinetic_system_s.f90
   test_params_initial_condition_s test_params_initial_condition_s.f90
   test_params_mesh_s test_params_mesh_s.f90
   test_params_neutrals_config_s test_params_neutrals_config_s.f90
   test_params_neutrals_init_s test_params_neutrals_init_s.f90
   test_params_neutrals_s test_params_neutrals_s.f90
   test_params_sources_s test_params_sources_s.f90
   test_params_species_s test_params_species_s.f90
   test_params_time_split_s test_params_time_split_s.f90
timer_m timer_m.f90

Module implementing a timer to measure time differences for benchmarking

timestep_m timestep_m.f90
   euler_s euler_s.f90
   pirock_s pirock_s.f90
   rk4_s rk4_s.f90
   strang_splitting_rkc_s strang_splitting_rkc_s.f90
   strang_splitting_s strang_splitting_s.f90
   timestep_init_cpu_s timestep_init_cpu_s.f90

Contains implementation of the initialization of CPU-supported operators for timestep_t

   timestep_init_gpu_s timestep_init_gpu_s.f90

Contains implementation of the initialization of GPU-supported operators for timestep_t

   timestep_init_s timestep_init_s.f90
   timestep_init_vspec_cpu_s timestep_init_vspec_cpu_s.f90

Contains implementation of the initialization of spectral-method-supported operators for timestep_t

   timestep_s timestep_s.f90
   timestep_test_s timestep_test_s.f90

To test the time step types in a unit test we replace the core routines in timestep by test subroutines that will simulate the workload of the timestep by test functions that can be analytically integrated. This result can then be used to test the timestep types.

Read more…
type_converters_m type_converters_m.f90