OpenAtom  Version1.5a
CP_Rho_GHartExt.C File Reference

This is a description of the "life" of a CP_Rho_GHartExc object. More...

#include "charm++.h"
#include "debug_flags.h"
#include "utility/util.h"
#include "main/cpaimd.h"
#include "main/AtomsCache.h"
#include "fft_slab_ctrl/fftCacheSlab.h"
#include "main/eesCache.h"
#include "cp_state_ctrl/CP_State_Plane.h"
#include "src_piny_physics_v1.0/include/class_defs/CP_OPERATIONS/class_cplocal.h"
#include "src_piny_physics_v1.0/include/class_defs/CP_OPERATIONS/class_cpxcfnctls.h"
#include "src_piny_physics_v1.0/include/proto_defs/proto_cp_ewald_corrs.h"
#include "src_piny_physics_v1.0/include/class_defs/Interface_ctrl.h"
#include "main/PhysScratchCache.h"
#include <iostream>
#include <fstream>
#include <cmath>

Go to the source code of this file.

Variables

int sizeX
 
Config config
 
CkVec
< CProxy_CP_Rho_RealSpacePlane > 
UrhoRealProxy
 
CProxy_CPcharmParaInfoGrp scProxy
 
CProxy_PhysScratchCache pScratchProxy
 
CkVec< CProxy_AtomsCache > UatomsCacheProxy
 
CkVec< CProxy_CP_Rho_GHartExt > UrhoGHartExtProxy
 
CkVec< CProxy_CP_Rho_RHartExt > UrhoRHartExtProxy
 
CkVec< CProxy_eesCache > UeesCacheProxy
 
CkVec< CProxy_FFTcache > UfftCacheProxy
 
ComlibInstanceHandle commGHartInstance
 
ComlibInstanceHandle commGHartRHartIns0
 
ComlibInstanceHandle commGHartRHartIns1
 

Detailed Description

This is a description of the "life" of a CP_Rho_GHartExc object.

At the start of the program, the constructor CP_Rho_GHartExc is called. We create our own rho_gs slab because we need the kvectors and the fft code.

Each iteration, the CP_Rho_GpacePlane object sends us the same rho data it will use in its own FFTs. We then call the very intensive HartExtVksG function on the data. We contribute the energy to the reduction, fft the vks, and ship the vks to rhoReal.

Then we're done until the next iteration.

There is no RthThread control loop here because there is no meaningful flow of entry methods. We get a message, we calculate, we send, we're done. This object exists solely as a way to parallelize the uncomfortably long HartExtVks computation.

Definition in file CP_Rho_GHartExt.C.