Proto
include
Proto_DBLInternals.H
1
#ifndef _PROTO_DBLInternals_H_
2
#define _PROTO_DBLInternals_H_
3
4
#include "Proto_Point.H"
5
#include "Proto_Box.H"
6
#include "implem/Proto_Stack.H"
7
#include "Proto_ProblemDomain.H"
8
#include "Proto_Morton.H"
9
#include "Proto_SPMD.H"
10
#include <cstdlib>
//for size_t
11
#include <iostream>
12
#include <stack>
13
#include <memory>
14
#include <array>
15
#include <unordered_map>
16
namespace
Proto
17
{
18
typedef
std::unordered_map<uint64_t, int > BoxMap;
19
class
DBLInternals
20
{
21
public
:
22
BoxMap boxMap;
23
// BoxMap stores an int pointing to a location in allBoxes, indexed by Points.
24
vector<pair<Point, int> > allBoxes;
25
// allBoxes stores a Point corresponding to the box, and the processor number. Locations
26
// for any given processor are stored in a contiguous set.
27
vector<int> startProc;
28
// Stores the starting location in allBoxes for each processor.
29
ProblemDomain
coarsenedDomain;
30
// m_problemDomain coarsened by m_boxSize. Remains invariant under coarsening or refinement
31
// so we can put it here.
32
// MortonOrder table data. Put it here b/c I can't make the (computed) table static.
33
Morton morton;
34
inline
int
size(){
return
allBoxes.size();};
35
inline
int
mySize(){
return
startProc[
procID
()+1] - startProc[
procID
()];};
36
};
37
}
38
#endif
Proto::DBLInternals
Definition:
Proto_DBLInternals.H:19
Proto::procID
int procID()
local process ID
Definition:
Proto_SPMD.H:52
Proto
Definition:
Proto_Box.H:11
Proto::ProblemDomain
Represents a rectangular domain over which a problem can be defined, including periodic images...
Definition:
Proto_ProblemDomain.H:22
Generated by
1.8.13