OpenAtom  Version1.5a
stateSlab.C File Reference

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
 

Detailed Description

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.

Function Documentation

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().