OpenAtom  Version1.5a
orthoConfig.h
1 #include "debug_flags.h"
2 #include "charm++.h"
3 
4 #ifndef ORTHO_CONFIG_H
5 #define ORTHO_CONFIG_H
6 /** @addtogroup Ortho
7  @{
8 */
9 
10 namespace cp {
11  namespace ortho {
12 
13 /**
14  * Configuration settings for the ortho world. Most of these are invariant
15  * post-instantiation.
16  */
18 {
19  public:
20  /// Is this a minimization or dynamics run
21  bool isDynamics; ///< @note: This could turn into an enum as more run modes are introduced
22  /// If, this is a minimization run, is it for generating the system wave functions?
23  bool isGenWave; ///< @todo: Used in ortho only for shifting step number by 1. Eliminate
24  /// Should the actual matrix multiplies be handled as real math or complex math
26 
27  //-------------------- Vars that indicate problem size / decomposition --------------------
28  /// The number of states in the simulation (the dimension of the input square matrix)
29  int numStates;
30  /// The block size for parallelization
31  int grainSize;
32 
33  //------------------- Instance, Array, Group identification etc. --------------------------
34  int instanceIndex;
35  /// The tolerance threshold for the S->T iterations in Ortho at which to trigger a PsiV update
36  double maxTolerance;
37  /// Callback to notify bubble owner (GSpace) that a tolerance update is needed
39 
40  /// Is an OrthoHelper chare array available to perform the step 2 computations
42  /// Pander to the BGL NIC and split the GEMMs in ortho
43  int gemmSplit;
44 
45 
46 
47  void pup(PUP::er &p)
48  {
49  p|isDynamics;
50  p|isGenWave;
52  p|numStates;
53  p|grainSize;
54  p|instanceIndex;
55  p|maxTolerance;
58  p|gemmSplit;
59  }
60 };
61 
62  } // end ortho
63 } // end namespace cp
64 /*@}*/
65 #endif // ORTHO_CONFIG_H
66 
67 
int grainSize
The block size for parallelization.
Definition: orthoConfig.h:31
int gemmSplit
Pander to the BGL NIC and split the GEMMs in ortho.
Definition: orthoConfig.h:43
int numStates
The number of states in the simulation (the dimension of the input square matrix) ...
Definition: orthoConfig.h:29
double maxTolerance
The tolerance threshold for the S->T iterations in Ortho at which to trigger a PsiV update...
Definition: orthoConfig.h:36
Configuration settings for the ortho world.
Definition: orthoConfig.h:17
bool isDynamics
Is this a minimization or dynamics run.
Definition: orthoConfig.h:21
bool useComplexMath
Should the actual matrix multiplies be handled as real math or complex math.
Definition: orthoConfig.h:25
CkCallback uponToleranceFailure
Callback to notify bubble owner (GSpace) that a tolerance update is needed.
Definition: orthoConfig.h:38
Useful debugging flags.
bool isStep2HelperOn
Is an OrthoHelper chare array available to perform the step 2 computations.
Definition: orthoConfig.h:41
bool isGenWave
If, this is a minimization run, is it for generating the system wave functions?
Definition: orthoConfig.h:23