36 #ifndef NEKTAR_SOLVERUTILS_RIEMANNSOLVER
37 #define NEKTAR_SOLVERUTILS_RIEMANNSOLVER
45 #include <boost/function.hpp>
46 #include <boost/call_traits.hpp>
50 template <
typename Dim,
typename DataType>
55 typedef boost::function<
57 typedef boost::function<
59 typedef boost::function<
67 const Array<
OneD,
const Array<OneD, NekDouble> > &Fwd,
68 const Array<
OneD,
const Array<OneD, NekDouble> > &Bwd,
69 Array<
OneD, Array<OneD, NekDouble> > &flux);
71 template<
typename FuncPo
interT,
typename ObjectPo
interT>
84 template<
typename FuncPo
interT,
typename ObjectPo
interT>
97 template<
typename FuncPo
interT,
typename ObjectPo
interT>
102 m_params[name] = boost::bind(func, obj);
110 template<
typename FuncPo
interT,
typename ObjectPo
interT>
115 m_auxScal[name] = boost::bind(func, obj);
118 template<
typename FuncPo
interT,
typename ObjectPo
interT>
123 m_auxVec[name] = boost::bind(func, obj);
166 const Array<
OneD,
const Array<OneD, NekDouble> > &Fwd,
167 const Array<
OneD,
const Array<OneD, NekDouble> > &Bwd,
168 Array<
OneD, Array<OneD, NekDouble> > &flux) = 0;
171 const Array<
OneD,
const Array<OneD, NekDouble> > &normals);
173 Array<OneD, const NekDouble> &from,
174 Array<OneD, const NekDouble> &to,
177 const Array<
OneD,
const Array<OneD, NekDouble> > &inarray,
178 const Array<
OneD,
const Array<OneD, NekDouble> > &normals,
179 const Array<
OneD,
const Array<OneD, NekDouble> > &vecLocs,
180 Array<
OneD, Array<OneD, NekDouble> > &outarray);
182 const Array<
OneD,
const Array<OneD, NekDouble> > &inarray,
183 const Array<
OneD,
const Array<OneD, NekDouble> > &normals,
184 const Array<
OneD,
const Array<OneD, NekDouble> > &vecLocs,
185 Array<
OneD, Array<OneD, NekDouble> > &outarray);