OpenAtom  Version1.5a
FFTcache Class Reference
Inheritance diagram for FFTcache:
Group

Public Member Functions

 FFTcache (int _ngrida, int _ngridb, int _ngridc, int _ngridaEext, int _ngridbEext, int _ngridcEext, int _ees_eext_on, int _ngridaNL, int _ngridbNL, int _ngridcNL, int _ees_NL_on, int _nlines_max, int _nlines_max_rho, int _nchareGState, int _nchareRState, int _nchareGNL, int _nchareRNL, int _nchareGRho, int _nchareRRho, int _nchareRRhoTot, int _nchareGEext, int _nchareREext, int _nchareREextTot, int *numGState, int *numRXState, int *numRYState, int *numRYStateLower, int *numGNL, int *numRXNL, int *numRYNL, int *numRYNLLower, int *numGRho, int *numRXRho, int *numRYRho, int *numGEext, int *numRXEext, int *numRYEext, int _fftopt, int _nsplitR, int _nsplitG, int _rhoRsubPlanes, UberCollection _thisInstance)
 = FFTcache - sets up a fftcache on each processor More...
 
void getCacheMem (const char *name)
 
void freeCacheMem (const char *name)
 
void expandGSpace (complex *data, complex *packedData, RunDescriptor *runs, int numRuns, int numFull, int numPoints, int nfftz)
 packed g-space of size numPoints is expanded to numFull =numRuns/2*nfftz ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////= More...
 
void packGSpace (complex *data, complex *packedPlaneData, RunDescriptor *runs, int numRuns, int numFull, int numPoints, int nfftz)
 packed g-space of size numPoints is expanded to numFull =numRuns/2*nfftz ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////= More...
 
void doHartFFTGtoR_Gchare (complex *, complex *, int, int, int, int, RunDescriptor *, int, int)
 Hartree : Gchare : data(gx,gy,gz) -> data(gx,gy,z) : forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=. More...
 
void doRhoFFTRtoG_Gchare (complex *, complex *, int, int, int, int, RunDescriptor *, int, int, int)
 Rho Plane : Gchare : data(gx,gy,z) -> data(gx,gy,gz) : backward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=. More...
 
void doRhoFFTGtoR_Gchare (complex *, complex *, int, int, int, int, RunDescriptor *, int, int, int)
 rho Gchare : data(gx,gy,gz) -> data(gx,gy,z) : forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////= More...
 
void doRhoFFTRtoG_Rchare (complex *, double *, int, int, int, int)
 
void doRhoFFTGtoR_Rchare (complex *, double *, int, int, int, int)
 
void doRhoFFTRxToGx_Rchare (complex *, double *, int, int, int, int)
 
void doRhoFFTRyToGy_Rchare (complex *, double *, int, int, int, int)
 
void doRhoFFTGxToRx_Rchare (complex *, double *, int, int, int, int)
 
void doRhoFFTGyToRy_Rchare (complex *, double *, int, int, int, int)
 
void doStpFFTRtoG_Gchare (complex *, complex *, int, int, int, int, RunDescriptor *, int, int)
 StatePlane : Gchare : data(gx,gy,z) -> data(gx,gy,gz) : backward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=. More...
 
void doStpFFTGtoR_Gchare (complex *, complex *, int, int, int, int, RunDescriptor *, int, int)
 StatePlane : Gchare : data(gx,gy,gz) -> data(gx,gy,z) : forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=. More...
 
void doStpFFTGtoR_Rchare (complex *, double *, int, int, int, int)
 
void doStpFFTRtoG_Rchare (complex *, double *, int, int, int, int)
 ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////= More...
 
void doNlFFTRtoG_Gchare (complex *, complex *, int, int, int, int, RunDescriptor *, int, int)
 non-local : Gchare : data(gx,gy,z) -> data(gx,gy,gz) : backward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////= More...
 
void doNlFFTGtoR_Gchare (complex *, complex *, int, int, int, int, RunDescriptor *, int, int)
 non-local : Gchare : data(gx,gy,gz) -> data(gx,gy,z) : forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////= More...
 
void doNlFFTRtoG_Rchare (complex *, double *, int, int, int, int)
 non-local : Rchare : data(x,y,z) -> data(gx,gy,z) : backward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////= More...
 
void doNlFFTGtoR_Rchare (complex *, double *, int, int, int, int)
 non-local : Rchare : data(gx,gy,z) -> data(x,y,z) : Forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////= More...
 
void doEextFFTRtoG_Gchare (complex *, int, int, int, int, RunDescriptor *, int, int)
 Eext : Gchare : data(gx,gy,z) -> data(gx,gy,gz) : backward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=. More...
 
void doEextFFTGtoR_Gchare (complex *, complex *, int, int, int, int, RunDescriptor *, int, int)
 Eext : Gchare : data(gx,gy,gz) -> data(gx,gy,z) : forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=. More...
 
void doEextFFTRtoG_Rchare (complex *, double *, int, int, int, int)
 Eext : Rchare : data(x,y,z) -> data(gx,gy,z) : Backward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=. More...
 
void doEextFFTGtoR_Rchare (complex *, double *, int, int, int, int)
 Eext : Rchare : data(gx,gy,z) -> data(x,y,z) : forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=. More...
 
void doEextFFTRxToGx_Rchare (complex *, double *, int, int, int, int)
 Eext : Rchare : data(x,y,z) -> data(gx,gy,z) : Backward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=. More...
 
void doEextFFTRyToGy_Rchare (complex *, double *, int, int, int, int)
 Eext : Rchare : data(x,y,z) -> data(gx,gy,z) : Backward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=. More...
 
void doEextFFTGxToRx_Rchare (complex *, double *, int, int, int, int)
 Eext : Rchare : data(gx,gy,z) -> data(x,y,z) : forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=. More...
 
void doEextFFTGyToRy_Rchare (complex *, double *, int, int, int, int)
 Eext : Rchare : data(gx,gy,z) -> data(x,y,z) : forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=. More...
 

Public Attributes

int ngrida
 
int ngridb
 
int ngridc
 
int ngridaEext
 
int ngridbEext
 
int ngridcEext
 
int ngridaNL
 
int ngridbNL
 
int ngridcNL
 
int ees_eext_on
 
int ees_NL_on
 
int nchareGState
 
int nchareRState
 
int nchareGNL
 
int nchareRNL
 
int nchareGRho
 
int nchareRRho
 
int nchareRRhoTot
 
int nchareGEext
 
int nchareREext
 
int nchareREextTot
 
int nsplitR
 
int nsplitG
 
int rhoRsubPlanes
 
int cacheMemFlag
 
char cacheMemName [1000]
 
complextmpData
 
double * tmpDataR
 
RFFTplanHolder fwdXPlanState
 
RFFTplanHolder bwdXPlanState
 
FFTplanHolder fwdXPlanStateK
 
FFTplanHolder bwdXPlanStateK
 
FFTplanHolder fwdYPlanState
 
FFTplanHolder bwdYPlanState
 
FFTplanHolder fwdYPlanStateLower
 
FFTplanHolder bwdYPlanStateLower
 
FFTplanHolder fwdZPlanState
 
FFTplanHolder bwdZPlanState
 
RFFTplanHolder fwdXPlanRho
 
RFFTplanHolder bwdXPlanRho
 
FFTplanHolder fwdYPlanRho
 
FFTplanHolder bwdYPlanRho
 
FFTplanHolder fwdYPlanRhoS
 
FFTplanHolder bwdYPlanRhoS
 
FFTplanHolder fwdZPlanRho
 
FFTplanHolder bwdZPlanRho
 
FFTplanHolder fwdZPlanRhoHart
 
RFFTplanHolder fwdXPlanNL
 
RFFTplanHolder bwdXPlanNL
 
FFTplanHolder fwdXPlanNLK
 
FFTplanHolder bwdXPlanNLK
 
FFTplanHolder fwdYPlanNL
 
FFTplanHolder bwdYPlanNL
 
FFTplanHolder fwdYPlanNLLower
 
FFTplanHolder bwdYPlanNLLower
 
FFTplanHolder fwdZPlanNL
 
FFTplanHolder bwdZPlanNL
 
RFFTplanHolder fwdXPlanEext
 
RFFTplanHolder bwdXPlanEext
 
FFTplanHolder fwdYPlanEext
 
FFTplanHolder bwdYPlanEext
 
FFTplanHolder fwdYPlanEextS
 
FFTplanHolder bwdYPlanEextS
 
FFTplanHolder fwdZPlanEext
 
FFTplanHolder bwdZPlanEext
 
const UberCollection thisInstance
 

Static Public Attributes

static CmiNodeLock fftw_plan_lock
 

Detailed Description

Definition at line 369 of file fftCacheSlab.h.

Constructor & Destructor Documentation

FFTcache::FFTcache ( int  _ngrida,
int  _ngridb,
int  _ngridc,
int  _ngridaEext,
int  _ngridbEext,
int  _ngridcEext,
int  _ees_eext_on,
int  _ngridaNL,
int  _ngridbNL,
int  _ngridcNL,
int  _ees_NL_on,
int  _nlines_max,
int  _nlines_max_rho,
int  _nchareGState,
int  _nchareRState,
int  _nchareGNL,
int  _nchareRNL,
int  _nchareGRho,
int  _nchareRRho,
int  _nchareRRhoTot,
int  _nchareGEext,
int  _nchareREext,
int  _nchareREextTot,
int *  numGState,
int *  numRXState,
int *  numRYState,
int *  numRYStateLower,
int *  numGNL,
int *  numRXNL,
int *  numRYNL,
int *  numRYNLLower,
int *  numGRho,
int *  numRXRho,
int *  numRYRho,
int *  numGEext,
int *  numRXEext,
int *  numRYEext,
int  _fftopt,
int  _nsplitR,
int  _nsplitG,
int  _rhoRsubPlanes,
UberCollection  _thisInstance 
)

= FFTcache - sets up a fftcache on each processor

= Local Variables

= Copy out

= Set the fft stuff generically

= Density, State and EES Scratch

= State plans : funky names : non-cubic broken

If there is a wisdom file already made for this decomp, load it. We assume here that the rho decomposition choice changes only with the number of processors. It should be noted that those engaging in serious rho parameter tuning would do well to delete their wisdom files. FFTW will make a new plan if the wisdom file doesn't address the size of a plan anyway so this probably isn't a big deal.

= Density plans : funky names : non-cubic broken

= Euler spline plans : better names : non-cubic broken

= Euler spline plans : better names : non-cubic broken

Definition at line 39 of file fftCache.C.

Member Function Documentation

void FFTcache::doEextFFTGtoR_Gchare ( complex data_in,
complex data_out,
int  numFull,
int  numPoints,
int  numLines,
int  numRuns,
RunDescriptor runs,
int  nfftz,
int  index 
)

Eext : Gchare : data(gx,gy,gz) -> data(gx,gy,z) : forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=.

= expand for ffting

= FFT

Definition at line 890 of file fftCache.C.

References expandGSpace(), and fft_split().

Referenced by CP_Rho_GHartExt::FFTEesFwd().

void FFTcache::doEextFFTGtoR_Rchare ( complex dataC,
double *  dataR,
int  nplane_x,
int  sizeX,
int  sizeY,
int  index 
)

Eext : Rchare : data(gx,gy,z) -> data(x,y,z) : forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=.

= FFT along Y direction : Y moves with stride sizex/2+1 through memory : nplane_x is spherical cutoff <= sizeX/2+1

= FFT along X direction : X moves with stride 1 through memory

Definition at line 1028 of file fftCache.C.

References fft_split(), and rfftwnd_complex_to_real_split().

Referenced by CP_Rho_RHartExt::fftAtmForcGtoR().

void FFTcache::doEextFFTGxToRx_Rchare ( complex dataC,
double *  dataR,
int  nplane_x,
int  sizeX,
int  sizeY,
int  index 
)

Eext : Rchare : data(gx,gy,z) -> data(x,y,z) : forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=.

= FFT along X direction : X moves with stride 1 through memory

Definition at line 1075 of file fftCache.C.

References rfftwnd_complex_to_real_split().

Referenced by CP_Rho_RHartExt::recvAtmForcGxToRx().

void FFTcache::doEextFFTGyToRy_Rchare ( complex dataC,
double *  dataR,
int  nplane_x,
int  sizeX,
int  sizeY,
int  index 
)

Eext : Rchare : data(gx,gy,z) -> data(x,y,z) : forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=.

= FFT along Y direction : Y moves with stride 1 through memory : nplane_x is spherical cutoff <= sizeX/2+1

Definition at line 1106 of file fftCache.C.

References fft_split().

Referenced by CP_Rho_RHartExt::fftAtmForcGtoR().

void FFTcache::doEextFFTRtoG_Gchare ( complex data,
int  numFull,
int  numPoints,
int  numLines,
int  numRuns,
RunDescriptor runs,
int  nfftz,
int  index 
)

Eext : Gchare : data(gx,gy,z) -> data(gx,gy,gz) : backward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=.

= FFT in expanded form

= pack for computing

Definition at line 855 of file fftCache.C.

References fft_split(), and packGSpace().

void FFTcache::doEextFFTRtoG_Rchare ( complex dataC,
double *  dataR,
int  nplane_x,
int  sizeX,
int  sizeY,
int  index 
)

Eext : Rchare : data(x,y,z) -> data(gx,gy,z) : Backward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=.

= FFT along x first

= FFT along y

Definition at line 923 of file fftCache.C.

References fft_split(), and rfftwnd_real_to_complex_split().

Referenced by CP_Rho_RHartExt::fftAtmSfRtoG().

void FFTcache::doEextFFTRxToGx_Rchare ( complex dataC,
double *  dataR,
int  nplane_x,
int  sizeX,
int  sizeY,
int  index 
)

Eext : Rchare : data(x,y,z) -> data(gx,gy,z) : Backward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=.

= FFT along x first : stride 1

Definition at line 969 of file fftCache.C.

References rfftwnd_real_to_complex_split().

Referenced by CP_Rho_RHartExt::fftAtmSfRtoG().

void FFTcache::doEextFFTRyToGy_Rchare ( complex dataC,
double *  dataR,
int  nplane_x,
int  sizeX,
int  sizeY,
int  index 
)

Eext : Rchare : data(x,y,z) -> data(gx,gy,z) : Backward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=.

= FFT along y : stride 1

Definition at line 1001 of file fftCache.C.

References fft_split().

Referenced by CP_Rho_RHartExt::recvAtmSfRyToGy().

void FFTcache::doHartFFTGtoR_Gchare ( complex data_in,
complex data_out,
int  numFull,
int  numPoints,
int  numLines,
int  numRuns,
RunDescriptor runs,
int  nfftz,
int  index 
)

Hartree : Gchare : data(gx,gy,gz) -> data(gx,gy,z) : forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=.

= Expand for ffting : Trickery

= FFT in expanded form

Definition at line 664 of file fftCache.C.

References expandGSpace(), and fft_split().

Referenced by CP_Rho_GHartExt::FFTVks().

void FFTcache::doNlFFTGtoR_Gchare ( complex data_in,
complex data_out,
int  numFull,
int  numPoints,
int  numLines,
int  numRuns,
RunDescriptor runs,
int  nfftz,
int  index 
)

non-local : Gchare : data(gx,gy,gz) -> data(gx,gy,z) : forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=

= Expand for ffting : Trickery

= FFT in expanded form

Definition at line 632 of file fftCache.C.

References expandGSpace(), and fft_split().

Referenced by CP_State_ParticlePlane::FFTNLEesFwd().

void FFTcache::doNlFFTGtoR_Rchare ( complex dataC,
double *  dataR,
int  nplane_x,
int  sizeX,
int  sizeY,
int  index 
)

non-local : Rchare : data(gx,gy,z) -> data(x,y,z) : Forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=

= FFT along Y direction : Y moves with stride sizex/2+1 through memory : nplane_x is spherical cutoff <= sizeX/2+1

= FFT along X direction : X moves with stride 1 through memory

Definition at line 771 of file fftCache.C.

References fft_split(), and rfftwnd_complex_to_real_split().

void FFTcache::doNlFFTRtoG_Gchare ( complex data_in,
complex data_out,
int  numFull,
int  numPoints,
int  numLines,
int  numRuns,
RunDescriptor runs,
int  nfftz,
int  index 
)

non-local : Gchare : data(gx,gy,z) -> data(gx,gy,gz) : backward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=

= FFT in expanded form

= Pack for computing

Definition at line 598 of file fftCache.C.

References fft_split(), and packGSpace().

Referenced by CP_State_ParticlePlane::FFTNLEesBck().

void FFTcache::doNlFFTRtoG_Rchare ( complex dataC,
double *  dataR,
int  nplane_x,
int  sizeX,
int  sizeY,
int  index 
)

non-local : Rchare : data(x,y,z) -> data(gx,gy,z) : backward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=

= FFT along x first

= FFT along y

Definition at line 696 of file fftCache.C.

References fft_split(), and rfftwnd_real_to_complex_split().

Referenced by CP_State_RealParticlePlane::FFTNLEesBckR().

void FFTcache::doRhoFFTGtoR_Gchare ( complex data_in,
complex data_out,
int  numFull,
int  numPoints,
int  numLines,
int  numRuns,
RunDescriptor runs,
int  nfftz,
int  iexpand,
int  index 
)

rho Gchare : data(gx,gy,gz) -> data(gx,gy,z) : forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=

= Expand for ffting : data_out is expanded

= FFT in expanded form

Definition at line 1365 of file fftCache.C.

References expandGSpace(), and fft_split().

Referenced by CP_Rho_GSpacePlane::acceptWhiteByrd(), and CP_Rho_GSpacePlane::divRhoVksGspace().

void FFTcache::doRhoFFTGtoR_Rchare ( complex dataC,
double *  dataR,
int  nplane_x,
int  sizeX,
int  sizeY,
int  index 
)

= FFT along Y direction : Y moves with stride sizex/2+1 through memory : nplane_x is spherical cutoff <= sizeX/2+1

= FFT along X direction : X moves with stride 1 through memory

Definition at line 1541 of file fftCache.C.

References fft_split(), and rfftwnd_complex_to_real_split().

Referenced by CP_Rho_RealSpacePlane::acceptGradRhoVks(), CP_Rho_RealSpacePlane::acceptGradRhoVksAll(), CP_Rho_RealSpacePlane::acceptHartVks(), and CP_Rho_RealSpacePlane::acceptWhiteByrd().

void FFTcache::doRhoFFTGxToRx_Rchare ( complex dataC,
double *  dataR,
int  nplane_x,
int  sizeX,
int  sizeY,
int  index 
)

= FFT along X direction : X moves with stride 1 through memory

Definition at line 1611 of file fftCache.C.

References rfftwnd_complex_to_real_split().

Referenced by CP_Rho_RealSpacePlane::acceptRhoGradVksGxToRx().

void FFTcache::doRhoFFTGyToRy_Rchare ( complex dataC,
double *  dataR,
int  nplane_x,
int  sizeX,
int  sizeY,
int  index 
)

= FFT along Y direction : Y moves with stride sizex/2+1 through memory : nplane_x is spherical cutoff <= sizeX/2+1

Definition at line 1586 of file fftCache.C.

References fft_split().

Referenced by CP_Rho_RealSpacePlane::acceptGradRhoVks(), CP_Rho_RealSpacePlane::acceptGradRhoVksAll(), CP_Rho_RealSpacePlane::acceptHartVks(), and CP_Rho_RealSpacePlane::acceptWhiteByrd().

void FFTcache::doRhoFFTRtoG_Gchare ( complex data_in,
complex data_out,
int  numFull,
int  numPoints,
int  numLines,
int  numRuns,
RunDescriptor runs,
int  nfftz,
int  ipack,
int  index 
)

Rho Plane : Gchare : data(gx,gy,z) -> data(gx,gy,gz) : backward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=.

= FFT in expanded form

= Pack for computing if necessary : data_in is expanded : dataout is contracted

Definition at line 1401 of file fftCache.C.

References fft_split(), and packGSpace().

Referenced by CP_Rho_GSpacePlane::acceptWhiteByrd(), CP_Rho_GSpacePlane::acceptWhiteByrdAll(), and CP_Rho_GSpacePlane::doRhoFFT().

void FFTcache::doRhoFFTRtoG_Rchare ( complex dataC,
double *  dataR,
int  nplane_x,
int  sizeX,
int  sizeY,
int  index 
)

= FFT along x first

= FFT along y

Definition at line 1437 of file fftCache.C.

References fft_split(), and rfftwnd_real_to_complex_split().

Referenced by CP_Rho_RealSpacePlane::fftRhoRtoRhoG(), and CP_Rho_RealSpacePlane::whiteByrdFFT().

void FFTcache::doRhoFFTRxToGx_Rchare ( complex dataC,
double *  dataR,
int  nplane_x,
int  sizeX,
int  sizeY,
int  index 
)

= FFT along x first

Definition at line 1482 of file fftCache.C.

References rfftwnd_real_to_complex_split().

Referenced by CP_Rho_RealSpacePlane::fftRhoRtoRhoG(), and CP_Rho_RealSpacePlane::whiteByrdFFT().

void FFTcache::doRhoFFTRyToGy_Rchare ( complex dataC,
double *  dataR,
int  nplane_x,
int  sizeX,
int  sizeY,
int  index 
)

= FFT along y

Definition at line 1514 of file fftCache.C.

References fft_split().

Referenced by CP_Rho_RealSpacePlane::fftRhoRyToGy().

void FFTcache::doStpFFTGtoR_Gchare ( complex data_in,
complex data_out,
int  numFull,
int  numPoints,
int  numLines,
int  numRuns,
RunDescriptor runs,
int  nfftz,
int  index 
)

StatePlane : Gchare : data(gx,gy,gz) -> data(gx,gy,z) : forward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=.

= Expand for ffting

= FFT in expanded form

Definition at line 1169 of file fftCache.C.

References expandGSpace(), and fft_split().

void FFTcache::doStpFFTGtoR_Rchare ( complex dataC,
double *  dataR,
int  nplane_x,
int  sizeX,
int  sizeY,
int  index 
)

= FFT along Y direction : Y moves with stride sizex/2+1 through memory : nplane_x is spherical cutoff <= sizeX/2+1

= FFT along X direction : X moves with stride 1 through memory

Definition at line 1203 of file fftCache.C.

References fft_split(), and rfftwnd_complex_to_real_split().

Referenced by CP_State_RealSpacePlane::doFFT().

void FFTcache::doStpFFTRtoG_Gchare ( complex data_in,
complex data_out,
int  numFull,
int  numPoints,
int  numLines,
int  numRuns,
RunDescriptor runs,
int  nfftz,
int  index 
)

StatePlane : Gchare : data(gx,gy,z) -> data(gx,gy,gz) : backward ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=.

= FFT in expanded form

= Pack for computing

Definition at line 1135 of file fftCache.C.

References fft_split(), and packGSpace().

Referenced by CP_State_GSpacePlane::doIFFT().

void FFTcache::doStpFFTRtoG_Rchare ( complex dataC,
double *  dataR,
int  nplane_x,
int  sizeX,
int  sizeY,
int  index 
)

////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=

= FFT along x first

= FFT along y

Definition at line 1288 of file fftCache.C.

References fft_split(), and rfftwnd_real_to_complex_split().

Referenced by CP_State_RealSpacePlane::doVksFFT().

void FFTcache::expandGSpace ( complex data,
complex packedData,
RunDescriptor runs,
int  numRuns,
int  numFull,
int  numPoints,
int  nfftz 
)

packed g-space of size numPoints is expanded to numFull =numRuns/2*nfftz ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=

= Expand out lines of z so that an FFT can be performed on them The ``run'' stores each line in two parts -3,-2,-1 have offset, joff = r*nffz + nfftz 0,1,2,3 have offset, joff = r*nfftz runs[r].z stores kz if kz>0 and nfftz-kz if kz<0 The negative guys go 1st Total size is nlines*nfftz where nlines=numRuns/2

Definition at line 496 of file fftCache.C.

Referenced by doEextFFTGtoR_Gchare(), doHartFFTGtoR_Gchare(), doNlFFTGtoR_Gchare(), doRhoFFTGtoR_Gchare(), and doStpFFTGtoR_Gchare().

void FFTcache::packGSpace ( complex data,
complex packedPlaneData,
RunDescriptor runs,
int  numRuns,
int  numFull,
int  numPoints,
int  nfftz 
)

packed g-space of size numPoints is expanded to numFull =numRuns/2*nfftz ////////////////////////////////////////////////////////////////////////////= ////////////////////////////////////////////////////////////////////////////c ////////////////////////////////////////////////////////////////////////////=

= Contract lines of z after FFT has been performed The ``run'' stores each line in two parts -3,-2,-1 have offset, joff = r*nffz + nfftz 0,1,2,3 have offset, joff = r*nfftz runs[r].z stores kz if kz>0 and nfftz-kz if kz<0 The negative guys go 1st Total size is nlines*nfftz where nlines=numRuns/2

Definition at line 553 of file fftCache.C.

Referenced by doEextFFTRtoG_Gchare(), doNlFFTRtoG_Gchare(), doRhoFFTRtoG_Gchare(), and doStpFFTRtoG_Gchare().


The documentation for this class was generated from the following files: