35 #include <boost/core/ignore_unused.hpp> 
   44             RegisterCreatorFunction(
"NonConservative",
 
   67             const int                                         nConvectiveFields,
 
   76             boost::ignore_unused(time, pFwd, pBwd);
 
   78             int nDim       = advVel.size();
 
   79             int nPointsTot = fields[0]->GetNpoints();
 
   95             for (
int i = 0; i < nConvectiveFields; ++i)
 
  101                         fields[0]->PhysDeriv(inarray[i], grad0);
 
  109                         fields[0]->PhysDeriv(inarray[i], grad0, grad1);
 
  126                         fields[0]->PhysDeriv(inarray[i], grad0, grad1, grad2);
 
  147                         ASSERTL0(
false,
"dimension unknown");
 
#define ASSERTL0(condition, msg)
 
virtual SOLVER_UTILS_EXPORT void v_InitObject(LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)
Initialises the advection object.
 
virtual void v_Advect(const int nConvective, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &advVel, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble &time, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray)
Advects a vector field.
 
AdvectionNonConservative()
 
static AdvectionSharedPtr create(std::string advType)
 
virtual void v_InitObject(LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)
Initialise AdvectionNonConservative objects and store them before starting the time-stepping.
 
std::shared_ptr< SessionReader > SessionReaderSharedPtr
 
AdvectionFactory & GetAdvectionFactory()
Gets the factory for initialising advection objects.
 
The above copyright notice and this permission notice shall be included.
 
void Vmul(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Multiply vector z = x*y.
 
void Vvtvp(int n, const T *w, const int incw, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
vvtvp (vector times vector plus vector): z = w*x + y