36#ifndef NEKTAR_SOLVERUTILS_FORCINGMOVINGREFERENCEFRAME
37#define NEKTAR_SOLVERUTILS_FORCINGMOVINGREFERENCEFRAME
58 const std::weak_ptr<EquationSystem> &pEquation,
60 const unsigned int &pNumForcingFields,
const TiXmlElement *pForce)
65 p->InitObject(pFields, pNumForcingFields, pForce);
75 const unsigned int &pNumForcingFields,
76 const TiXmlElement *pForce)
override;
93 const std::weak_ptr<EquationSystem> &pEquation);
120 std::shared_ptr<Nektar::SolverUtils::FluidInterface>
m_FluidEq;
#define SOLVER_UTILS_EXPORT
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
Defines a forcing term to be explicitly applied.
SOLVER_UTILS_EXPORT void v_PreApply(const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble &time) override
Compute the moving frame velocity at given time.
void UpdateMRFStatus(MultiRegions::ExpListSharedPtr field)
Array< OneD, NekDouble > m_velxyz
static std::string classNameBody
Name of the class.
Array< OneD, bool > m_hasVel
std::shared_ptr< Nektar::SolverUtils::FluidInterface > m_FluidEq
~ForcingMovingReferenceFrame(void) override
void addRotation(int npoints, const Array< OneD, Array< OneD, NekDouble > > &inarray0, NekDouble angVelScale, const Array< OneD, Array< OneD, NekDouble > > &inarray1, Array< OneD, Array< OneD, NekDouble > > &outarray)
outarray = inarray0 + angVelScale Omega x inarray1
Array< OneD, NekDouble > m_omegaxyz
Array< OneD, NekDouble > m_pivotPoint
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) override
Adds the body force, -Omega X u.
SOLVER_UTILS_EXPORT void v_InitObject(const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const unsigned int &pNumForcingFields, const TiXmlElement *pForce) override
Initialise the forcing module.
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.
Array< OneD, bool > m_hasOmega
Array< OneD, Array< OneD, NekDouble > > m_coords
std::shared_ptr< SessionReader > SessionReaderSharedPtr
std::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object.
SOLVER_UTILS_EXPORT typedef std::shared_ptr< Forcing > ForcingSharedPtr
A shared pointer to an EquationSystem object.