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);
162 for (i = 0; i < nvariables; ++i)
168 Array<OneD, NekDouble > pressure (npoints, 0.0);
169 Array<OneD, NekDouble > temperature(npoints, 0.0);
174 for (i = 1; i < nvariables-1; ++i)
179 inarrayTemp[i-1], 1);
183 for (i = 0; i < nvariables-2; ++i)
185 Vmath::Vcopy(npoints, inarrayTemp[i], 1, inarrayDiff[i], 1);
191 inarrayDiff[nvariables-2], 1);
196 for (i = 0; i < nvariables; ++i)
206 const Array<
OneD,
const Array<OneD, NekDouble> > &inarray,
207 Array<
OneD, Array<OneD, NekDouble> > &outarray,
211 int nvariables = inarray.num_elements();
220 for(i = 0; i < nvariables; ++i)
230 ASSERTL0(
false,
"No Continuous Galerkin for full compressible "
231 "Navier-Stokes equations");
235 ASSERTL0(
false,
"Unknown projection scheme");
241 Array<
OneD, Array<OneD, NekDouble> > &inarray,
245 int nvariables =
m_fields.num_elements();
249 for (
int n = 0; n <
m_fields[0]->GetBndConditions().num_elements(); ++n)
252 if (
m_fields[0]->GetBndConditions()[n]->GetUserDefined() ==
255 ASSERTL0(
false,
"Wall is a wrong bc for the full "
256 "compressible Navier-Stokes equations");
260 if (
m_fields[0]->GetBndConditions()[n]->GetUserDefined() ==
267 if (
m_fields[0]->GetBndConditions()[n]->GetUserDefined() ==
274 if (
m_fields[0]->GetBndConditions()[n]->GetUserDefined() ==
281 if (
m_fields[0]->GetBndConditions()[n]->GetUserDefined() ==
288 if (
m_fields[0]->GetBndConditions()[n]->GetUserDefined()
291 for (
int i = 0; i < nvariables; ++i)
294 m_fields[i]->EvaluateBoundaryConditions(time, varName);
298 cnt +=
m_fields[0]->GetBndCondExpansions()[n]->GetExpSize();