PB3D
[2.45]
Ideal linear high-n MHD stability in 3-D
|
Variables pertaining to the perturbation quantities. More...
Interfaces and Types | |
type | modes_type |
mode number type More... | |
interface | set_nm_x |
Sets n_X and m_X . More... | |
type | x_1_type |
vectorial perturbation type More... | |
type | x_2_type |
tensorial perturbation type More... | |
Functions/Subroutines | |
subroutine | init_x_1 (X, mds, grid_X, lim_sec_X) |
Initializes a vectorial perturbation. More... | |
subroutine | init_x_2 (X, mds, grid_X, lim_sec_X, is_field_averaged) |
Initializes a tensorial perturbation. More... | |
subroutine | copy_x_1 (X_i, mds, grid_i, X_o) |
Deep copy of vectorial perturbation variables. More... | |
subroutine | copy_x_2 (X_i, mds, grid_i, X_o) |
Deep copy of tensorial perturbation variables. More... | |
integer function, public | set_nn_mod (sym, lim_sec_X) |
Sets number of entries for tensorial perturbation variables. More... | |
subroutine | dealloc_mds (mds) |
Deallocates modes variables. More... | |
subroutine | dealloc_x_1 (X) |
Deallocates vectorial perturbation variables. More... | |
subroutine | dealloc_x_2 (X) |
Deallocates tensorial perturbation variables. More... | |
Variables | |
type(modes_type), public | mds_x |
modes variables for perturbation grid More... | |
type(modes_type), public | mds_sol |
modes variables for solution grid More... | |
integer, public | prim_x |
n_X (pol. flux) or m_X (tor. flux) More... | |
integer, public | min_sec_x |
m_X (pol. flux) or n_X (tor. flux) (only for X style 1) More... | |
integer, public | max_sec_x |
m_X (pol. flux) or n_X (tor. flux) (only for\ c X style 1) More... | |
integer, public | n_mod_x |
size of m_X (pol. flux) or n_X (tor. flux) More... | |
integer, public | min_nm_x = 5 |
minimum for the high-n theory (debable) More... | |
integer, dimension(:), allocatable, public | min_n_x |
lowest poloidal mode number m_X , in total eq grid More... | |
integer, dimension(:), allocatable, public | max_n_x |
highest poloidal mode number m_X , in total eq grid More... | |
integer, dimension(:), allocatable, public | min_m_x |
lowest poloidal mode number m_X , in total eq grid More... | |
integer, dimension(:), allocatable, public | max_m_x |
highest poloidal mode number m_X , in total eq grid More... | |
real(dp), public | min_r_sol |
min. normal range for pert. More... | |
real(dp), public | max_r_sol |
max. normal range for pert. More... | |
integer, public | n_alloc_x_1s |
nr. of allocated X_1 's More... | |
integer, public | n_alloc_x_2s |
nr. of allocated X_2 's More... | |
Variables pertaining to the perturbation quantities.
subroutine x_vars::copy_x_1 | ( | class(x_1_type), intent(in) | X_i, |
type(modes_type), intent(in) | mds, | ||
type(grid_type), intent(in) | grid_i, | ||
type(x_1_type), intent(inout) | X_o | ||
) |
Deep copy of vectorial perturbation variables.
[in] | x_i | X_1 to be copied |
[in] | mds | general modes variables |
[in] | grid_i | grid of eq_i |
[in,out] | x_o | copied X_1 |
Definition at line 338 of file X_vars.f90.
subroutine x_vars::copy_x_2 | ( | class(x_2_type), intent(in) | X_i, |
type(modes_type), intent(in) | mds, | ||
type(grid_type), intent(in) | grid_i, | ||
type(x_2_type), intent(inout) | X_o | ||
) |
Deep copy of tensorial perturbation variables.
[in] | x_i | X_2 to be copied |
[in] | mds | general modes variables |
[in] | grid_i | grid of eq_i |
[in,out] | x_o | copied X_1 |
Definition at line 359 of file X_vars.f90.
subroutine x_vars::dealloc_mds | ( | class(modes_type), intent(inout) | mds | ) |
Deallocates modes variables.
[in,out] | mds | modes variables to be deallocated |
Definition at line 412 of file X_vars.f90.
subroutine x_vars::dealloc_x_1 | ( | class(x_1_type), intent(inout) | X | ) |
Deallocates vectorial perturbation variables.
[in,out] | x | perturbation variables to be deallocated |
Definition at line 428 of file X_vars.f90.
subroutine x_vars::dealloc_x_2 | ( | class(x_2_type), intent(inout) | X | ) |
Deallocates tensorial perturbation variables.
[in,out] | x | perturbation variables to be deallocated |
Definition at line 474 of file X_vars.f90.
subroutine x_vars::init_x_1 | ( | class(x_1_type), intent(inout) | X, |
type(modes_type), intent(in) | mds, | ||
type(grid_type), intent(in) | grid_X, | ||
integer, dimension(2), intent(in), optional | lim_sec_X | ||
) |
Initializes a vectorial perturbation.
Allocates the variables, the number of modes, as well as n
and m
.
Optionally, the secondary mode numbers can be specified (m
if poloidal flux is used and n
if toroidal flux). By default, they are taken from the global X_vars
variables.
grid_soli_min = 1
for first process), the input variable i_min
should be set to set correctly. For a full grid, it should be set to 1. [in,out] | x | vectorial perturbation variables |
[in] | mds | general modes variables |
[in] | grid_x | perturbation grid |
[in] | lim_sec_x | limits of m_X (pol. flux) or n_X (tor. flux) |
Definition at line 204 of file X_vars.f90.
subroutine x_vars::init_x_2 | ( | class(x_2_type), intent(inout) | X, |
type(modes_type), intent(in) | mds, | ||
type(grid_type), intent(in) | grid_X, | ||
integer, dimension(2,2), intent(in), optional | lim_sec_X, | ||
logical, intent(in), optional | is_field_averaged | ||
) |
Initializes a tensorial perturbation.
is_field_averaged
. There is no difference between a tensorial perturbation type with size of first dimension set to one through the use of this flag, or through other means. [in,out] | x | tensorial perturbation variables |
[in] | mds | general modes variables |
[in] | grid_x | perturbation grid |
[in] | lim_sec_x | limits of m_X (pol. flux) or n_X (tor. flux) for both dimensions |
[in] | is_field_averaged | if field-aligned, only one dimension for first index |
Definition at line 271 of file X_vars.f90.
integer function, public x_vars::set_nn_mod | ( | logical, intent(in) | sym, |
integer, dimension(2,2), intent(in), optional | lim_sec_X | ||
) |
Sets number of entries for tensorial perturbation variables.
[in] | sym | whether the variable is symmetric |
[in] | lim_sec_x | limits of m_X (pol flux) or n_X (tor flux) for both dimensions |
Definition at line 383 of file X_vars.f90.
integer, dimension(:), allocatable, public x_vars::max_m_x |
highest poloidal mode number m_X
, in total eq grid
Definition at line 134 of file X_vars.f90.
integer, dimension(:), allocatable, public x_vars::max_n_x |
highest poloidal mode number m_X
, in total eq grid
Definition at line 132 of file X_vars.f90.
real(dp), public x_vars::max_r_sol |
max. normal range for pert.
Definition at line 136 of file X_vars.f90.
integer, public x_vars::max_sec_x |
m_X
(pol. flux) or n_X
(tor. flux) (only for\ c X style 1)
Definition at line 128 of file X_vars.f90.
type(modes_type), public x_vars::mds_sol |
modes variables for solution grid
Definition at line 125 of file X_vars.f90.
type(modes_type), public x_vars::mds_x |
modes variables for perturbation grid
Definition at line 124 of file X_vars.f90.
integer, dimension(:), allocatable, public x_vars::min_m_x |
lowest poloidal mode number m_X
, in total eq grid
Definition at line 133 of file X_vars.f90.
integer, dimension(:), allocatable, public x_vars::min_n_x |
lowest poloidal mode number m_X
, in total eq grid
Definition at line 131 of file X_vars.f90.
integer, public x_vars::min_nm_x = 5 |
minimum for the high-n theory (debable)
Definition at line 130 of file X_vars.f90.
real(dp), public x_vars::min_r_sol |
min. normal range for pert.
Definition at line 135 of file X_vars.f90.
integer, public x_vars::min_sec_x |
m_X
(pol. flux) or n_X
(tor. flux) (only for X
style 1)
Definition at line 127 of file X_vars.f90.
integer, public x_vars::n_alloc_x_1s |
integer, public x_vars::n_alloc_x_2s |
integer, public x_vars::n_mod_x |
size of m_X
(pol. flux) or n_X
(tor. flux)
Definition at line 129 of file X_vars.f90.
integer, public x_vars::prim_x |
n_X
(pol. flux) or m_X
(tor. flux)
Definition at line 126 of file X_vars.f90.