MODgvec_MHD3D Module

Module MHD3D

CONTAINS INITIALIZATION OF MHD 3D Energy functional that will be minimized


Uses

  • module~~modgvec_mhd3d~~UsesGraph module~modgvec_mhd3d MODgvec_MHD3D module~modgvec_globals MODgvec_Globals module~modgvec_mhd3d->module~modgvec_globals module~modgvec_mhd3d_minimize MODgvec_MHD3D_minimize module~modgvec_mhd3d->module~modgvec_mhd3d_minimize iso_fortran_env iso_fortran_env module~modgvec_globals->iso_fortran_env module~modgvec_mhd3d_minimize->module~modgvec_globals module~modgvec_sol_var_mhd3d MODgvec_sol_var_MHD3D module~modgvec_mhd3d_minimize->module~modgvec_sol_var_mhd3d module~modgvec_sol_var_mhd3d->module~modgvec_globals module~modgvec_c_sol_var MODgvec_c_sol_var module~modgvec_sol_var_mhd3d->module~modgvec_c_sol_var module~modgvec_c_sol_var->module~modgvec_globals

Used by

  • module~~modgvec_mhd3d~~UsedByGraph module~modgvec_mhd3d MODgvec_MHD3D module~modgvec_py_state MODgvec_py_state module~modgvec_py_state->module~modgvec_mhd3d module~modgvec_rungvec MODgvec_rungvec module~modgvec_rungvec->module~modgvec_mhd3d program~gvec_post GVEC_POST program~gvec_post->module~modgvec_mhd3d proc~cleanup cleanup proc~cleanup->module~modgvec_rungvec proc~start_rungvec start_rungvec proc~start_rungvec->module~modgvec_rungvec program~gvec GVEC program~gvec->module~modgvec_rungvec

Derived Types

type, public ::  t_functional_mhd3d

Components

Type Visibility Attributes Name Initial
logical, public :: initialized
type(t_minimizer_mhd3d), public, ALLOCATABLE :: minimizer

Type-Bound Procedures

procedure, public :: init => InitMHD3D
procedure, public :: initSolution => InitSolutionMHD3D
procedure, public :: minimize => MinimizeMHD3D
procedure, public :: free => FinalizeMHD3D

Functions

private function get_iMode(varname_in, mn_in, nfp_in)

automatically build the string to be read from parameterfile, varname + m,n mode number, and then read it from parameterfile

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: varname_in
integer, intent(in) :: mn_in(2)
integer, intent(in) :: nfp_in

Return Value real(kind=wp)


Subroutines

private subroutine InitMHD3D(sf)

Initialize Module

Read more…

Arguments

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

private subroutine InitProfile(sf, var, var_profile)

Arguments

Type IntentOptional Attributes Name
class(t_functional_mhd3d), intent(inout) :: sf
character(len=4), intent(in) :: var
class(c_rProfile), ALLOCATABLE :: var_profile

private subroutine InitSolutionMHD3D(sf)

Initialize Module

Arguments

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

private subroutine InitAverageAxis()

Overwrite axis with average axis by center of closed line of the boundary in each poloidal plane

Arguments

None

private subroutine InitSolution(U_init, which_init_in)

Initialize the solution with the given boundary condition

Read more…

Arguments

Type IntentOptional Attributes Name
class(t_sol_var_MHD3D), intent(inout) :: U_init
integer, intent(in) :: which_init_in

private subroutine Init_LA_from_Solution(U_init)

Initialize LAMBDA FROM U_init%X1,%X2 and iota profile, this computation is distributed over MPIranks

Read more…

Arguments

Type IntentOptional Attributes Name
class(t_sol_var_MHD3D), intent(inout) :: U_init

private subroutine AddBoundaryPerturbation(U_init, depth, blend_type)

Add boundary perturbation

Arguments

Type IntentOptional Attributes Name
class(t_sol_var_MHD3D), intent(inout) :: U_init
real(kind=wp), intent(in) :: depth
integer, intent(in) :: blend_type

private subroutine MinimizeMHD3D(sf, dt_in)

Compute Equilibrium, iteratively

Arguments

Type IntentOptional Attributes Name
class(t_functional_mhd3d), intent(inout) :: sf
real(kind=wp), intent(in), optional :: dt_in

private subroutine FinalizeMHD3D(sf)

Finalize Module

Arguments

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