PlasCom2  1.0
XPACC Multi-physics simluation application
PCPPTypes.H
Go to the documentation of this file.
1 #ifndef __PCPP_TYPES_H__
2 #define __PCPP_TYPES_H__
3 #include <bitset>
4 #include <deque>
5 #include "Profiler.H"
6 #include "MPIGlobal.H"
7 #include "IndexUtil.H"
8 #include "MobileParameters.H"
9 #include "UnixUtils.H"
10 
11 namespace pcpp {
12 
13  typedef std::vector<int> IntVec;
14  typedef std::vector<int> intvector;
15  typedef std::vector<size_t> SizeVec;
16  typedef std::vector<size_t> sizevector;
17  typedef std::vector<double> RealVec;
18  typedef std::vector<double> realvector;
19  typedef std::vector<std::string> stringvector;
26  typedef std::pair<int,SizeVec> CollisionIndicesType;
27  typedef std::pair<int,IndexIntervalType> RemoteCollisionType;
28  typedef std::pair<std::pair<int,int>,IndexIntervalType> PairWiseCollisionType;
29  typedef std::map<int,std::vector<RemoteCollisionType> > RemoteCollisionsMap;
30  typedef std::map<int,std::vector<PairWiseCollisionType> > PairWiseCollisionsMap;
36 
37  // typedef ix::global::ParallelGlobalObj<CommunicatorType,std::string,int,ProfilerType> ParallelGlobalType;
38 #ifndef byte
39  typedef unsigned char byte;
40 #endif
41  using ix::sys::SystemInfo;
43  struct partition_info {
46  };
48 
49  struct intervalset {
50  std::vector<pcpp::IndexIntervalType> internalIntervals;
51  std::vector<pcpp::IndexIntervalType> haloIntervals;
52  std::vector<pcpp::IndexIntervalType> boundaryIntervals;
53  std::vector<pcpp::IndexIntervalType> specialIntervals;
54  };
55 
56  struct virtual_node {
57  virtual_node() : numNodes(1), procsPerNode(1), ioPerNode(0),
58  performIO(0), performCompute(0),
59  ioRank(0), computeRank(0), nodeRank(0)
60  {};
61  int numNodes;
63  int ioPerNode;
64  int performIO;
66  int ioRank;
68  int nodeRank;
69  CommunicatorType nodeCommunicator;
70  CommunicatorType ioCommunicator;
71  CommunicatorType computeCommunicator;
72  };
74 }
75 
76 namespace fixtures {
84 }
85 
86 #endif
ix::util::ComLineObject CommandLineType
Definition: PCPPTypes.H:31
pcpp::ConfigType ConfigurationType
Definition: PCPPProgram.H:13
ix::global::mpiglobal ParallelGlobalType
Definition: PCPPTypes.H:34
std::vector< double > realvector
Definition: PCPPTypes.H:18
std::pair< int, SizeVec > CollisionIndicesType
Definition: PCPPTypes.H:26
std::vector< double > RealVec
Definition: PCPPTypes.H:17
virtual_node VirtualNodeType
Definition: PCPPTypes.H:73
ix::comm::MobileObject MobileObjectType
Definition: PCPPTypes.H:25
Performance profiling object.
Definition: Profiler.H:398
std::vector< int > intvector
Definition: PCPPTypes.H:14
provides communication for complex objects.
Definition: COMM.H:27
std::vector< size_t > sizevector
Definition: PCPPTypes.H:16
Mobile parameters object.
ix::util::sizeextent IndexIntervalType
Definition: PCPPTypes.H:23
CommunicatorType computeCommunicator
Definition: PCPPTypes.H:71
ix::app::MobileString MobileStringType
Definition: PCPPTypes.H:21
ix::global::GlobalObj< std::string, std::string, ProfilerType > GlobalType
Definition: PCPPTypes.H:35
std::vector< pcpp::IndexIntervalType > boundaryIntervals
Definition: PCPPTypes.H:52
ix::comm::CommunicatorObject CommunicatorType
Definition: PCPPTypes.H:33
Performance Profiling interface definition.
std::vector< int > IntVec
Definition: PCPPTypes.H:13
CommunicatorType ioCommunicator
Definition: PCPPTypes.H:70
std::vector< pcpp::IndexIntervalType > specialIntervals
Definition: PCPPTypes.H:53
std::pair< std::pair< int, int >, IndexIntervalType > PairWiseCollisionType
Definition: PCPPTypes.H:28
Main encapsulation of MPI.
Definition: COMM.H:62
std::vector< size_t > SizeVec
Definition: PCPPTypes.H:15
CommunicatorType nodeCommunicator
Definition: PCPPTypes.H:69
std::vector< std::string > stringvector
Definition: PCPPTypes.H:19
Unix System Tools interface.
std::string SystemInfo()
Definition: UnixUtils.C:99
pcpp::IndexIntervalType globalExtent
Definition: PCPPTypes.H:44
ix::app::MobileParameters ConfigType
Definition: PCPPTypes.H:20
partition_info PartitionInfoType
Definition: PCPPTypes.H:47
ix::util::ParamType ParamType
Definition: PCPPTypes.H:22
ix::sys::platform_info PlatformInfoType
Definition: PCPPTypes.H:24
std::map< int, std::vector< RemoteCollisionType > > RemoteCollisionsMap
Definition: PCPPTypes.H:29
Base global object.
Definition: Global.H:25
ix::profiler::ProfilerObj ProfilerType
Definition: PCPPTypes.H:32
Command line processing.
Definition: ComLine.H:62
pcpp::IndexIntervalType localExtent
Definition: PCPPTypes.H:45
Simple Block Structured Mesh object.
Definition: IndexUtil.H:21
std::vector< pcpp::IndexIntervalType > internalIntervals
Definition: PCPPTypes.H:50
Simple key-value pair.
std::vector< pcpp::IndexIntervalType > haloIntervals
Definition: PCPPTypes.H:51
platform_info PlatformInfo(const std::string &systemInfo)
Definition: UnixUtils.C:45
std::map< int, std::vector< PairWiseCollisionType > > PairWiseCollisionsMap
Definition: PCPPTypes.H:30
std::pair< int, IndexIntervalType > RemoteCollisionType
Definition: PCPPTypes.H:27
unsigned char byte
Definition: PCPPTypes.H:39