SPEC 3.20
Stepped Pressure Equilibrium Code
Fourier Transforms

The coordinate geometry and fields are mapped to/from Fourier space and real space using FFTW3. The resolution of the real space grid is given by Nt=Ndiscrete*4*Mpol and Nz=Ndiscrete*4*Ntor. More...

Collaboration diagram for Fourier Transforms:

Variables

integer allglobal::nt
 discrete resolution along \(\theta\) of grid in real space
 
integer allglobal::nz
 discrete resolution along \(\zeta\) of grid in real space
 
integer allglobal::ntz
 discrete resolution; Ntz=Nt*Nz shorthand
 
integer allglobal::hnt
 discrete resolution; Ntz=Nt*Nz shorthand
 
integer allglobal::hnz
 discrete resolution; Ntz=Nt*Nz shorthand
 
real allglobal::sontz
 one / sqrt (one*Ntz); shorthand
 
real, dimension(:,:,:), allocatable allglobal::rij
 real-space grid; R
 
real, dimension(:,:,:), allocatable allglobal::zij
 real-space grid; Z
 
real, dimension(:,:,:), allocatable allglobal::xij
 what is this?
 
real, dimension(:,:,:), allocatable allglobal::yij
 what is this?
 
real, dimension(:,:), allocatable allglobal::sg
 real-space grid; jacobian and its derivatives
 
real, dimension(:,:,:,:), allocatable allglobal::guvij
 real-space grid; metric elements
 
real, dimension(:,:,:), allocatable allglobal::gvuij
 real-space grid; metric elements (?); 10 Dec 15;
 
real, dimension(:,:,:,:), allocatable allglobal::guvijsave
 what is this?
 
integer, dimension(:,:), allocatable allglobal::ki
 identification of Fourier modes
 
integer, dimension(:,:,:), allocatable allglobal::kijs
 identification of Fourier modes
 
integer, dimension(:,:,:), allocatable allglobal::kija
 identification of Fourier modes
 
integer, dimension(:), allocatable allglobal::iotakkii
 identification of Fourier modes
 
integer, dimension(:,:), allocatable allglobal::iotaksub
 identification of Fourier modes
 
integer, dimension(:,:), allocatable allglobal::iotakadd
 identification of Fourier modes
 
integer, dimension(:,:), allocatable allglobal::iotaksgn
 identification of Fourier modes
 
real, dimension(:), allocatable allglobal::efmn
 Fourier harmonics; dummy workspace.
 
real, dimension(:), allocatable allglobal::ofmn
 Fourier harmonics; dummy workspace.
 
real, dimension(:), allocatable allglobal::cfmn
 Fourier harmonics; dummy workspace.
 
real, dimension(:), allocatable allglobal::sfmn
 Fourier harmonics; dummy workspace.
 
real, dimension(:), allocatable allglobal::evmn
 Fourier harmonics; dummy workspace.
 
real, dimension(:), allocatable allglobal::odmn
 Fourier harmonics; dummy workspace.
 
real, dimension(:), allocatable allglobal::comn
 Fourier harmonics; dummy workspace.
 
real, dimension(:), allocatable allglobal::simn
 Fourier harmonics; dummy workspace.
 
real, dimension(:), allocatable allglobal::ijreal
 what is this ?
 
real, dimension(:), allocatable allglobal::ijimag
 what is this ?
 
real, dimension(:), allocatable allglobal::jireal
 what is this ?
 
real, dimension(:), allocatable allglobal::jiimag
 what is this ?
 
real, dimension(:), allocatable allglobal::jkreal
 what is this ?
 
real, dimension(:), allocatable allglobal::jkimag
 what is this ?
 
real, dimension(:), allocatable allglobal::kjreal
 what is this ?
 
real, dimension(:), allocatable allglobal::kjimag
 what is this ?
 
real, dimension(:,:,:), allocatable allglobal::bsupumn
 tangential field on interfaces; \(\theta\)-component; required for virtual casing construction of field; 11 Oct 12
 
real, dimension(:,:,:), allocatable allglobal::bsupvmn
 tangential field on interfaces; \(\zeta\) -component; required for virtual casing construction of field; 11 Oct 12
 
real, dimension(:,:), allocatable allglobal::goomne
 described in preset()
 
real, dimension(:,:), allocatable allglobal::goomno
 described in preset()
 
real, dimension(:,:), allocatable allglobal::gssmne
 described in preset()
 
real, dimension(:,:), allocatable allglobal::gssmno
 described in preset()
 
real, dimension(:,:), allocatable allglobal::gstmne
 described in preset()
 
real, dimension(:,:), allocatable allglobal::gstmno
 described in preset()
 
real, dimension(:,:), allocatable allglobal::gszmne
 described in preset()
 
real, dimension(:,:), allocatable allglobal::gszmno
 described in preset()
 
real, dimension(:,:), allocatable allglobal::gttmne
 described in preset()
 
real, dimension(:,:), allocatable allglobal::gttmno
 described in preset()
 
real, dimension(:,:), allocatable allglobal::gtzmne
 described in preset()
 
real, dimension(:,:), allocatable allglobal::gtzmno
 described in preset()
 
real, dimension(:,:), allocatable allglobal::gzzmne
 described in preset()
 
real, dimension(:,:), allocatable allglobal::gzzmno
 described in preset()
 

Detailed Description

The coordinate geometry and fields are mapped to/from Fourier space and real space using FFTW3. The resolution of the real space grid is given by Nt=Ndiscrete*4*Mpol and Nz=Ndiscrete*4*Ntor.

Various workspace arrays are allocated. These include Rij(1:Ntz,0:3,0:3) and Zij(1:Ntz,0:3,0:3), which contain the coordinates in real space and their derivatives; sg(0:3,Ntz), which contains the Jacobian and its derivatives; and guv(0:6,0:3,1:Ntz), which contains the metric elements and their derivatives.