OpenAtom
Version1.5a
|
Add functions to allow application programmers to initialize these and the corresponding functions in Charm++ to call these functions with appropriate parameters. More...
#include "utility/util.h"
#include "debug_flags.h"
#include <cmath>
#include "main/cpaimd.h"
#include "fft_slab_ctrl/fftCacheSlab.h"
#include "cp_state_ctrl/CP_State_Plane.h"
#include "main/eesCache.h"
Go to the source code of this file.
Functions | |
void | initGStateSlab (GStateSlab *gs, int sizeX, int sizeY, int sizeZ, int gSpaceUnits, int realSpaceUnits, int s_grain, int iplane_ind, int istate_ind, int len_nhc_cp, int num_nhc_cp, int nck_nhc_cp) |
= slab initialization helpers More... | |
void | initRealStateSlab (RealStateSlab *rs, int ngrid_a, int ngrid_b, int ngrid_c, int gSpaceUnits, int realSpaceUnits, int stateIndex, int planeIndex) |
Variables | |
CkVec< CProxy_FFTcache > | UfftCacheProxy |
Config | config |
CkVec< CProxy_eesCache > | UeesCacheProxy |
int | nstates |
int | sizeX |
Add functions to allow application programmers to initialize these and the corresponding functions in Charm++ to call these functions with appropriate parameters.
Definition in file stateSlab.C.
void initGStateSlab | ( | GStateSlab * | gs, |
int | sizeX, | ||
int | sizeY, | ||
int | sizeZ, | ||
int | gSpaceUnits, | ||
int | realSpaceUnits, | ||
int | s_grain, | ||
int | iplane_ind, | ||
int | istate_ind, | ||
int | len_nhc_cp, | ||
int | num_nhc_cp, | ||
int | nck_nhc_cp | ||
) |
= slab initialization helpers
= Explanation of organization of data: A point is psi(kx,ky,kz)
Each gStateSlab is a collection of pts in lines of constant kx,ky. The maximum number of pts in any line is size[1] = nfftz Some lines are longer/shorter to spherical trunction (|k|<k_cut). Also, kx>=0 when at the Gamma point or doublePack=1, the only thing that has been recently tested. Collections of lines are parallelized. Each collection does not correspond to a unique plane of kx. The parameter gSpaceUnits is obsolete and must be unity. In order to create the state in real space, psi(x,y,z), an fft of all kz lines is performed followed by a transpose. The result of the transpose is parallelized by planes of z. This is different than it used to be. The number of points AFTER the fft is nlines*nfftz will be different for each chare array
Definition at line 35 of file stateSlab.C.
Referenced by CP_State_GSpacePlane::CP_State_GSpacePlane().
void initRealStateSlab | ( | RealStateSlab * | rs, |
int | ngrid_a, | ||
int | ngrid_b, | ||
int | ngrid_c, | ||
int | gSpaceUnits, | ||
int | realSpaceUnits, | ||
int | stateIndex, | ||
int | planeIndex | ||
) |
= Explanation of the organization: Each CP_State_RealSpacePlane instance is actually a planes of psi_I(x,y,z). We index into planeArr using the z-coordinate and each chare is an x-y plane. Data arrives from the gspaceplane of total size : nlines_tot*nfftz
Definition at line 392 of file stateSlab.C.
Referenced by CP_State_RealSpacePlane::CP_State_RealSpacePlane().