36 #ifndef NEKTAR_SOLVERUTILS_EQUATIONSYSTEM_H
37 #define NEKTAR_SOLVERUTILS_EQUATIONSYSTEM_H
126 Array<
OneD, Array<OneD, NekDouble> >& pArray,
127 std::string pFunctionName,
129 const int domain = 0);
133 std::vector<std::string> pFieldNames,
134 Array<
OneD, Array<OneD, NekDouble> > &pFields,
135 const std::string& pName,
136 const int domain = 0);
140 std::vector<std::string> pFieldNames,
141 Array<OneD, MultiRegions::ExpListSharedPtr> &pFields,
142 const std::string& pName,
143 const int domain = 0);
147 std::string pFieldName,
148 Array<OneD, NekDouble>& pArray,
149 const std::string& pFunctionName,
151 const int domain = 0);
155 std::string pFieldName,
156 const std::string &pFunctionName,
161 Array<
OneD, Array<OneD, NekDouble> > &base);
166 bool dumpInitialConditions =
true,
167 const int domain = 0);
172 Array<OneD, NekDouble> &outfield,
179 const Array<OneD,NekDouble> &exactsoln,
180 bool Normalised =
false);
185 bool Normalised =
false)
197 const Array<
OneD, Array<OneD, NekDouble> > &F,
198 Array<OneD, NekDouble> &outarray);
202 const Array<
OneD, Array<OneD, NekDouble> > &F,
203 Array<OneD, NekDouble> &outarray);
207 const Array<
OneD, Array<OneD, NekDouble> > &V,
208 const Array<OneD, const NekDouble> &u,
209 Array<OneD, NekDouble> &outarray,
210 bool UseContCoeffs =
false);
215 const Array<
OneD, Array<OneD, NekDouble> > &V,
216 const Array<OneD, const NekDouble> &u,
217 Array<OneD, NekDouble> &outarray,
222 const Array<
OneD, Array<OneD, NekDouble> >& InField,
223 Array<
OneD, Array<OneD, NekDouble> >& OutField,
224 bool NumericalFluxIncludesNormal =
true,
225 bool InFieldIsInPhysSpace =
false,
230 const Array<
OneD, Array<OneD, NekDouble> >& InField,
231 Array<
OneD, Array<OneD, NekDouble> >& OutField,
232 bool NumericalFluxIncludesNormal =
true,
233 bool InFieldIsInPhysSpace =
false);
242 std::vector<Array<OneD, NekDouble> > &fieldcoeffs,
243 std::vector<std::string> &variables);
250 const std::string &outname,
252 std::vector<Array<OneD, NekDouble> > &fieldcoeffs,
253 std::vector<std::string> &variables);
257 const std::string &infile,
258 Array<OneD, MultiRegions::ExpListSharedPtr> &pFields);
262 const std::string &infile,
263 Array<OneD, MultiRegions::ExpListSharedPtr> &pFields,
269 const std::string &infile,
270 std::vector<std::string> &fieldStr,
271 Array<
OneD, Array<OneD, NekDouble> > &coeffs);
276 const std::string &infile,
278 std::string &pFieldName);
337 Array<OneD, NekDouble> &output);
340 Array<OneD, NekDouble> &output);
350 Array<
OneD, Array<OneD, NekDouble> >&physfield,
351 Array<
OneD, Array<OneD, NekDouble> >&flux);
355 Array<
OneD, Array<OneD, NekDouble> >&physfield,
356 Array<
OneD, Array<OneD, NekDouble> >&fluxX,
357 Array<
OneD, Array<OneD, NekDouble> > &fluxY);
362 Array<
OneD, Array<OneD, NekDouble> > &physfield,
363 Array<
OneD, Array<OneD, NekDouble> > &flux);
366 Array<
OneD, Array<OneD, NekDouble> > &physfield,
367 Array<
OneD, Array<OneD, NekDouble> > &numflux);
370 Array<
OneD, Array<OneD, NekDouble> > &physfield,
371 Array<
OneD, Array<OneD, NekDouble> > &numfluxX,
372 Array<
OneD, Array<OneD, NekDouble> > &numfluxY);
375 const Array<
OneD, Array<OneD, NekDouble> > &ufield,
376 Array<
OneD, Array<
OneD, Array<OneD, NekDouble> > > &uflux);
379 const Array<
OneD, Array<OneD, NekDouble> > &ufield,
380 Array<
OneD, Array<
OneD, Array<OneD, NekDouble> > > &qfield,
381 Array<
OneD, Array<OneD, NekDouble> > &qflux);
384 const bool modbasis);
388 const string & s1,
const string& s2) ;
398 Array<OneD, MultiRegions::ExpListSharedPtr>
m_fields;
400 Array<OneD, MultiRegions::ExpListSharedPtr>
m_base;
452 Array<OneD, Array<OneD, Array<OneD,NekDouble> > >
m_gradtan;
454 Array<OneD, Array<OneD, Array<OneD,NekDouble> > >
m_tanbasis;
518 bool Normalised =
false);
531 bool dumpInitialConditions =
true,
532 const int domain = 0);
536 Array<OneD, NekDouble> &outfield,
554 std::vector<Array<OneD, NekDouble> > &fieldcoeffs,
555 std::vector<std::string> &variables);
561 const int i, Array<
OneD,
562 Array<OneD, NekDouble> >&physfield,
563 Array<
OneD, Array<OneD, NekDouble> >&flux);
566 const int i,
const int j,
567 Array<
OneD, Array<OneD, NekDouble> >&physfield,
568 Array<
OneD, Array<OneD, NekDouble> >&flux);
571 const int i, Array<
OneD,
572 Array<OneD, NekDouble> >&physfield,
573 Array<
OneD, Array<OneD, NekDouble> >&fluxX,
574 Array<
OneD, Array<OneD, NekDouble> > &fluxY);
577 Array<
OneD, Array<OneD, NekDouble> > &physfield,
578 Array<
OneD, Array<OneD, NekDouble> > &numflux);
581 Array<
OneD, Array<OneD, NekDouble> > &physfield,
582 Array<
OneD, Array<OneD, NekDouble> > &numfluxX,
583 Array<
OneD, Array<OneD, NekDouble> > &numfluxY);
586 const Array<
OneD, Array<OneD, NekDouble> > &ufield,
587 Array<
OneD, Array<
OneD, Array<OneD, NekDouble> > > &uflux);
590 const Array<
OneD, Array<OneD, NekDouble> > &ufield,
591 Array<
OneD, Array<
OneD, Array<OneD, NekDouble> > > &qfield,
592 Array<
OneD, Array<OneD, NekDouble > > &qflux);
674 return v_L2Error(field, exactsoln, Normalised);
694 if (
m_session->GetComm()->GetRank() == 0)
696 std::vector<std::pair<std::string, std::string> > vSummary;
699 out <<
"=======================================================================" << endl;
700 SummaryList::const_iterator x;
701 for (x = vSummary.begin(); x != vSummary.end(); ++x)
705 out << x->first <<
": " << x->second << endl;
707 out <<
"=======================================================================" << endl;
717 bool dumpInitialConditions,
725 Array<OneD, NekDouble> &outfield,
749 return m_fields[0]->GetNcoeffs(eid);
754 return m_graph->GetExpansions().begin()->second->m_basisKeyVector[0]
760 return m_fields[0]->EvalBasisNumModesMaxPerExp();
780 return m_fields[0]->GetTrace()->GetNpoints();
790 return m_fields[0]->GetPhys_Offset(n);
795 return m_fields[0]->GetCoeff_Offset(n);
805 return m_fields[0]->GetTotPoints(n);
815 return (
m_fields.num_elements() - 1);
834 Array<OneD, NekDouble> &output)
840 Array<OneD, NekDouble> &output)
846 Array<
OneD, Array<OneD, NekDouble> >&physfield,
847 Array<
OneD, Array<OneD, NekDouble> >&flux)
853 Array<
OneD, Array<OneD, NekDouble> >&physfield,
854 Array<
OneD, Array<OneD, NekDouble> >&fluxX,
855 Array<
OneD, Array<OneD, NekDouble> > &fluxY)
861 Array<
OneD, Array<OneD, NekDouble> > &physfield,
862 Array<
OneD, Array<OneD, NekDouble> > &flux)
868 Array<
OneD, Array<OneD, NekDouble> > &numflux)
874 Array<
OneD, Array<OneD, NekDouble> > &numfluxX,
875 Array<
OneD, Array<OneD, NekDouble> > &numfluxY)
881 const Array<
OneD, Array<OneD, NekDouble> > &ufield,
882 Array<
OneD, Array<
OneD, Array<OneD, NekDouble> > > &uflux)
888 const Array<
OneD, Array<OneD, NekDouble> > &ufield,
889 Array<
OneD, Array<
OneD, Array<OneD, NekDouble> > > &qfield,
890 Array<
OneD, Array<OneD, NekDouble> > &qflux)