| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| class(t_base), | public, | ALLOCATABLE, TARGET | :: | X1_base |
container for base of variable X1 |
||
| class(t_base), | public, | ALLOCATABLE, TARGET | :: | X2_base |
container for base of variable X2 |
||
| class(t_base), | public, | ALLOCATABLE, TARGET | :: | LA_base |
container for base of variable lambda |
||
| type(t_sGrid), | public | :: | sgrid |
only one grid up to now |
|||
| type(t_sol_var_MHD3D), | public, | ALLOCATABLE | :: | U(:) |
solutions at levels (k-1),(k),(k+1) |
||
| type(t_sol_var_MHD3D), | public, | ALLOCATABLE | :: | V(:) |
'velocity' in minimizer |
||
| type(t_sol_var_MHD3D), | public, | ALLOCATABLE | :: | F(:) |
force |
||
| type(t_sol_var_MHD3D), | public, | ALLOCATABLE | :: | P(:) |
temporary for update |
||
| integer, | public | :: | nDOF_X1 |
total number of degrees of freedom, sBase%nBase * fbase%mn_modes |
|||
| integer, | public | :: | nDOF_X2 |
total number of degrees of freedom, sBase%nBase * fbase%mn_modes |
|||
| integer, | public | :: | nDOF_LA |
total number of degrees of freedom, sBase%nBase * fbase%mn_modes |
|||
| integer, | public, | ALLOCATABLE | :: | X1_BC_type(:,:) |
X1 var: BC type for axis and edge for each mode (1:2,1:modes) (1=axis,2=edge) |
||
| integer, | public, | ALLOCATABLE | :: | X2_BC_type(:,:) |
X2 var: BC type for axis and edge for each mode (1:2,1:modes) (1=axis,2=edge) |
||
| integer, | public, | ALLOCATABLE | :: | LA_BC_type(:,:) |
LA var: BC type for axis and edge for each mode (1:2,1:modes) (1=axis,2=edge) |
||
| type(PP_T_HMAP), | public, | ALLOCATABLE | :: | hmap |
type containing subroutines for evaluating the map h (Omega_p x S^1) --> Omega |
||
| type(PP_T_HMAP_AUXVAR), | public, | ALLOCATABLE | :: | hmap_auxvar(:) |
auxiliary variables for hmap |
||
| class(PP_T_HMAP), | public, | ALLOCATABLE | :: | hmap |
type containing subroutines for evaluating the map h (Omega_p x S^1) --> Omega |
||
| class(PP_T_HMAP_AUXVAR), | public, | ALLOCATABLE | :: | hmap_auxvar(:) |
auxiliary variables for hmap |
||
| integer, | public | :: | which_init |
select initialization. 0: only using input parameter, 1: using a VMEC equilibrium |
|||
| integer, | public | :: | which_hmap | ||||
| logical, | public | :: | init_fromBCOnly |
default=TRUE, for VMEC only, if set false: initial mapping is interpolated for s=0..1 |
|||
| logical, | public | :: | init_with_profile_pressure |
default=FALSE, if True, overwrite profile from VMEC ini using profile from parameterfile |
|||
| logical, | public | :: | init_with_profile_iota |
default=FALSE, if True, overwrite profile from VMEC ini using profile from parameterfile |
|||
| logical, | public | :: | init_average_axis |
default=FALSE, if true, use outer boundary to estimate axis position (center of closed line) |
|||
| logical, | public | :: | boundary_perturb |
default=FALSE, if true, mapping is perturbed with a given modal perturbation of the boundary (X1pert_b,X2pert_b) |
|||
| real(kind=wp), | public | :: | average_axis_move(2) |
used if init_average_axis=True to additionally move axis in X1,X2 |
|||
| integer, | public | :: | init_BC |
active if init_fromBC_only=T: -1: keep vmec axis and boundary (default), 0: keep vmec boundary, overwrite axis, 1: keep vmec axis, overwrite boundary, 2: overwrite axis and boundary |
|||
| integer, | public | :: | getBoundaryFromFile |
-1: off, 1: read from specific netcdf file |
|||
| logical, | public | :: | init_LA |
false: lambda=0 at initialization, true: lambda is computed from initial mapping |
|||
| integer, | public | :: | PrecondType | ||||
| integer, | public | :: | MinimizerType |
which mimimizer to use: 0: gradient descent (default) , 10: accelerated gradient descent |
|||
| integer, | public | :: | maxIter |
maximum iteration count for minimization |
|||
| integer, | public | :: | outputIter |
number of iterations after which output files are written |
|||
| integer, | public | :: | logIter |
number of iterations after which a screen log is written |
|||
| integer, | public | :: | nlogScreen |
number of log outputs after a screen output is written |
|||
| real(kind=wp), | public | :: | minimize_tol |
absolute tolerance for minimization of functional |
|||
| real(kind=wp), | public | :: | start_dt |
starting time step, is adapted during iteration |
|||
| real(kind=wp), | public | :: | dW_allowed |
for minimizer, accept step if dW<dW_allowed*W_MHD(iter=0) default +10e-10 |
|||
| logical, | public | :: | DoCheckDistance |
TRUE: check distance between solutions of two log output states (default: false) |
|||
| logical, | public | :: | DoCheckAxis | ||||
| real(kind=wp), | public | :: | Phi_edge |
toroidal flux at the last flux surface of the domain |
|||
| real(kind=wp), | public | :: | mu_0 |
permeability |
|||
| real(kind=wp), | public | :: | gamm |
isentropic exponent, if gamma /= 0 pres ~ mass profile |
|||
| real(kind=wp), | public | :: | sgammM1 |
=1/(gamm-1) |
|||
| real(kind=wp), | public, | ALLOCATABLE | :: | X1_b(:) |
fourier modes of the edge boundary for X1 |
||
| real(kind=wp), | public, | ALLOCATABLE | :: | X2_b(:) |
fourier modes of the edge boundary for X2 |
||
| real(kind=wp), | public, | ALLOCATABLE | :: | LA_b(:) |
fourier modes of the edge boundary for LA |
||
| real(kind=wp), | public, | ALLOCATABLE | :: | X1_a(:) |
fourier modes of the axis boundary for X1 |
||
| real(kind=wp), | public, | ALLOCATABLE | :: | X2_a(:) |
fourier modes of the axis boundary for X2 |
||
| real(kind=wp), | public, | ALLOCATABLE | :: | X1pert_b(:) |
fourier modes of the boundary perturbation for X1 (if boundary_perturb=T) |
||
| real(kind=wp), | public, | ALLOCATABLE | :: | X2pert_b(:) |
fourier modes of the boundary perturbation for X2 (if boundary_perturb=T) |
||
| class(c_rProfile), | public, | ALLOCATABLE | :: | iota_profile | |||
| class(c_rProfile), | public, | ALLOCATABLE | :: | pres_profile | |||
| class(c_rProfile), | public, | ALLOCATABLE | :: | Phi_profile | |||
| class(c_rProfile), | public, | ALLOCATABLE | :: | chi_profile |