43 "NavierStokes equations in conservative variables.");
55 if(
m_session->DefinesSolverInfo(
"PROBLEMTYPE"))
58 std::string ProblemTypeStr =
m_session->GetSolverInfo(
"PROBLEMTYPE");
81 ASSERTL0(
false,
"Implicit CFE not set up.");
98 bool dumpInitialConditions,
105 int phystot =
m_fields[0]->GetTotPoints();
106 Array<OneD, NekDouble> noise(phystot);
108 m_session->LoadParameter(
"Noise", Noise,0.0);
109 int m_nConvectiveFields =
m_fields.num_elements();
113 for(
int i = 0; i < m_nConvectiveFields; i++)
122 if (dumpInitialConditions)
130 const Array<
OneD,
const Array<OneD, NekDouble> > &inarray,
131 Array<
OneD, Array<OneD, NekDouble> > &outarray,
135 int nvariables = inarray.num_elements();
139 Array<OneD, Array<OneD, NekDouble> > advVel(
m_spacedim);
140 Array<OneD, Array<OneD, NekDouble> > outarrayAdv(nvariables);
141 Array<OneD, Array<OneD, NekDouble> > outarrayDiff(nvariables);
143 Array<OneD, Array<OneD, NekDouble> > inarrayTemp(nvariables-1);
144 Array<OneD, Array<OneD, NekDouble> > inarrayDiff(nvariables-1);
146 for (i = 0; i < nvariables; ++i)
148 outarrayAdv[i] = Array<OneD, NekDouble>(npoints, 0.0);
149 outarrayDiff[i] = Array<OneD, NekDouble>(npoints, 0.0);
152 for (i = 0; i < nvariables-1; ++i)
154 inarrayTemp[i] = Array<OneD, NekDouble>(npoints, 0.0);
155 inarrayDiff[i] = Array<OneD, NekDouble>(npoints, 0.0);
161 for (i = 0; i < nvariables; ++i)
167 Array<OneD, NekDouble > pressure (npoints, 0.0);
168 Array<OneD, NekDouble > temperature(npoints, 0.0);
173 for (i = 1; i < nvariables-1; ++i)
178 inarrayTemp[i-1], 1);
182 for (i = 0; i < nvariables-2; ++i)
184 Vmath::Vcopy(npoints, inarrayTemp[i], 1, inarrayDiff[i], 1);
190 inarrayDiff[nvariables-2], 1);
195 for (i = 0; i < nvariables; ++i)
205 const Array<
OneD,
const Array<OneD, NekDouble> > &inarray,
206 Array<
OneD, Array<OneD, NekDouble> > &outarray,
210 int nvariables = inarray.num_elements();
219 for(i = 0; i < nvariables; ++i)
229 ASSERTL0(
false,
"No Continuous Galerkin for full compressible "
230 "Navier-Stokes equations");
234 ASSERTL0(
false,
"Unknown projection scheme");
240 Array<
OneD, Array<OneD, NekDouble> > &inarray,
244 int nvariables =
m_fields.num_elements();
248 for (
int n = 0; n <
m_fields[0]->GetBndConditions().num_elements(); ++n)
251 if (
m_fields[0]->GetBndConditions()[n]->GetUserDefined() ==
254 ASSERTL0(
false,
"Wall is a wrong bc for the full "
255 "compressible Navier-Stokes equations");
259 if (
m_fields[0]->GetBndConditions()[n]->GetUserDefined() ==
266 if (
m_fields[0]->GetBndConditions()[n]->GetUserDefined() ==
273 if (
m_fields[0]->GetBndConditions()[n]->GetUserDefined() ==
280 if (
m_fields[0]->GetBndConditions()[n]->GetUserDefined() ==
287 if (
m_fields[0]->GetBndConditions()[n]->GetUserDefined()
290 for (
int i = 0; i < nvariables; ++i)
293 m_fields[i]->EvaluateBoundaryConditions(time, varName);
297 cnt +=
m_fields[0]->GetBndCondExpansions()[n]->GetExpSize();