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_c_functional MODgvec_c_functional module~modgvec_mhd3d->module~modgvec_c_functional module~modgvec_globals MODgvec_Globals module~modgvec_mhd3d->module~modgvec_globals module~modgvec_c_functional->module~modgvec_globals iso_fortran_env iso_fortran_env module~modgvec_globals->iso_fortran_env

Used by

  • module~~modgvec_mhd3d~~UsedByGraph module~modgvec_mhd3d MODgvec_MHD3D proc~initfunctional InitFunctional proc~initfunctional->module~modgvec_mhd3d

Derived Types

type, public, extends(t_functional) ::  t_functional_mhd3d

Components

Type Visibility Attributes Name Initial
integer, public :: which_functional

points to functional (1: MHD3D)

logical, public :: initialized

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, h)

Add boundary perturbation

Arguments

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

private subroutine MinimizeMHD3D(sf)

Compute Equilibrium, iteratively

Arguments

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

private subroutine MinimizeMHD3D_descent(sf)

Compute Equilibrium, iteratively

Arguments

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

private subroutine FinalizeMHD3D(sf)

Finalize Module

Arguments

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