PlasCom2  1.0
XPACC Multi-physics simluation application
EOS.C
Go to the documentation of this file.
1 #include "EOS.H"
2 
3 namespace eos {
4 
5 int eos::ComputePressureBuffer(const pcpp::IndexIntervalType &regionInterval,
6  const std::vector<size_t> &bufferSizes){
7 
8  numDim = bufferSizes.size();
9 
10  yStart = 0;
11  yEnd = 0;
12  zStart = 0;
13  zEnd = 0;
14 
15  xStart = regionInterval[0].first;
16  xEnd = regionInterval[0].second;
17  xSize = bufferSizes[0];
18  numPointsBuffer = xSize;
19 
20  if(numDim > 1){
21  yStart = regionInterval[1].first;
22  yEnd = regionInterval[1].second;
23  ySize = bufferSizes[1];
24  numPointsBuffer *= ySize;
25  }
26 
27  if(numDim > 2){
28  zStart = regionInterval[2].first;
29  zEnd = regionInterval[2].second;
30  zSize = bufferSizes[2];
31  numPointsBuffer *= zSize;
32  }
33 
34  size_t nPlane = xSize*ySize;
35  size_t nPoints = xSize*ySize*zSize;
36 
37  for(size_t iZ = zStart;iZ <= zEnd;iZ++){
38  size_t zIndex = iZ*nPlane;
39  for(size_t iY = yStart;iY <= yEnd;iY++){
40  size_t yzIndex = iY*xSize+zIndex;
41  for(size_t iX = xStart;iX <= xEnd;iX++){
42  size_t xyzIndex = yzIndex + iX;
43 
44  //ComputePressurePtr(xyzIndex);
45  ComputePressure(xyzIndex);
46  }
47  }
48  }
49  return(0);
50 }
51 
52 int eos::ComputeTemperatureBuffer(const pcpp::IndexIntervalType &regionInterval,
53  const std::vector<size_t> &bufferSizes) {
54 
55  numDim = bufferSizes.size();
56 
57  yStart = 0;
58  yEnd = 0;
59  zStart = 0;
60  zEnd = 0;
61 
62  xStart = regionInterval[0].first;
63  xEnd = regionInterval[0].second;
64  xSize = bufferSizes[0];
65  numPointsBuffer = xSize;
66 
67  if(numDim > 1){
68  yStart = regionInterval[1].first;
69  yEnd = regionInterval[1].second;
70  ySize = bufferSizes[1];
71  numPointsBuffer *= ySize;
72  }
73 
74  if(numDim > 2){
75  zStart = regionInterval[2].first;
76  zEnd = regionInterval[2].second;
77  zSize = bufferSizes[2];
78  numPointsBuffer *= zSize;
79  }
80 
81  size_t nPlane = xSize*ySize;
82  size_t nPoints = xSize*ySize*zSize;
83 
84  for(size_t iZ = zStart;iZ <= zEnd;iZ++){
85  size_t zIndex = iZ*nPlane;
86  for(size_t iY = yStart;iY <= yEnd;iY++){
87  size_t yzIndex = iY*xSize+zIndex;
88  for(size_t iX = xStart;iX <= xEnd;iX++){
89  size_t xyzIndex = yzIndex + iX;
90 
91  //ComputeTemperaturePtr(xyzIndex);
92  ComputeTemperature(xyzIndex);
93  }
94  }
95  }
96  return(0);
97 }
98 
99 } // namespace eos
Definition: EOS.H:7
void const size_t const size_t * bufferSizes
Definition: MetricKernels.H:19
Simple Block Structured Mesh object.
Definition: IndexUtil.H:21
void const size_t * numPointsBuffer
Definition: MetricKernels.H:19