OpenAtom
Version1.5a
|
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] |
complex * | tmpData |
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 |
Definition at line 369 of file fftCacheSlab.h.
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.
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().