77 const int nConvectiveFields,
86 int nPointsTot = fields[0]->GetTotPoints();
87 int nCoeffs = fields[0]->GetNcoeffs();
88 int nTracePointsTot = fields[0]->GetTrace()->GetTotPoints();
96 for (i = 0; i < nConvectiveFields; ++i)
107 "Riemann solver must be provided for AdvectionWeakDG.");
112 for(i = 0; i < nConvectiveFields; ++i)
116 fields[i]->IProductWRTDerivBase(fluxvector[i],tmp[i]);
127 for(i = 0; i < nConvectiveFields; ++i)
132 fields[i]->GetFwdBwdTracePhys(inarray[i], Fwd[i], Bwd[i]);
137 for(i = 0; i < nConvectiveFields; ++i)
148 for(i = 0; i < nConvectiveFields; ++i)
151 fields[i]->AddTraceIntegral (numflux[i], tmp[i]);
152 fields[i]->MultiplyByElmtInvMass(tmp[i], tmp[i]);
153 fields[i]->BwdTrans (tmp[i], outarray[i]);
virtual void v_InitObject(LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)
Initialise AdvectionWeakDG objects and store them before starting the time-stepping.
RiemannSolverSharedPtr m_riemann
Riemann solver for DG-type schemes.
boost::shared_ptr< SessionReader > SessionReaderSharedPtr
AdvectionFactory & GetAdvectionFactory()
Gets the factory for initialising advection objects.
void Neg(int n, T *x, const int incx)
Negate x = -x.
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)
Compute the advection term at each time-step using the Discontinuous Glaerkin approach (DG)...
AdvectionFluxVecCB m_fluxVector
Callback function to the flux vector (set when advection is in conservative form).
static Array< OneD, Array< OneD, NekDouble > > NullNekDoubleArrayofArray
int m_spaceDim
Storage for space dimension. Used for homogeneous extension.
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
static AdvectionSharedPtr create(std::string advType)
virtual SOLVER_UTILS_EXPORT void v_InitObject(LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)
Initialises the advection object.