36 #ifndef NEKTAR_SOLVERUTILS_FORCINGMOVINGREFERENCEFRAME 37 #define NEKTAR_SOLVERUTILS_FORCINGMOVINGREFERENCEFRAME 49 namespace SolverUtils {
60 const std::weak_ptr<EquationSystem> &pEquation,
62 const unsigned int &pNumForcingFields,
63 const TiXmlElement *pForce) {
66 p->InitObject(pFields, pNumForcingFields, pForce);
77 const unsigned int &pNumForcingFields,
78 const TiXmlElement *pForce);
99 const std::weak_ptr<EquationSystem> &pEquation);
void CalculateGradient(const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields)
Calculates the gradient of the velocity fields.
SOLVER_UTILS_EXPORT typedef std::shared_ptr< Forcing > ForcingSharedPtr
A shared pointer to an EquationSystem object.
void Update(const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const NekDouble &time)
Updates the forcing array with the current required forcing.
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
virtual SOLVER_UTILS_EXPORT void v_InitObject(const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const unsigned int &pNumForcingFields, const TiXmlElement *pForce)
Initialise the forcing module.
virtual ~ForcingMovingReferenceFrame(void)
static std::string classNameBody
Name of the class.
static std::string classNameField
Array< OneD, Array< OneD, NekDouble > > m_grad
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
#define SOLVER_UTILS_EXPORT
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)
Apply the forcing term.
bool m_homogen_dealiasing
Array< OneD, NekDouble > m_frameVelocity
Defines a forcing term to be explicitly applied.
ForcingMovingReferenceFrame(const LibUtilities::SessionReaderSharedPtr &pSession, const std::weak_ptr< EquationSystem > &pEquation)
std::shared_ptr< SessionReader > SessionReaderSharedPtr
static SOLVER_UTILS_EXPORT ForcingSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession, const std::weak_ptr< EquationSystem > &pEquation, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const unsigned int &pNumForcingFields, const TiXmlElement *pForce)
Creates an instance of this class.