36 #ifndef NEKTAR_SOLVERUTILS_FORCING
37 #define NEKTAR_SOLVERUTILS_FORCING
77 const Array<OneD, MultiRegions::ExpListSharedPtr>& pFields,
78 const unsigned int& pNumForcingFields,
79 const TiXmlElement* pForce);
83 const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
89 const LibUtilities::SessionReaderSharedPtr& pSession,
90 const Array<OneD, MultiRegions::ExpListSharedPtr>& pFields,
91 const unsigned int& pNumForcingFields = 0);
103 const LibUtilities::SessionReaderSharedPtr&);
106 const Array<OneD, MultiRegions::ExpListSharedPtr>& pFields,
107 const unsigned int& pNumForcingFields,
108 const TiXmlElement* pForce) = 0;
111 const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
117 Array<OneD, MultiRegions::ExpListSharedPtr> pFields,
118 LibUtilities::SessionReaderSharedPtr pSession,
119 std::string pFieldName,
121 const std::string& pFunctionName,
125 LibUtilities::SessionReaderSharedPtr pSession,
126 std::string pFieldName,
128 const std::string& pFunctionName,
SOLVER_UTILS_EXPORT void EvaluateTimeFunction(LibUtilities::SessionReaderSharedPtr pSession, std::string pFieldName, Array< OneD, NekDouble > &pArray, const std::string &pFunctionName, NekDouble pTime=NekDouble(0))
Array< OneD, Array< OneD, NekDouble > > m_Forcing
Evaluated forcing function.
SOLVER_UTILS_EXPORT void InitObject(const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const unsigned int &pNumForcingFields, const TiXmlElement *pForce)
Initialise the forcing object.
SOLVER_UTILS_EXPORT void Apply(const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble &time)
Apply the forcing.
SOLVER_UTILS_EXPORT typedef boost::shared_ptr< Forcing > ForcingSharedPtr
A shared pointer to an EquationSystem object.
ForcingFactory & GetForcingFactory()
Declaration of the forcing factory singleton.
SOLVER_UTILS_EXPORT void EvaluateFunction(Array< OneD, MultiRegions::ExpListSharedPtr > pFields, LibUtilities::SessionReaderSharedPtr pSession, std::string pFieldName, Array< OneD, NekDouble > &pArray, const std::string &pFunctionName, NekDouble pTime=NekDouble(0))
static SOLVER_UTILS_EXPORT std::vector< ForcingSharedPtr > Load(const LibUtilities::SessionReaderSharedPtr &pSession, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const unsigned int &pNumForcingFields=0)
boost::shared_ptr< SessionReader > SessionReaderSharedPtr
LibUtilities::NekFactory< std::string, Forcing, const LibUtilities::SessionReaderSharedPtr &, const Array< OneD, MultiRegions::ExpListSharedPtr > &, const unsigned int &, const TiXmlElement * > ForcingFactory
Declaration of the forcing factory.
SOLVER_UTILS_EXPORT Forcing(const LibUtilities::SessionReaderSharedPtr &)
Constructor.
LibUtilities::SessionReaderSharedPtr m_session
Session reader.
boost::shared_ptr< Equation > EquationSharedPtr
int m_NumVariable
Number of variables.
virtual SOLVER_UTILS_EXPORT void v_InitObject(const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const unsigned int &pNumForcingFields, const TiXmlElement *pForce)=0
#define SOLVER_UTILS_EXPORT
virtual SOLVER_UTILS_EXPORT ~Forcing()
Defines a forcing term to be explicitly applied.
Provides a generic Factory class.
virtual SOLVER_UTILS_EXPORT void v_Apply(const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble &time)=0