51 Loki::SingleThreaded> Type;
52 return Type::Instance();
77 const int nConvectiveFields,
86 v_Advect(nConvectiveFields, pFields, pAdvVel, pInarray,
87 pOutarray, pTime, pFwd, pBwd);
106 if (pSession->DefinesSolverInfo(
"HOMOGENEOUS"))
108 std::string HomoStr = pSession->GetSolverInfo(
"HOMOGENEOUS");
109 if (HomoStr ==
"HOMOGENEOUS1D" || HomoStr ==
"Homogeneous1D" ||
110 HomoStr ==
"1D" || HomoStr ==
"Homo1D" ||
111 HomoStr ==
"HOMOGENEOUS2D" || HomoStr ==
"Homogeneous2D" ||
112 HomoStr ==
"2D" || HomoStr ==
"Homo2D")
118 ASSERTL0(
false,
"Only 1D homogeneous dimension supported.");
132 "A baseflow is not appropriate for this advection type.");
#define ASSERTL0(condition, msg)
LibUtilities::NekFactory< std::string, Advection, std::string > AdvectionFactory
Datatype of the NekFactory used to instantiate classes derived from the Advection class...
SOLVER_UTILS_EXPORT void InitObject(LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)
Interface function to initialise the advection object.
virtual SOLVER_UTILS_EXPORT void v_Advect(const int nConvectiveFields, 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)=0
Advects a vector field.
virtual SOLVER_UTILS_EXPORT void v_SetBaseFlow(const Array< OneD, Array< OneD, NekDouble > > &inarray, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields)
Overrides the base flow used during linearised advection.
boost::shared_ptr< SessionReader > SessionReaderSharedPtr
AdvectionFactory & GetAdvectionFactory()
Gets the factory for initialising advection objects.
SOLVER_UTILS_EXPORT void Advect(const int nConvectiveFields, 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)
Interface function to advect the vector field.
int m_spaceDim
Storage for space dimension. Used for homogeneous extension.
virtual SOLVER_UTILS_EXPORT void v_InitObject(LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)
Initialises the advection object.
Provides a generic Factory class.