69 m_session->LoadSolverInfo(
"AdvectionType", advName,
"NonConservative");
80 m_session->LoadSolverInfo(
"AdvectionType", advName,
"WeakDG");
84 m_session->LoadSolverInfo(
"UpwindType", riemName,
"Upwind");
94 ASSERTL0(
false,
"Unsupported projection type.");
108 ASSERTL0(
false,
"Implicit unsteady Advection not set up.");
134 int nVariables =
m_fields.num_elements();
137 Array<OneD, NekDouble> Fwd (nTracePts);
138 Array<OneD, Array<OneD, NekDouble> > physfield (nVariables);
147 for(i = 0; i < nVariables; ++i)
149 physfield[i] = Array<OneD, NekDouble>(nSolutionPts);
155 m_fields[0]->ExtractTracePhys(physfield[0], Fwd);
179 const Array<
OneD,
const Array<OneD, NekDouble> >&inarray,
180 Array<
OneD, Array<OneD, NekDouble> >&outarray,
187 int nVariables = inarray.num_elements();
193 Array<OneD, Array<OneD, NekDouble> > advVel;
199 for (i = 0; i < nVariables; ++i)
213 const Array<
OneD,
const Array<OneD, NekDouble> >&inarray,
214 Array<
OneD, Array<OneD, NekDouble> >&outarray,
221 int nVariables = inarray.num_elements();
236 for(i = 0; i < nVariables; ++i)
238 Vmath::Vcopy(nQuadraturePts, inarray[i], 1, outarray[i], 1);
249 for(i = 0; i < nVariables; ++i)
251 m_fields[i]->FwdTrans(inarray[i], coeffs);
252 m_fields[i]->BwdTrans_IterPerExp(coeffs, outarray[i]);
257 ASSERTL0(
false,
"Unknown projection scheme");
270 const Array<
OneD, Array<OneD, NekDouble> > &physfield,
271 Array<
OneD, Array<
OneD, Array<OneD, NekDouble> > > &flux)
275 for (
int i = 0; i < flux.num_elements(); ++i)
277 for (
int j = 0; j < flux[0].num_elements(); ++j)
281 Vmath::Smul(nq, 0.5, flux[i][j], 1, flux[i][j], 1);