static_data_m Module

Holds static data that is time independent.



Contents


Variables

Type Visibility Attributes Name Initial
logical, protected :: static_data_is_initialized

True if full static_data set is initialized

class(equilibrium_t), public, allocatable :: equi

Equilibrium

logical, protected :: equi_is_initialized = .false.

True if equi is initialized

type(mesh_cart_t), public :: mesh_cano

Mesh (canonical) within poloidal plane

type(mesh_cart_t), public :: mesh_stag

Mesh (staggered) within poloidal plane

type(multigrid_t), public :: multigrid_cano

Multigrid (canonical)

type(multigrid_t), public :: multigrid_stag

Multigrid (staggered)

logical, protected :: multigrid_is_initialized = .false.

True if multigrids and meshes are initialized

type(equilibrium_storage_t), public, target :: equi_on_cano

Equilibrim quantities on canonical mesh

type(equilibrium_storage_t), public, pointer :: equi_on_stag => null()

Equilibrim quantities on staggered mesh. Points to equi_on_cano for axisymmetric case and to equi_on_stag_mem for non-axisymmetric case

logical, protected :: equi_on_mesh_is_initialized = .false.

True, if equi_on_cano/stag are initialized

class(helmholtz_solver_t), public, allocatable, target :: field_solver_cano

Elliptic 2D field solver on canonical mesh

class(helmholtz_solver_t), public, pointer :: field_solver_stag => null()

Elliptic 2D field solver on staggered mesh Points to field_solver_cano for axisymmetric case and to field_solver_stag_mem for non-axisymmetric case

logical, protected :: field_solver_is_initialized = .false.

True, if field_solver is initialized

type(parallel_map_t), public :: map

Parallel map

logical, protected :: map_is_initialized = .false.

True, if map is initialized

type(penalisation_t), public, target :: parbnd_immersed_cano

Immersed boundaries on canonical mesh

type(penalisation_t), public, pointer :: parbnd_immersed_stag => null()

Immersed boundaries on staggered mesh. Points to parbnd_immersed_cano for axisymmetric case and to parbnd_immersed_stag_mem for non-axisymmetric case

logical, protected :: parbnd_immersed_is_initialized = .false.

True, if parbnd_immersed is initialized

type(parbnd_taylor_t), public, target :: parbnd_taylor_cano

Parallel boundary information based on taylor method for canonical mesh

type(parbnd_taylor_t), public, pointer :: parbnd_taylor_stag => null()

parbnd_taylor on staggered mesh. Points to parbnd_taylor_cano for axisymmetric case and to parbnd_taylor_stag_mem for non-axisymmetric case

logical, protected :: parbnd_taylor_is_initialized = .false.

True, if parbnd_taylor is initialized

type(polars_t), public, target :: polars_cano

Polar grid, map and partial (flux)-surface operators for canonical mesh

type(polars_t), public, pointer :: polars_stag => null()

Polar grid, map and partial (flux)-surface operators for staggered mesh Points to polars_cano for axisymmetric case and to polars_stag_mem for non-axisymmetric case

logical, protected :: polars_is_initialized = .false.

True, if polars is initialized

type(parallel_target_flux_t), public, target :: parflux_utils_cano

Parallel target flux markers and operators for canonical mesh

type(parallel_target_flux_t), public, pointer :: parflux_utils_stag => null()

Parallel target flux markers and operators for staggered mesh Points to parflux_utils_cano for axisymmetric case and to parflux_utils_stag_mem for non-axisymmetric case

type(perp_bnd_flux_t), public, target :: perp_bnd_flux_cano

Perpendicular flux utilities for canonical mesh

type(perp_bnd_flux_t), public, pointer :: perp_bnd_flux_stag => null()

Perpendicular flux utilities for staggered mesh Points to perp_bnd_flux_cano for axisymmetric case and to perp_bnd_flux_stag_mem for non-axisymmetric case

logical, protected :: bnd_flux_is_initialized = .false.

True, if bnd_flux utilities are initialized

type(mask_data_t), public, target :: masks_cano

Mask arrays for canonical mesh

type(mask_data_t), public, pointer :: masks_stag => null()

Mask arrays for staggered mesh Points to masks_cano for axisymmetric case and to masks_stag_mem for non-axisymmetric case

logical, protected :: masks_is_initialized = .false.

True, if masks are initialized

integer, protected :: cntrl_build_multigrid = BUILD_AND_WRITE

Controls build and NetCDF I/O for multigrid/mesh

integer, protected :: cntrl_build_equi_on_mesh = BUILD_AND_WRITE

Controls build and NetCDF I/O for equilibrium storage on mesh

integer, protected :: cntrl_build_map = BUILD_AND_WRITE

Controls build and NetCDF I/O for map

integer, protected :: cntrl_build_parbnd_immersed = BUILD_AND_WRITE

Controls build and NetCDF I/O for parbnd_immersed

integer, protected :: cntrl_build_parbnd_taylor = NONE

Controls build and NetCDF I/O for parbnd_taylor

integer, protected :: cntrl_build_polars = BUILD_AND_WRITE

Controls build and NetCDF I/O for polars

integer, protected :: cntrl_build_bnd_flux = NONE

Controls build and NetCDF I/O for bnd_flux utilities

integer, protected :: cntrl_build_masks = BUILD_AND_WRITE

Controls build and NetCDF I/O for masks

integer, protected :: cntrl_build_vtkmesh = NONE

Controls build for vtk (3D visualisation) mesh Only available, if compiled with -DPARALLAX_ENABLE_VTK=ON

character(len=PATHLEN_MAX), protected :: static_data_dirpath = 'trunk'

Directory path where to read and/or write NetCDF files from

character(len=PATHLEN_MAX), protected :: static_data_parpath = 'params_static_data.nml'

Filepath where to read parameters for initialisation of static data

logical, protected :: enable_debug_output = .true.

Set to true, to activate more verbose output


Enumerations

enum, bind(c)

Enumerators

enumerator:: NONE = 0

Does not build component

enumerator:: BUILD_AND_WRITE = 1

Builds component and writes it to NetCDF file

enumerator:: READ = 2

Reads component from netdcf file

enumerator:: BUILD_NOWRITE = 3

Builds component without NetCDF output

Description

Available values to control build and NetCDF I/O of individual components


Interfaces

interface

  • public module subroutine static_equi_init(par_filepath)

    Initializes equi as part of static data

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in), optional :: par_filepath

    Filename, where to read equilibrium parameters from

interface

  • public module subroutine static_multigrid_init(comm_handler, par_filepath, nf90_filepath)

    Initializes multigrid and mesh (canonical and staggered) as part of static data

    Arguments

    Type IntentOptional Attributes Name
    type(comm_handler_t), intent(in) :: comm_handler

    Communication handler

    character(len=*), intent(in), optional :: par_filepath

    Filename, where to read multigrid parameters from

    character(len=*), intent(in), optional :: nf90_filepath

    Filename, where to read/write multigrid NetCDF file, If not present NetCDF I/O happens to static_data_dirpath directory

interface

  • public module subroutine static_equi_on_mesh_init(comm_handler, nf90_filepath)

    Initializes equi_on_mesh (canonical and staggered) as part of static data

    Arguments

    Type IntentOptional Attributes Name
    type(comm_handler_t), intent(in) :: comm_handler

    Communication handler

    character(len=*), intent(in), optional :: nf90_filepath

    Filename, where to read/write equi_on_mesh NetCDF file, If not present NetCDF I/O happens to static_data_dirpath directory

interface

  • public module subroutine static_field_solver_init(par_filepath)

    Initializes field_solver (canonical and staggered) as part of static data

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in), optional :: par_filepath

    Filename, where to read field_solver parameters from

interface

  • public module subroutine static_map_init(comm_handler, par_filepath, nf90_filepath)

    Initializes parallel map as part of static data

    Arguments

    Type IntentOptional Attributes Name
    type(comm_handler_t), intent(in) :: comm_handler

    Communication handler

    character(len=*), intent(in), optional :: par_filepath

    Filename, where to read map parameters from

    character(len=*), intent(in), optional :: nf90_filepath

    Filename, where to read/write map NetCDF file, If not present NetCDF I/O happens to static_data_dirpath directory

interface

  • public module subroutine static_parbnd_immersed_init(comm_handler, par_filepath, nf90_filepath)

    Initializes parbnd_immersed as part of static data

    Arguments

    Type IntentOptional Attributes Name
    type(comm_handler_t), intent(in) :: comm_handler

    Communication handler

    character(len=*), intent(in), optional :: par_filepath

    Filename, where to read parbnd_immersed parameters from

    character(len=*), intent(in), optional :: nf90_filepath

    Filename, where to read/write parbnd_immersed NetCDF file, If not present NetCDF I/O happens to static_data_dirpath directory

interface

  • public module subroutine static_parbnd_taylor_init(comm_handler, par_filepath, nf90_filepath)

    Initializes parbnd_taylor as part of static data

    Arguments

    Type IntentOptional Attributes Name
    type(comm_handler_t), intent(in) :: comm_handler

    Communication handler

    character(len=*), intent(in), optional :: par_filepath

    Filename, where to read parbnd_taylor parameters from

    character(len=*), intent(in), optional :: nf90_filepath

    Filename, where to read/write parbnd_taylor NetCDF file, If not present NetCDF I/O happens to static_data_dirpath directory

interface

  • public module subroutine static_polars_init(comm_handler, par_filepath, nf90_filepath)

    Initializes polars as part of static data

    Arguments

    Type IntentOptional Attributes Name
    type(comm_handler_t), intent(in) :: comm_handler

    Communication handler

    character(len=*), intent(in), optional :: par_filepath

    Filename, where to read polars parameters from

    character(len=*), intent(in), optional :: nf90_filepath

    Filename, where to read/write polars NetCDF file, If not present NetCDF I/O happens to static_data_dirpath directory

interface

  • public module subroutine static_bnd_flux_init(comm_handler, par_filepath, nf90_filepath)

    Initializes bnd_flux as part of static data

    Arguments

    Type IntentOptional Attributes Name
    type(comm_handler_t), intent(in) :: comm_handler

    Communication handler

    character(len=*), intent(in), optional :: par_filepath

    Filename, where to read bnd_flux parameters from

    character(len=*), intent(in), optional :: nf90_filepath

    Filename, where to read/write bnd_flux NetCDF file, If not present NetCDF I/O happens to static_data_dirpath directory

interface

  • public module subroutine static_masks_init(comm_handler, nf90_filepath)

    Initializes masks as part of static data

    Arguments

    Type IntentOptional Attributes Name
    type(comm_handler_t), intent(in) :: comm_handler

    Communication handler

    character(len=*), intent(in), optional :: nf90_filepath

    Filename, where to read/write masks NetCDF file, If not present NetCDF I/O happens to static_data_dirpath directory

interface

  • public module subroutine build_vtk_mesh(comm_handler, par_filepath, dirpath)

    Builds VTK mesh for 3D visualisation Functionality only available if compiled with -DENABLE_VTK=ON

    Arguments

    Type IntentOptional Attributes Name
    type(comm_handler_t), intent(in) :: comm_handler

    Communication handler

    character(len=*), intent(in), optional :: par_filepath

    Filename, where to read VTK parameters from

    character(len=*), intent(in), optional :: dirpath

    Directory, where to write VTK meshes to


Subroutines

public subroutine static_all_components_init(comm_handler, par_filepath)

Initializes a complete static data set with all components

Arguments

Type IntentOptional Attributes Name
type(comm_handler_t), intent(in) :: comm_handler

Communication handler

character(len=*), intent(in), optional :: par_filepath

Filename, where to read parameters for all components from

public subroutine finalize_static()

Cleans up temporary data, that was used during initialization stage, and sets static_data_is_initialized to true

Arguments

None

public subroutine read_build_static(par_filepath)

Reads parameters that control build of static data

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in), optional :: par_filepath

Filename, where to read control build parameters from

public subroutine display_build_static()

Writes control build parameters of static data parameters to screen

Arguments

None