MODgvec_sGrid Module

Module ** sGrid **

1D grid in radial coordinate "s": Contains sgrid type definition and associated routines


Uses

  • module~~modgvec_sgrid~~UsesGraph module~modgvec_sgrid MODgvec_sGrid module~modgvec_globals MODgvec_Globals module~modgvec_sgrid->module~modgvec_globals iso_fortran_env iso_fortran_env module~modgvec_globals->iso_fortran_env

Used by

  • module~~modgvec_sgrid~~UsedByGraph module~modgvec_sgrid MODgvec_sGrid module~modgvec_base MODgvec_base module~modgvec_base->module~modgvec_sgrid module~modgvec_sbase MODgvec_sBase module~modgvec_base->module~modgvec_sbase module~modgvec_mhd3d_vars MODgvec_MHD3D_Vars module~modgvec_mhd3d_vars->module~modgvec_sgrid module~modgvec_mhd3d_vars->module~modgvec_base module~modgvec_readstate_vars MODgvec_ReadState_Vars module~modgvec_readstate_vars->module~modgvec_sgrid module~modgvec_readstate_vars->module~modgvec_base module~modgvec_readstate_vars->module~modgvec_sbase module~modgvec_sbase->module~modgvec_sgrid module~modgvec_transform_sfl MODgvec_Transform_SFL module~modgvec_transform_sfl->module~modgvec_sgrid module~modgvec_transform_sfl->module~modgvec_base proc~initmhd3d t_functional_mhd3d%InitMHD3D proc~initmhd3d->module~modgvec_sgrid proc~initmhd3d->module~modgvec_base proc~initmhd3d->module~modgvec_mhd3d_vars proc~readstatefilefromascii ReadStateFileFromASCII proc~readstatefilefromascii->module~modgvec_sgrid proc~readstatefilefromascii->module~modgvec_base proc~readstatefilefromascii->module~modgvec_readstate_vars proc~readstatefilefromascii->module~modgvec_sbase proc~restartfromstate RestartFromState proc~restartfromstate->module~modgvec_sgrid proc~restartfromstate->module~modgvec_base proc~restartfromstate->module~modgvec_mhd3d_vars proc~restartfromstate->module~modgvec_readstate_vars proc~transform_angles_sinterp Transform_Angles_sinterp proc~transform_angles_sinterp->module~modgvec_sgrid proc~transform_angles_sinterp->module~modgvec_base module~modgvec_gvec_to_castor3d_vars MODgvec_gvec_to_castor3d_Vars module~modgvec_gvec_to_castor3d_vars->module~modgvec_transform_sfl module~modgvec_gvec_to_gene_vars MODgvec_gvec_to_gene_Vars module~modgvec_gvec_to_gene_vars->module~modgvec_transform_sfl module~modgvec_gvec_to_hopr_vars MODgvec_gvec_to_hopr_vars module~modgvec_gvec_to_hopr_vars->module~modgvec_transform_sfl module~modgvec_gvec_to_jorek_vars MODgvec_gvec_to_jorek_Vars module~modgvec_gvec_to_jorek_vars->module~modgvec_base module~modgvec_py_state MODgvec_py_state module~modgvec_py_state->module~modgvec_base proc~addboundaryperturbation AddBoundaryPerturbation proc~addboundaryperturbation->module~modgvec_mhd3d_vars proc~analyze Analyze proc~analyze->module~modgvec_mhd3d_vars proc~applybc_fstrong ApplyBC_Fstrong proc~applybc_fstrong->module~modgvec_mhd3d_vars proc~applyprecond ApplyPrecond proc~applyprecond->module~modgvec_base proc~buildprecond BuildPrecond proc~buildprecond->module~modgvec_mhd3d_vars proc~buildtransform_sfl t_transform_sfl%BuildTransform_SFL proc~buildtransform_sfl->module~modgvec_base proc~eval_prof_r eval_prof_r proc~eval_prof_r->module~modgvec_readstate_vars proc~evalaux EvalAux proc~evalaux->module~modgvec_mhd3d_vars proc~evalenergy EvalEnergy proc~evalenergy->module~modgvec_mhd3d_vars proc~evalforce EvalForce proc~evalforce->module~modgvec_mhd3d_vars proc~evaluate_base_list_stz_all evaluate_base_list_stz_all proc~evaluate_base_list_stz_all->module~modgvec_base proc~evaluate_base_list_tz evaluate_base_list_tz proc~evaluate_base_list_tz->module~modgvec_base proc~evaluate_base_list_tz_all evaluate_base_list_tz_all proc~evaluate_base_list_tz_all->module~modgvec_base proc~evaluate_base_select evaluate_base_select proc~evaluate_base_select->module~modgvec_base proc~evaluate_base_tens evaluate_base_tens proc~evaluate_base_tens->module~modgvec_base proc~evaluate_base_tens_all evaluate_base_tens_all proc~evaluate_base_tens_all->module~modgvec_base proc~evaluate_hmap evaluate_hmap proc~evaluate_hmap->module~modgvec_mhd3d_vars proc~evaluate_hmap_derivs evaluate_hmap_derivs proc~evaluate_hmap_derivs->module~modgvec_mhd3d_vars proc~evaluate_hmap_only evaluate_hmap_only proc~evaluate_hmap_only->module~modgvec_mhd3d_vars proc~evaluate_hmap_only_pw evaluate_hmap_only_pw proc~evaluate_hmap_only_pw->module~modgvec_mhd3d_vars proc~evaluate_hmap_pw evaluate_hmap_pw proc~evaluate_hmap_pw->module~modgvec_mhd3d_vars proc~evaluate_jac_h_derivs evaluate_jac_h_derivs proc~evaluate_jac_h_derivs->module~modgvec_mhd3d_vars proc~evaluate_jac_h_derivs_pw evaluate_jac_h_derivs_pw proc~evaluate_jac_h_derivs_pw->module~modgvec_mhd3d_vars proc~evaluate_metric_derivs evaluate_metric_derivs proc~evaluate_metric_derivs->module~modgvec_mhd3d_vars proc~evaluate_profile evaluate_profile proc~evaluate_profile->module~modgvec_mhd3d_vars proc~evaluate_rho2_profile evaluate_rho2_profile proc~evaluate_rho2_profile->module~modgvec_mhd3d_vars proc~finalize_readstate Finalize_ReadState proc~finalize_readstate->module~modgvec_readstate_vars proc~finalizemhd3d t_functional_mhd3d%FinalizeMHD3D proc~finalizemhd3d->module~modgvec_mhd3d_vars proc~finalizemhd3d_evalfunc FinalizeMHD3D_EvalFunc proc~finalizemhd3d_evalfunc->module~modgvec_mhd3d_vars proc~find_pest_angles_2d find_pest_angles_2D proc~find_pest_angles_2d->module~modgvec_mhd3d_vars proc~find_pest_angles_2d->module~modgvec_transform_sfl proc~get_boozer get_boozer proc~get_boozer->module~modgvec_base proc~get_boozer->module~modgvec_mhd3d_vars proc~get_boozer_sinterp t_sfl_boozer%Get_Boozer_sinterp proc~get_boozer_sinterp->module~modgvec_base proc~get_field Get_Field proc~get_field->module~modgvec_readstate_vars proc~get_field->module~modgvec_gvec_to_jorek_vars proc~get_integration_points get_integration_points proc~get_integration_points->module~modgvec_base proc~get_integration_points_num get_integration_points_num proc~get_integration_points_num->module~modgvec_base proc~gvec_to_jorek_prepare gvec_to_jorek_prepare proc~gvec_to_jorek_prepare->module~modgvec_base proc~gvec_to_jorek_prepare->module~modgvec_readstate_vars proc~gvec_to_jorek_prepare->module~modgvec_gvec_to_jorek_vars proc~init Init proc~init->module~modgvec_mhd3d_vars proc~init_base Init_Base proc~init_base->module~modgvec_base proc~init_base->module~modgvec_readstate_vars proc~init_base->module~modgvec_gvec_to_jorek_vars proc~init_boozer init_boozer proc~init_boozer->module~modgvec_mhd3d_vars proc~init_gvec_to_jorek init_gvec_to_jorek proc~init_gvec_to_jorek->module~modgvec_readstate_vars proc~init_gvec_to_jorek->module~modgvec_gvec_to_jorek_vars proc~init_la_from_solution Init_LA_from_Solution proc~init_la_from_solution->module~modgvec_mhd3d_vars proc~initaverageaxis InitAverageAxis proc~initaverageaxis->module~modgvec_mhd3d_vars proc~initializemhd3d_evalfunc InitializeMHD3D_evalFunc proc~initializemhd3d_evalfunc->module~modgvec_mhd3d_vars proc~initprofilesgp InitProfilesGP proc~initprofilesgp->module~modgvec_mhd3d_vars proc~initsolution InitSolution proc~initsolution->module~modgvec_mhd3d_vars proc~initsolutionmhd3d t_functional_mhd3d%InitSolutionMHD3D proc~initsolutionmhd3d->module~modgvec_mhd3d_vars proc~lambda_solve Lambda_solve proc~lambda_solve->module~modgvec_base proc~minimize minimize proc~minimize->module~modgvec_mhd3d_vars proc~minimizemhd3d t_functional_mhd3d%MinimizeMHD3D proc~minimizemhd3d->module~modgvec_mhd3d_vars proc~readstate ReadState proc~readstate->module~modgvec_readstate_vars proc~select_base select_base proc~select_base->module~modgvec_base proc~select_base->module~modgvec_mhd3d_vars proc~select_base_dofs select_base_dofs proc~select_base_dofs->module~modgvec_base proc~select_base_dofs->module~modgvec_mhd3d_vars proc~transform_angles_3d Transform_Angles_3d proc~transform_angles_3d->module~modgvec_base proc~transform_sfl_init t_transform_sfl%transform_SFL_init proc~transform_sfl_init->module~modgvec_base proc~writestatetoascii WriteStateToASCII proc~writestatetoascii->module~modgvec_mhd3d_vars program~gvec_post GVEC_POST program~gvec_post->module~modgvec_readstate_vars proc~finalize_gvec_to_jorek finalize_gvec_to_jorek proc~finalize_gvec_to_jorek->module~modgvec_gvec_to_jorek_vars proc~get_cla_gvec_to_jorek get_CLA_gvec_to_jorek proc~get_cla_gvec_to_jorek->module~modgvec_gvec_to_jorek_vars proc~gvec_to_jorek_writetofile_ascii gvec_to_jorek_writeToFile_ASCII proc~gvec_to_jorek_writetofile_ascii->module~modgvec_gvec_to_jorek_vars

Variables

Type Visibility Attributes Name Initial
logical, private :: test_called = .FALSE.

Abstract Interfaces

abstract interface

  • private function i_fun_sgrid_find_elem(sf, x) result(iElem)

    Arguments

    Type IntentOptional Attributes Name
    class(c_sgrid), intent(in) :: sf
    real(kind=wp), intent(in) :: x

    Return Value integer

abstract interface

  • private subroutine i_sub_sgrid_init(sf, nElems_in, grid_type_in, sp_in)

    Arguments

    Type IntentOptional Attributes Name
    class(c_sgrid), intent(inout) :: sf
    integer, intent(in) :: nElems_in
    integer, intent(in) :: grid_type_in
    real(kind=wp), intent(in), optional :: sp_in(0:nElems_in)

abstract interface

  • private subroutine i_sub_sgrid_free(sf)

    Arguments

    Type IntentOptional Attributes Name
    class(c_sgrid), intent(inout) :: sf

abstract interface

  • private subroutine i_sub_sgrid_copy(sf, tocopy)

    Arguments

    Type IntentOptional Attributes Name
    class(c_sgrid), intent(inout) :: sf
    class(c_sgrid), intent(in) :: tocopy

abstract interface

  • private subroutine i_sub_sgrid_compare(sf, tocompare, is_same)

    Arguments

    Type IntentOptional Attributes Name
    class(c_sgrid), intent(in) :: sf
    class(c_sgrid), intent(in) :: tocompare
    logical, intent(out) :: is_same

Derived Types

type, public, ABSTRACT ::  c_sgrid

Type-Bound Procedures

procedure(i_sub_sgrid_init), public, deferred :: init
procedure(i_sub_sgrid_free), public, deferred :: free
procedure(i_sub_sgrid_copy), public, deferred :: copy
procedure(i_sub_sgrid_compare), public, deferred :: compare
procedure(i_fun_sgrid_find_elem), public, deferred :: find_elem

type, public, extends(c_sgrid) ::  t_sGrid

Components

Type Visibility Attributes Name Initial
logical, public :: initialized = .FALSE.
integer, public :: nElems

global number of radial elements

integer, public :: nElems_str

local number of radial elements per MPI subdomain !<<<<

integer, public :: nElems_end

local number of radial elements per MPI subdomain !<<<<

integer, public, ALLOCATABLE :: offset_elem(:)

allocated (0:nRanks), gives range on each rank: nElems_str:nElems_end=offset_elem(rank)+1:offset_elem(myRank+1)

integer, public :: grid_type

type of grid (stretching functions...)

real(kind=wp), public, ALLOCATABLE :: sp(:)

element point positions in [0,1], size(0:nElems)

real(kind=wp), public, ALLOCATABLE :: ds(:)

ds(i)=sp(i)-sp(i-1), size(1:nElems)

Type-Bound Procedures

procedure, public :: init => sGrid_init
procedure, public :: copy => sGrid_copy
procedure, public :: compare => sGrid_compare
procedure, public :: free => sGrid_free
procedure, public :: find_elem => sGrid_find_elem

Functions

private function sGrid_find_elem(sf, x) result(iElem)

find grid cell for certain position

Arguments

Type IntentOptional Attributes Name
class(t_sGrid), intent(in) :: sf

self

real(kind=wp), intent(in) :: x

Return Value integer


Subroutines

private subroutine sGrid_init(sf, nElems_in, grid_type_in, sp_in)

initialize the type sgrid with number of elements

Arguments

Type IntentOptional Attributes Name
class(t_sGrid), intent(inout) :: sf

self

integer, intent(in) :: nElems_in

total number of elements

integer, intent(in) :: grid_type_in

0, 1, 2, 3

real(kind=wp), intent(in), optional :: sp_in(0:nElems_in)

inner grid point positions, first position should be 0, last should be 1.

private subroutine sGrid_free(sf)

finalize the type sgrid

Arguments

Type IntentOptional Attributes Name
class(t_sGrid), intent(inout) :: sf

self

private subroutine sGrid_copy(sf, tocopy)

copy the type sgrid, copies sf <= tocopy ... call sf%copy(tocopy)

Arguments

Type IntentOptional Attributes Name
class(t_sGrid), intent(inout) :: sf

self

class(c_sgrid), intent(in) :: tocopy

private subroutine sGrid_compare(sf, tocompare, is_same)

compare to sf grid with input grid to see if they are the same

Arguments

Type IntentOptional Attributes Name
class(t_sGrid), intent(in) :: sf

self

class(c_sgrid), intent(in) :: tocompare
logical, intent(out) :: is_same

private subroutine sGrid_test(sf)

test sgrid variable

Arguments

Type IntentOptional Attributes Name
class(t_sGrid), intent(inout) :: sf

self