MODgvec_sol_var_MHD3D Module

Module ** sol_var_MHD3D **

Solution variable for MHD3D functional


Uses

  • module~~modgvec_sol_var_mhd3d~~UsesGraph module~modgvec_sol_var_mhd3d MODgvec_sol_var_MHD3D module~modgvec_c_sol_var MODgvec_c_sol_var module~modgvec_sol_var_mhd3d->module~modgvec_c_sol_var module~modgvec_globals MODgvec_Globals module~modgvec_sol_var_mhd3d->module~modgvec_globals module~modgvec_c_sol_var->module~modgvec_globals iso_fortran_env iso_fortran_env module~modgvec_globals->iso_fortran_env

Used by

  • module~~modgvec_sol_var_mhd3d~~UsedByGraph module~modgvec_sol_var_mhd3d MODgvec_sol_var_MHD3D module~modgvec_mhd3d_minimize MODgvec_MHD3D_minimize module~modgvec_mhd3d_minimize->module~modgvec_sol_var_mhd3d module~modgvec_mhd3d_vars MODgvec_MHD3D_Vars module~modgvec_mhd3d_vars->module~modgvec_sol_var_mhd3d proc~addboundaryperturbation AddBoundaryPerturbation proc~addboundaryperturbation->module~modgvec_sol_var_mhd3d proc~addboundaryperturbation->module~modgvec_mhd3d_vars proc~analyze Analyze proc~analyze->module~modgvec_sol_var_mhd3d proc~analyze->module~modgvec_mhd3d_vars proc~applybc_fstrong ApplyBC_Fstrong proc~applybc_fstrong->module~modgvec_sol_var_mhd3d proc~applybc_fstrong->module~modgvec_mhd3d_vars proc~evalaux EvalAux proc~evalaux->module~modgvec_sol_var_mhd3d proc~evalaux->module~modgvec_mhd3d_vars proc~evalenergy EvalEnergy proc~evalenergy->module~modgvec_sol_var_mhd3d proc~evalenergy->module~modgvec_mhd3d_vars proc~evalforce EvalForce proc~evalforce->module~modgvec_sol_var_mhd3d proc~evalforce->module~modgvec_mhd3d_vars proc~evaltotals EvalTotals proc~evaltotals->module~modgvec_sol_var_mhd3d proc~init_la_from_solution Init_LA_from_Solution proc~init_la_from_solution->module~modgvec_sol_var_mhd3d proc~init_la_from_solution->module~modgvec_mhd3d_vars proc~initsolution InitSolution proc~initsolution->module~modgvec_sol_var_mhd3d proc~initsolution->module~modgvec_mhd3d_vars proc~minimizemhd3d_descent t_minimizer_mhd3d%MinimizeMHD3D_descent proc~minimizemhd3d_descent->module~modgvec_sol_var_mhd3d proc~restartfromstate RestartFromState proc~restartfromstate->module~modgvec_sol_var_mhd3d proc~restartfromstate->module~modgvec_mhd3d_vars proc~writestatetoascii WriteStateToASCII proc~writestatetoascii->module~modgvec_sol_var_mhd3d proc~writestatetoascii->module~modgvec_mhd3d_vars module~modgvec_mhd3d MODgvec_MHD3D module~modgvec_mhd3d->module~modgvec_mhd3d_minimize proc~buildprecond BuildPrecond proc~buildprecond->module~modgvec_mhd3d_vars 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~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~get_boozer get_boozer proc~get_boozer->module~modgvec_mhd3d_vars proc~init Init proc~init->module~modgvec_mhd3d_vars proc~init_boozer init_boozer proc~init_boozer->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~initmhd3d t_functional_mhd3d%InitMHD3D proc~initmhd3d->module~modgvec_mhd3d_minimize proc~initmhd3d->module~modgvec_mhd3d_vars proc~initprofilesgp InitProfilesGP proc~initprofilesgp->module~modgvec_mhd3d_vars proc~initsolutionmhd3d t_functional_mhd3d%InitSolutionMHD3D proc~initsolutionmhd3d->module~modgvec_mhd3d_vars proc~minimize minimize proc~minimize->module~modgvec_mhd3d_vars proc~minimizemhd3d t_functional_mhd3d%MinimizeMHD3D proc~minimizemhd3d->module~modgvec_mhd3d_minimize proc~minimizemhd3d->module~modgvec_mhd3d_vars proc~select_base select_base proc~select_base->module~modgvec_mhd3d_vars proc~select_base_dofs select_base_dofs proc~select_base_dofs->module~modgvec_mhd3d_vars 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

Variables

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

Derived Types

type, public, extends(c_sol_var) ::  t_sol_var_MHD3D

Components

Type Visibility Attributes Name Initial
integer, public :: nVars
logical, public :: initialized = .FALSE.
real(kind=wp), public :: W_MHD3D
real(kind=wp), public, CONTIGUOUS, POINTER :: X1(:,:)

X1 variable, shape=(base_s%nBase,base_f%mn_mode)

real(kind=wp), public, CONTIGUOUS, POINTER :: X2(:,:)

X2 variable

real(kind=wp), public, CONTIGUOUS, POINTER :: LA(:,:)

lambda variable

real(kind=wp), public, CONTIGUOUS, POINTER :: q(:)

1d array container for all variables (is the one allocated)

integer, public, ALLOCATABLE :: varsize(:,:)

varsize(a,b): size of rank a of variable b =1..nvars

integer, public, ALLOCATABLE :: offset(:)

offset(0:nvars): size of variable b =offset(b)-offset(b-1)

Type-Bound Procedures

procedure, public :: init => sol_var_MHD3D_init
procedure, public :: free => sol_var_MHD3D_free
procedure, public :: copy => sol_var_MHD3D_copy
procedure, public :: set_to_solvar => sol_var_MHD3D_set_to_solvar
procedure, public :: set_to_scalar => sol_var_MHD3D_set_to_scalar
generic, public :: set_to => set_to_solvar, set_to_scalar
procedure, public :: norm_2 => sol_var_MHD3D_norm_2
procedure, public :: AXBY => sol_var_MHD3D_AXBY

Functions

private function sol_var_MHD3D_norm_2(sf) result(norm_2)

|X|^2, where X is of type t_var_sol, so three values are returned: |X1|^2,|X2|^2,|LA|^2

Arguments

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

self

Return Value real(kind=wp), (sf%nvars)


Subroutines

private subroutine sol_var_MHD3D_init(sf, varsize)

initialize (=allocate) sf of type t_sol_var

Arguments

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

sf

integer, intent(in) :: varsize(:)

private subroutine sol_var_MHD3D_free(sf)

free (=deallocate) sf of type t_sol_var_MHD3D

Arguments

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

sf

private subroutine sol_var_MHD3D_copy(sf, tocopy)

copy tocopy => sf

Arguments

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

sf

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

private subroutine sol_var_MHD3D_set_to_scalar(sf, scalar)

set all variables to scalar

Arguments

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

sf

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

private subroutine sol_var_MHD3D_set_to_solvar(sf, toset, scal_in)

set variabes X1,X2,LA of toset => sf, optional argument to scale toset with a scalar (for example -1.0_wp)

Arguments

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

sf

class(c_sol_var), intent(in) :: toset
real(kind=wp), intent(in), optional :: scal_in

private subroutine sol_var_MHD3D_AXBY(sf, aa, X, bb, Y)

res=aX+bY , where X,Y,res are of type t_var_sol

Arguments

Type IntentOptional Attributes Name
class(t_sol_var_MHD3D), intent(inout) :: sf
real(kind=wp), intent(in) :: aa
class(c_sol_var), intent(in) :: X
real(kind=wp), intent(in) :: bb
class(c_sol_var), intent(in) :: Y

private subroutine sol_var_MHD3D_test(sf)

test sol_var_MHD3D

Arguments

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

sf