1 #ifndef __EULER_TEST_FIXTURES_H__ 2 #define __EULER_TEST_FIXTURES_H__ 7 inline double Gauss(
const double &litude,
const std::vector<double> &width,
8 const std::vector<double> ¢er,
const std::vector<double> &xPos)
10 std::vector<double>::const_iterator wIt = width.begin();
11 std::vector<double>::const_iterator cIt = center.begin();
12 std::vector<double>::const_iterator xIt = xPos.begin();
14 while(wIt != width.end()){
15 double xLoc = (*xIt-*cIt)/(*wIt);
22 return(amplitude*std::exp(expTerm));
25 template<
typename Gr
idType,
typename StateType>
26 int SetupEulerState(
const GridType &inGrid,StateType &inState,StateType &inParams,
30 const std::vector<size_t> &
bufferSizes(inGrid.BufferSizes());
31 const std::vector<size_t> &
gridSizes(inGrid.GridSizes());
36 inState.AddField(
"simTime",
's',1,8,
"s");
39 inState.AddField(
"rho",
'n',1,8,
"mass");
40 inState.AddField(
"rhoV",
'n',numDim,8,
"momentum");
41 inState.AddField(
"rhoE",
'n',1,8,
"energy");
43 inState.AddField(
"scalarVars",
'n',numScalars,8,
"m/M");
46 inState.AddField(
"pressure",
'n',1,8,
"pressure");
47 inState.AddField(
"temperature",
'n',1,8,
"temperature");
48 inState.AddField(
"rhom1",
'n',1,8,
"volume");
49 inState.AddField(
"velocity",
'n',numDim,8,
"velocity");
60 inState.Create(numPointsBuffer,0);
62 inState.SetStateFields(
"rho rhoV rhoE");
64 inState.SetStateFields(
"rho rhoV rhoE scalarVars");
65 inState.InitializeFieldHandles();
67 inParams.AddField(
"gamma",
's',1,8,
"");
68 inParams.AddField(
"inputDT",
's',1,8,
"s");
69 inParams.AddField(
"inputCFL",
's',1,8,
"");
70 inParams.AddField(
"refRe",
's',1,8,
"");
71 inParams.AddField(
"Numbers",
's',3,8,
"");
72 inParams.AddField(
"Flags",
's',1,4,
"");
74 inParams.Create(numPointsBuffer,0);
80 template<
typename Gr
idType,
typename StateType>
83 int rhoHandle = inState.GetDataIndex(
"rho");
87 double *rhoPtr = rhoData.
Data<
double>();
91 int rhoVHandle = inState.GetDataIndex(
"rhoV");
95 double *rhoVPtr = rhoVData.
Data<
double>();
99 int rhoEHandle = inState.GetDataIndex(
"rhoE");
103 double *rhoEPtr = rhoEData.
Data<
double>();
108 const std::vector<size_t> &
bufferSizes(inGrid.BufferSizes());
109 const std::vector<size_t> &
gridSizes(inGrid.GridSizes());
113 double rhoE = 1.0/.4;
116 rhoPtr[iPoint] = 1.0;
117 rhoEPtr[iPoint] = rhoE;
120 rhoVPtr[iPoint] = 0.0;
123 size_t iStart = partitionBufferInterval[0].first;
124 size_t iEnd = partitionBufferInterval[0].second;
125 size_t jStart = partitionBufferInterval[1].first;
126 size_t jEnd = partitionBufferInterval[1].second;
127 size_t kStart = partitionBufferInterval[2].first;
128 size_t kEnd = partitionBufferInterval[2].second;
130 for(
size_t kIndex = kStart;kIndex <= kEnd;kIndex++){
131 size_t kBufferIndex = kIndex*nPlane;
132 for(
size_t jIndex = jStart;jIndex <= jEnd;jIndex++){
133 size_t jkBufferIndex = kBufferIndex + jIndex*bufferSizes[0];
134 for(
size_t iIndex = iStart;iIndex <= iEnd;iIndex++){
135 size_t bufferIndex = jkBufferIndex + iIndex;
136 rhoPtr[bufferIndex] = 1.0;
137 rhoEPtr[bufferIndex] = rhoE;
138 rhoVPtr[bufferIndex] = 0.0;
144 }
else if (numDim == 2) {
145 size_t iStart = partitionBufferInterval[0].first;
146 size_t iEnd = partitionBufferInterval[0].second;
147 size_t jStart = partitionBufferInterval[1].first;
148 size_t jEnd = partitionBufferInterval[1].second;
149 for(
size_t jIndex = jStart;jIndex <= jEnd;jIndex++){
151 for(
size_t iIndex = iStart;iIndex <= iEnd;iIndex++){
152 size_t bufferIndex = jBufferIndex + iIndex;
153 rhoPtr[bufferIndex] = 1.0;
154 rhoEPtr[bufferIndex] = rhoE;
155 rhoVPtr[bufferIndex] = 0.0;
159 }
else if (numDim == 1) {
160 size_t iStart = partitionBufferInterval[0].first;
161 size_t iEnd = partitionBufferInterval[0].second;
162 for(
size_t iIndex = iStart;iIndex <= iEnd;iIndex++){
163 rhoPtr[iIndex] = 1.0;
164 rhoEPtr[iIndex] = rhoE;
165 rhoVPtr[iIndex] = 0.0;
void const size_t const size_t * gridSizes
double Gauss(const double &litude, const std::vector< double > &width, const std::vector< double > ¢er, const std::vector< double > &xPos)
int SetupEulerState(const GridType &inGrid, StateType &inState, StateType &inParams, int numScalars, bool withFluxes=false)
void const size_t const size_t * bufferSizes
void const size_t const size_t const size_t const int * numScalars
Simple Block Structured Mesh object.
int InitializeQuiescentFlow(const GridType &inGrid, StateType &inState, bool everyWhere=false)
void const size_t * numPointsBuffer