Modules

ModuleSource FileDescription
allocate_data_cudaallocate_data_cuda.f90

Controls allocation of CUDA data

boundaries_braginskii_mboundaries_braginskii_m.f90

Parameters

boundaries_neutrals_mboundaries_neutrals_m.f90
checkpoint_monitor_mcheckpoint_monitor_m.f90

Module containing general driver for monitoring checkpoints

checksum_braginskii_mchecksum_braginskii_m.f90

Some basic diagnostics, execudeted during runtime

comm_handler_mcomm_handler_m.f90

Handles MPI topology and communicators

commons_misc_mcommons_misc_m.f90

Miscellaneous routines that are common to all models

communication_planes_mcommunication_planes_m.f90

Communication among planes Non-blocking communication allowing overlap of communication and computation

compute_electron_density_mcompute_electron_density_m.f90

Compute electron density using communication within species

coronal_impurities_mcoronal_impurities_m.f90

Module for reading and interpolating tabulated rate coefficients for radiation rates of impurities as a function of electron temperature Dependency on electron density is small and thus neglected

create_buffer_mcreate_buffer_m.f90

Contains routines to create buffer function

descriptors_braginskii_mdescriptors_braginskii_m.f90

Definition of additional descriptors not available from PARALLAX

descriptors_neutrals_mdescriptors_neutrals_m.f90

Definition of additional descriptors not available from PARALLAX

diagnostic_variable_mdiagnostic_variable_m.f90

Definition of diagnostic variable

diagnostics_braginskii_mdiagnostics_braginskii_m.f90

Wrapper for BRAGINSKII model diagnostics Note: The whole diagnostics framework only works foar axisymmetric equilibria

   diagnostics_braginskii_sdiagnostics_braginskii_s.f90
diagnostics_field_mdiagnostics_field_m.f90

Module for writing out full field diagnostics for the BRAGINSKII model

diagnostics_group_mdiagnostics_group_m.f90

Base module for diagnostic groups

diagnostics_helpers_mdiagnostics_helpers_m.f90

Module containing useful diagnostic computation routines

diagnostics_lineout_mdiagnostics_lineout_m.f90

Module for computing lineout diagnostics for the BRAGINSKII model

   diagnostics_lineout_params_sdiagnostics_lineout_params_s.f90

Parameters for the diagnostics module related to lineouts

diagnostics_packet_mdiagnostics_packet_m.f90

Module for diagnostics packet

diagnostics_scalar_mdiagnostics_scalar_m.f90

Module for computing scalar diagnostics for the BRAGINSKII model

diagnostics_template_mdiagnostics_template_m.f90

Performs diagnostics on state

diagnostics_zonal_mdiagnostics_zonal_m.f90

Module for computing zonal diagnostics for the BRAGINSKII model

diff_coeff_neutrals_mdiff_coeff_neutrals_m.f90

Module for calculating the diffusion coefficient D_N

equilibrium_storage_mequilibrium_storage_m.f90

Storage of equilibrium data on mesh enabling lookup instead of computation Can be used for faster performance at certain locations

   equilibrium_storage_netcdf_sequilibrium_storage_netcdf_s.f90

Routines related with NETCDF I/O of equilibroim_storage

error_handling_grillix_merror_handling_grillix_m.f90

Contains functionality for error handling in GRILLIX, based on PARALLAX error handling.

facade_params_mfacade_params_m.f90

Holds all parameters of BRAGINSKII model and neutral parameters This is a facade module to ease handling of parameters

gyroviscosity_mgyroviscosity_m.f90

Computations related with gyroviscosity

heat_flux_mheat_flux_m.f90

Calculation of the heat flux according to the chosen model

helpers_grillix_mhelpers_grillix_m.f90

GRILLIX specific helper routines for unit tests

helpers_mesh_sample_mhelpers_mesh_sample_m.f90

Creates test mehses that can be used further on for unit tests Mesh itself is tested within fci-core

immersed_template_mimmersed_template_m.f90

Routines related with parallel (Sheath) boundaries treated with immersion method

init_braginskii_minit_braginskii_m.f90

Sets initial state for BRAGINSKII model

   init_braginskii_profile_sinit_braginskii_profile_s.f90

Routines for initialisation of variables with profile

init_diffusion_minit_diffusion_m.f90

Sets initial state for diffusion model

init_neutrals_minit_neutrals_m.f90

Sets initial state for neutrals module

init_template_minit_template_m.f90

Creates an initial state

init_zhdanov_minit_zhdanov_m.f90

Sets initial state for ZHDANOV model

   init_zhdanov_profile_sinit_zhdanov_profile_s.f90

Routines for initialisation of variables with profile

inplane_operators_minplane_operators_m.f90

Operators acting within poloidal plane (~perpendicular)

   inplane_operators_sinplane_operators_s.f90
iol_source_miol_source_m.f90

Compute ion orbit loss source/sink coupling to ion-orbit-loss-standalone see https://gitlab.mpcdf.mpg.de/phoenix/ion-orbit-loss-standalone [R.W. Brzozowski III, Phys. Plasmas 26:042511 (2019), https://doi.org/10.1063/1.5075613]

   iol_source_eval_siol_source_eval_s.f90

Routines related with evaluation of IOL sources

   iol_source_init_siol_source_init_s.f90

Routines related with initialisation of IOL sources

   iol_source_io_siol_source_io_s.f90

Routines related with I/O of IOL sources

mask_data_mmask_data_m.f90

Mask arrays based on static_data set

   mask_data_netcdf_smask_data_netcdf_s.f90

Routines related with NetCDF I/O of mask_data

mesh_index_helpers_mmesh_index_helpers_m.f90

Module containing useful routines for handling mesh indices

mms_braginskii_circular_mmms_braginskii_circular_m.f90

MMS solutions and sources for braginskii model in circular geometry

mms_braginskii_mmms_braginskii_m.f90

Implementation of Method of Manufactured Solutions for BRAGINSKII model in circular geometry

mms_braginskii_slab_mmms_braginskii_slab_m.f90

MMS solutions and sources for braginskii model in slab geometry

mms_diffusion_circular_mmms_diffusion_circular_m.f90

MMS Solutions and Sources for diffusion model in circular geometry

mms_diffusion_mmms_diffusion_m.f90

Method of Manufactured Solutions for diffusion model

mms_diffusion_slab_mmms_diffusion_slab_m.f90

MMS Solutions and Sources for diffusion model in slab geometry

mms_neutrals_circular_mmms_neutrals_circular_m.f90

MMS solutions and sources for braginskii model in circular geometry

mms_neutrals_mmms_neutrals_m.f90

Implementation of Method of Manufactured Solutions for the Neutrals model

mms_neutrals_slab_mmms_neutrals_slab_m.f90

MMS solutions and sources for Neutrals model in slab geometry

mms_template_mmms_template_m.f90

Method of Manufactured Solutions for template model

   mms_template_circular_toroidal_smms_template_circular_toroidal_s.f90

MMS Solutions and Sources for template model in circular toroidal geometry

   mms_template_slab_smms_template_slab_s.f90

MMS Solutions and Sources for template model in slab geometry

mms_zhdanov_mmms_zhdanov_m.f90

Method of Manufactured Solutions for Zhdanov model Note: Usage of camel case conventiuon for consistency in naming with mathematica

   mms_zhdanov_circular_smms_zhdanov_circular_s.f90

MMS Solutions and Sources for Zhdanov model in circular geometry

   mms_zhdanov_slab_smms_zhdanov_slab_s.f90

MMS Solutions and Sources for Zhdanov model in slab geometry

model_apar_shift_mmodel_apar_shift_m.f90

Implementation of apar_shift model

model_braginskii_mmodel_braginskii_m.f90

Implementation of BRAGINSKII model

model_diffusion_mmodel_diffusion_m.f90

Implementation of diffusion model

model_template_mmodel_template_m.f90

Implementation of a template model, from where development of a new model can be started.

model_zhdanov_mmodel_zhdanov_m.f90

Implementation of ZHDANOV model

multistep_mmultistep_m.f90

Time-integration methods based on multistep methods

Read more…
   karniadakis_skarniadakis_s.f90
   multistep_storage_smultistep_storage_s.f90
neutrals_module_mneutrals_module_m.f90

Implementation of NEUTRALS model

nonaligned_operators_mnonaligned_operators_m.f90

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

ohm_electromagnetic_braginskii_mohm_electromagnetic_braginskii_m.f90

This module solves the electromagnetic and inertial part in Ohm's law

Read more…
parallel_map_mparallel_map_m.f90

Parallel operators and mapping

   parallel_map_build_sparallel_map_build_s.f90

Rotines related with build of map

   parallel_map_netcdf_sparallel_map_netcdf_s.f90

Rotines related with netcdf I/O

   parallel_map_operators_cuda_sparallel_map_operators_cuda_s.f90

Parallel operator routines (mapping, parallel gradient/divergence) CUDA implementation

   parallel_map_operators_sparallel_map_operators_s.f90

Parallel operator routines (mapping, parallel gradient/divergence)

   parallel_map_sparallel_map_s.f90
parallel_target_flux_mparallel_target_flux_m.f90

Module related to parallel fluxes onto the target plates

   parallel_target_flux_build_sparallel_target_flux_build_s.f90

Routines for building parallel target markers

   parallel_target_flux_compute_sparallel_target_flux_compute_s.f90

Routines for computing parallel fluxes into target

   parallel_target_flux_netcdf_sparallel_target_flux_netcdf_s.f90

Routines for parallel target marker file I/O

parallelisation_setup_mparallelisation_setup_m.f90

Initialises parallelisation framework

params_apar_shift_mparams_apar_shift_m.f90

Parameters for the apar shift model Parameters related to the evolution equation of apar_shift

params_brag_boundaries_parpen_mparams_brag_boundaries_parpen_m.f90

Parameters for the BRAGINSKII model related with boundaries_parpen

params_brag_boundaries_perp_mparams_brag_boundaries_perp_m.f90

Parameters for the BRAGINSKII model related with boundaries_perp

params_brag_buffer_mparams_brag_buffer_m.f90

Parameters for the BRAGINSKII model related with buffer

params_brag_floors_mparams_brag_floors_m.f90

Parameters for the BRAGINSKII model related with floors

params_brag_init_select_mparams_brag_init_select_m.f90

Parameters related with selection of initial state

params_brag_model_mparams_brag_model_m.f90

Parameters for the BRAGINSKII model related with model, i.e. physics parameters

params_brag_numdiss_mparams_brag_numdiss_m.f90

Parameters for the BRAGINSKII model related with numerical dissipation

params_brag_pardiss_model_mparams_brag_pardiss_model_m.f90

Parameters for the BRAGINSKII model related with pardiss_model

params_brag_parsolver_te_mparams_brag_parsolver_te_m.f90

Parameters for parallel aligned 3D solver for electron temperature Included via template with preprocessor macros

params_brag_parsolver_ti_mparams_brag_parsolver_ti_m.f90

Parameters for parallel aligned 3D solver for ion temperature Included via template with preprocessor macros

params_brag_parsolver_upar_mparams_brag_parsolver_upar_m.f90

Parameters for parallel aligned 3D solver for parallel ion velocity Included via template with preprocessor macros

params_brag_sources_external_select_mparams_brag_sources_external_select_m.f90

Parameters for external sources in Braginskii model

params_brag_switches_mparams_brag_switches_m.f90

Parameters for the Braiginskii model related with switches for individual terms

params_diffusion_boundaries_parpen_mparams_diffusion_boundaries_parpen_m.f90

Parameters for the DIFFUSION model related with parallel penalisation boundaries

params_diffusion_boundaries_perp_mparams_diffusion_boundaries_perp_m.f90

Parameters for the DIFFUSION model related with perpendicular boundaries

params_diffusion_init_select_mparams_diffusion_init_select_m.f90

Parameters for the DIFFUSION model related with selection of initial state

params_diffusion_mparams_diffusion_m.f90

Holds all parameters of diffusion model

params_diffusion_mms_mparams_diffusion_mms_m.f90

Parameters for the DIFFUSION model related with MMS

params_diffusion_model_mparams_diffusion_model_m.f90

Parameters for diffusion model

params_diffusion_parsolver_mparams_diffusion_parsolver_m.f90

Parameters for parallel aligned 3D solver Included via template with preprocessor macros

params_diffusion_tstep_mparams_diffusion_tstep_m.f90

Parameters for the DIFFUSION model related with time-stepping

params_feature_selection_mparams_feature_selection_m.f90

Paramete related with selection of features

params_geometry_mparams_geometry_m.f90

Parameter for selection of equilibrium

params_hsolver_mparams_hsolver_m.f90

Parameters for elliptic (2D) solvers

params_impy_coronal_mparams_impy_coronal_m.f90

Parameters related with cornal impurity

params_multigrid_setup_mparams_multigrid_setup_m.f90

Parameter for setup of multigrids

params_neut_boundaries_parpen_mparams_neut_boundaries_parpen_m.f90

Parameters for the neutrals model related with parallel boundary conditions

params_neut_boundaries_perp_mparams_neut_boundaries_perp_m.f90

Parameters for the neutrals model related with peprendicyular boundary conditions

params_neut_data_paths_mparams_neut_data_paths_m.f90

Parameters for the filepaths of neutrals data

params_neut_floors_mparams_neut_floors_m.f90

Parameters for the neutrals model related with floors

params_neut_init_select_mparams_neut_init_select_m.f90

Parameters for the neutrals model related selection of initial state

params_neut_model_mparams_neut_model_m.f90

Parameters for the neutrals model related with model, i.e. physics parameters

params_neut_switches_mparams_neut_switches_m.f90

Parameters for the neutrals model related with switches

params_template_mparams_template_m.f90

Contains all parameters related with template model

   io_params_template_features_sio_params_template_features_s.f90

Handles I/O of timestep parameters of template models

   io_params_template_model_sio_params_template_model_s.f90

Handles I/O of model parameters of template models

   io_params_template_parbnd_sio_params_template_parbnd_s.f90

Handles I/O of parameters related with parallel (Sheath) boundaries of template models

   io_params_template_paths_sio_params_template_paths_s.f90

Handles I/O of paths parameters of template models

   io_params_template_tstep_sio_params_template_tstep_s.f90

Handles I/O of timestep parameters of template models

params_tstep_mparams_tstep_m.f90

Parameters for the Braginskii model related with time-stepping

params_zhdanov_general_mparams_zhdanov_general_m.f90

General parameters for the ZHDANOV model are stored here and its input is controlled

params_zhdanov_species_mparams_zhdanov_species_m.f90

Species related parameters for the ZHDANOV model are stored here and its input is controlled

penalisation_braginskii_mpenalisation_braginskii_m.f90
penalisation_mpenalisation_m.f90

Penalisation

   penalisation_build_spenalisation_build_s.f90

Routines related with building penalisation

   penalisation_netcdf_spenalisation_netcdf_s.f90

Routines related with I/O of penalisation

   penalisation_spenalisation_s.f90
   penalisation_wip3d_build_spenalisation_wip3d_build_s.f90

Routines related with building penalisation for 3D stellarator geometries This is yet an experimental feature

penalisation_neutrals_mpenalisation_neutrals_m.f90
perp_bnd_flux_mperp_bnd_flux_m.f90

Module for computing perpendicular fluxes through domain

   perp_bnd_flux_build_sperp_bnd_flux_build_s.f90

Routines related with building perpendicular boundary flux module

   perp_bnd_flux_netcdf_sperp_bnd_flux_netcdf_s.f90

Routines for storing and reading boundary polygons related to perpendicular boundary flux module

physical_constants_mphysical_constants_m.f90

Physical constants

polar_operators_mpolar_operators_m.f90

Implementation of polar operators, i.e. - map from Cartesian to Polar mesh - surface average - flux surface average

polarisation_braginskii_mpolarisation_braginskii_m.f90

This module handles the polarisation part in the quasi-neutrality equation, particularly the time discretisation

Read more…
polars_mpolars_m.f90

Polar grid and map operators

   polars_spolars_s.f90
polygon_in_mesh_mpolygon_in_mesh_m.f90

Definition of polygon running within mesh

   polygon_in_mesh_build_spolygon_in_mesh_build_s.f90

Routines related with building penalisation

   polygon_in_mesh_netcdf_spolygon_in_mesh_netcdf_s.f90

Routines related with I/O of polygon_in_mesh

precision_grillix_mprecision_grillix_m.f90

Definition of precision for GRILLIX

rate_coeff_neutrals_mrate_coeff_neutrals_m.f90

Module for calculating fits for rate coefficients k_iz, k_rec and cooling rate coefficients w_iz, p_rec

recycling_mrecycling_m.f90

Module for computing plasma/neutrals source rates due to recycling

runge_kutta_mrunge_kutta_m.f90

Runge-Kutta time stepping scheme - Only fully explicit - Right hand side via call to external subroutine - More generic than KArniadakis, i.e. not relying on variables or meshes

   runge_kutta_srunge_kutta_s.f90
snapshot_msnapshot_m.f90

Writing and reading snapshot files

snapshots_helpers_msnapshots_helpers_m.f90

Module containing useful routines for handling snapshots

solver_aligned3d_msolver_aligned3d_m.f90

Routines for 3d elliptic solver along magnetic field lines

   solve_aligned3d_adjoint_ssolve_aligned3d_adjoint_s.f90

Contains routine that performs a 3D aligned solve for adjoint elliptic problem

   solve_aligned3d_ssolve_aligned3d_s.f90

Contains routine that performs a 3D aligned solve for canonical elliptic problem

sources_external_msources_external_m.f90

External sources

startups_mstartups_m.f90

Some generic routines for startup phase

state_template_mstate_template_m.f90

Holds current state and handles its I/O via netcdf

   state_template_netcdf_sstate_template_netcdf_s.f90

NetCDF I/O for state_template

static_data_mstatic_data_m.f90

Holds static data that is time independent.

   static_data_bnd_flux_sstatic_data_bnd_flux_s.f90

Handles static data related with boundary flux

   static_data_equi_on_mesh_sstatic_data_equi_on_mesh_s.f90

Handles static data related with equi_on_mesh

   static_data_equi_sstatic_data_equi_s.f90

Handles static data related with equilibrium

   static_data_field_solver_sstatic_data_field_solver_s.f90

Handles static data related with field_solver

   static_data_map_sstatic_data_map_s.f90

Handles static data related with map

   static_data_masks_sstatic_data_masks_s.f90

Handles static data related with masks

   static_data_multigrid_sstatic_data_multigrid_s.f90

Handles static data related with multigrid

   static_data_parbnd_immersed_sstatic_data_parbnd_immersed_s.f90

Handles static data related with bnd_immersed

   static_data_parbnd_taylor_sstatic_data_parbnd_taylor_s.f90

Handles static data related with parbnd_taylors

   static_data_polars_sstatic_data_polars_s.f90

Handles static data related with polars

   static_data_vtk_sstatic_data_vtk_s.f90

Handles built of VTK meshes or visualisation

status_codes_grillix_mstatus_codes_grillix_m.f90

Contains a collection of GRILLIX error and warning (=status) codes

taylor_template_mtaylor_template_m.f90

Routines related with parallel (Sheath) boundaries treated with Taylor's method

technical_constants_mtechnical_constants_m.f90

Technical constants

test_apar_fluct_evaluate_mtest_apar_fluct_evaluate_m.pf

Tests regarding apar_shift module Test evaluation of apar_fluct in an axisymmetric geomtery which involves toroidal average

test_apar_shift_mtest_apar_shift_m.pf

Tests regarding apar_shift module Sets up an analytical expression of apar varying in time Solve apar_shift according to the prescribed apar To check the convergence, you need decrease dtau manually in '/src/models/braginskii/evolution_apar_shift/tests/params_apar_shift.in'

test_checkpoint_monitor_mtest_checkpoint_monitor_m.pf

Tests regarding the checkpoint monitor module Sets up several monitors and simulates a timestepping loop, checking their state and tallies at each timestep

test_comm_handler_mtest_comm_handler_m.pf
test_communication_planes_mtest_communication_planes_m.pf

Test of module communication_planes_m

test_diagnostics_helpers_mtest_diagnostics_helpers_m.pf
test_equilibrium_storage_mtest_equilibrium_storage_m.pf
test_masked_data_mtest_masked_data_m.pf

tests on masked_data

test_mesh_index_helpers_mtest_mesh_index_helpers_m.pf
test_parallel_map3d_mtest_parallel_map3d_m.pf

Tests for the map routines in 3d stellarator geometries

test_parallel_map_mtest_parallel_map_m.pf
test_parallel_map_operators_mtest_parallel_map_operators_m.pf

Test of parallel operators within map module

test_parallel_target_flux_mtest_parallel_target_flux_m.pf

Tests of parallel target flux module

test_params_diffusion_mtest_params_diffusion_m.pf

Tests of parameter handling of diffusion model

test_penalisation_mtest_penalisation_m.pf

Tests for most of the penalisation module

test_polar_operators_mtest_polar_operators_m.pf
test_polygon_in_mesh_mtest_polygon_in_mesh_m.pf

Unit tests for polygon_on_mesh_t

test_timestepping_mtest_timestepping_m.pf
test_type_conversion_mtest_type_conversion_m.pf

Tests of type conversion module

test_variable_mtest_variable_m.pf

Test of module variable_mk

timestep_braginskii_mtimestep_braginskii_m.f90

Implementation of BRAGINSKII model

timestep_diffusion_mtimestep_diffusion_m.f90

Implementation of diffusion model

timestep_template_mtimestep_template_m.f90

Advances template model by one timestep

   component_mms_sources_scomponent_mms_sources_s.f90

Application of MMS sources and boundary conditions

   component_pardiff_scomponent_pardiff_s.f90

Implementation of paralllel diffusion terms

   component_partransp_scomponent_partransp_s.f90

Implementation of paralllel transport model

   component_perptransp_scomponent_perptransp_s.f90

Implementation of perpendicular (diffusive) transport model

timestep_zhdanov_mtimestep_zhdanov_m.f90

Implementation of ZHDANOV model

type_conversion_mtype_conversion_m.f90

Functions for converting datatypes

variable_mvariable_m.f90

Definition of variable

   variable_halos_svariable_halos_s.f90

Routines related with handling halos of variables

   variable_netcdf_svariable_netcdf_s.f90

Routines related with NETCDF I/O of variables

   variable_svariable_s.f90
   variable_set_svariable_set_s.f90

Routines related with setting variable values