OpenAtom  Version1.5a
cpaimd.C File Reference

cpaimd-charm-driver More...

#include "cpaimd.h"
#include "InstanceController.h"
#include "ENL_EKE_Collector.h"
#include "pcCreationManager.h"
#include "eesCache.h"
#include "AtomsCache.h"
#include "AtomsCompute.h"
#include "energyGroup.h"
#include "cp_state_ctrl/CP_State_Plane.h"
#include "cp_state_ctrl/CP_State_ParticlePlane.h"
#include "fft_slab_ctrl/fftCacheSlab.h"
#include "structure_factor/StructFactorCache.h"
#include "structure_factor/StructureFactor.h"
#include "paircalc/pcMapConfig.h"
#include "load_balance/PeList.h"
#include "utility/MapFile.h"
#include "PIBeadAtoms.h"
#include "utility/util.h"
#include "src_piny_physics_v1.0/include/class_defs/Interface_ctrl.h"
#include "src_piny_physics_v1.0/include/class_defs/PINY_INIT/PhysicsParamTrans.h"
#include "src_piny_physics_v1.0/include/class_defs/PINY_INIT/PhysicsAtomPosInit.h"
#include "MeshStreamingStrategy.h"
#include "MultiRingMulticast.h"
#include "OneTimeMulticastStrategy.h"
#include "TopoManager.h"
#include "TimeKeeper.h"
#include "charm++.h"
#include "PhysScratchCache.h"
#include <cmath>
#include <unistd.h>
#include <iostream>
#include <sstream>
#include <string>
#include <assert.h>
#include "mapvariables.h"
#include "commlibhandles.h"
#include "initializeUber.C"
#include "CPcharmParaInfo.def.h"
#include "timeKeeper.def.h"
#include "startupMessages.def.h"
#include "cp_state_ctrl/CP_State_GSpacePlane.h"
#include "cpaimd.def.h"

Go to the source code of this file.

Macros

#define OPENATOM_REVISION   Unknown
 The build system should define this macro to be the commit identifier.
 
#define _QUOTEIT(x)   #x
 
#define INQUOTES(x)   _QUOTEIT(x)
 

Functions

void initFFTLock (void)
 
void init_commlib_strategies (int numRhoG, int numReal, int numRhoRhart, UberCollection thisInstance)
 Initialize Commlib communication strategies.
 
void init_PIBeads (CPcharmParaInfo *sim, UberCollection thisInstance)
 Create the PIBeadAtoms array. More...
 
void init_state_chares (int natm_nl, int natm_nl_grp_max, int numSfGrps, int doublePack, CPcharmParaInfo *sim, UberCollection thisInstance)
 Create the array elements for the GSpace, Particle and Real Space planes /////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////. More...
 
int init_rho_chares (CPcharmParaInfo *sim, UberCollection thisInstance)
 Creating arrays CP_Rho_GSpacePlane, CP_Rho_GSpacePlaneHelper and CP_Rho_RealSpacePlane. More...
 
void control_physics_to_driver (UberCollection thisInstance)
 Get the atoms and the parainfo /////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////. More...
 
static CkReductionMsg * complexSum (int nMsg, CkReductionMsg **msgs)
 
void get_grp_params (int natm_nl, int numSfDups, int indexSfGrp, int planeIndex, int *n_ret, int *istrt_ret, int *iend_ret)
 
int atmGrpMap (int istart, int nsend, int listsize, int *listpe, int AtmGrp, int dup, int planeIndex)
 
int gsprocNum (CPcharmParaInfo *sim, int state, int plane, int numInst)
 
void mapOutput ()
 
bool findCuboid (int &x, int &y, int &z, int &order, int maxX, int maxY, int maxZ, int maxT, int volume, int vn)
 return the cuboid x,y,z of a subpartition exactly matching that volume
 
void registersumFastDouble (void)
 
CkReductionMsg * sumFastDouble (int nMsg, CkReductionMsg **msgs)
 sum together matrices of doubles possibly faster than sum_double due to minimizing copies and using sameer's fastadd
 
void create_Rho_fft_numbers (int nchareR, int nchareRHart, int rhoRsubplanes, int nplane, int sizeY, int ngridbHart, int *numRXRho, int *numRYRho, int *numRXEext, int *numRYEext, int *numSubGx)
 
void setTraceUserEvents ()
 
void computeMapOffsets ()
 
void paircalcstartup (pc::pcConfig *cfgSymmPC, pc::pcConfig *cfgAsymmPC, CPcharmParaInfo *sim, int doublePack)
 stuff to be include before the decl or else
 
void orthostartup (cp::ortho::orthoConfig *orthoCfg, pc::pcConfig *cfgSymmPC, pc::pcConfig *cfgAsymmPC, CPcharmParaInfo *sim, PeListFactory *peList4PCmapping)
 
void init_eesNL_chares (int natm_nl, int natm_nl_grp_max, int doublePack, PeList *exclusion, CPcharmParaInfo *sim, UberCollection thisInstance)
 /addtogroup Particle More...
 

Variables

int TimeKeeperID =0
 
std::vector< std::string > TimeKeeperNames
 
UberCollection thisInstance
 
int numPes
 
bool fakeTorus
 readonly defined in cpaimd.C
 
MDINTEGRATE readonly_mdintegrate
 
MDATOMS readonly_mdatoms
 
MDINTER readonly_mdinter
 
MDINTRA readonly_mdintra
 
GENERAL_DATA readonly_general_data
 
CP readonly_cp
 
double Timer
 readonly globals
 
int nstates
 
int sizeX
 
int nchareG
 
int Ortho_UE_step2
 
int Ortho_UE_step3
 
int Ortho_UE_error
 
bool Ortho_use_local_cb
 
int done_init =0
 
int planes_per_pe
 
CkGroupID mCastGrpId
 Multicast manager group that handles many mcast/redns in the code. Grep for info.
 
CkReduction::reducerType complexVectorAdderType
 
const char OpenAtomRevision [] = INQUOTES(OPENATOM_REVISION)
 A global constant for use in the code.
 
CkReduction::reducerType sumFastDoubleType
 

Detailed Description

cpaimd-charm-driver

This file contains cpaimd-charm-driver main. It creates and initializes all the arrays and libraries.

Definition in file cpaimd.C.

Function Documentation

void control_physics_to_driver ( UberCollection  thisInstance)

Get the atoms and the parainfo /////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////.

make a group : create a proxy for the atom class and also a reduction client

Definition at line 2373 of file cpaimd.C.

void create_Rho_fft_numbers ( int  nchareR,
int  nchareRHart,
int  rhoRsubplanes,
int  nplane,
int  sizeY,
int  ngridbHart,
int *  numRXRho,
int *  numRYRho,
int *  numRXEext,
int *  numRYEext,
int *  numSubGx 
)

Simple case : everyone is the same size

Subplane case : different sizes with subplanes label

Definition at line 2948 of file cpaimd.C.

Referenced by init_state_chares().

void init_eesNL_chares ( int  natm_nl,
int  natm_nl_grp_max,
int  doublePack,
PeList exclusion,
CPcharmParaInfo sim,
UberCollection  thisInstance 
)

/addtogroup Particle

Creating arrays CP_StateRealParticlePlane /////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////

Useful Local variables

Definition at line 1753 of file cpaimd.C.

void init_PIBeads ( CPcharmParaInfo sim,
UberCollection  thisInstance 
)

Create the PIBeadAtoms array.

Definition at line 1203 of file cpaimd.C.

void init_state_chares ( int  natm_nl,
int  natm_nl_grp_max,
int  numSfGrps,
int  doublePack,
CPcharmParaInfo sim,
UberCollection  thisInstance 
)

Create the array elements for the GSpace, Particle and Real Space planes /////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////.

Useful Local variables

addtogroup mapping

Definition at line 1235 of file cpaimd.C.

References create_Rho_fft_numbers().

void setTraceUserEvents ( )

Set user trace events for projections optimizations

Definition at line 3028 of file cpaimd.C.

References IntegrateModForces_.