Nektar++
|
#include <ForcingMovingReferenceFrame.h>
Static Public Member Functions | |
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. More... | |
![]() | |
static SOLVER_UTILS_EXPORT std::vector< ForcingSharedPtr > | Load (const LibUtilities::SessionReaderSharedPtr &pSession, const std::weak_ptr< EquationSystem > &pEquation, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const unsigned int &pNumForcingFields=0) |
Static Public Attributes | |
static std::string | classNameBody |
Name of the class. More... | |
Private Member Functions | |
ForcingMovingReferenceFrame (const LibUtilities::SessionReaderSharedPtr &pSession, const std::weak_ptr< EquationSystem > &pEquation) | |
virtual | ~ForcingMovingReferenceFrame (void) |
void | Update (const NekDouble &time) |
Updates the forcing array with the current required forcing. More... | |
void | UpdateTheta (const NekDouble &time) |
void | CheckForRestartTheta (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, Array< OneD, NekDouble > &theta) |
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 More... | |
Private Attributes | |
std::string | m_funcName |
std::string | m_velFuncName |
std::string | m_omegaFuncName |
std::map< int, LibUtilities::EquationSharedPtr > | m_frameFunction |
std::map< int, LibUtilities::EquationSharedPtr > | m_velFunction |
std::map< int, LibUtilities::EquationSharedPtr > | m_omegaFunction |
std::map< int, bool > | m_hasVel |
std::map< int, bool > | m_hasOmega |
std::map< int, NekDouble > | m_velXYZ |
std::map< int, NekDouble > | m_velxyz |
std::map< int, NekDouble > | m_omegaXYZ |
std::map< int, NekDouble > | m_omegaxyz |
Array< OneD, Array< OneD, NekDouble > > | m_coords |
Array< OneD, NekDouble > | m_pivotPoint |
Array< OneD, NekDouble > | m_theta |
bn::ublas::matrix< NekDouble > | m_ProjMatX |
bn::ublas::matrix< NekDouble > | m_ProjMatY |
bn::ublas::matrix< NekDouble > | m_ProjMatZ |
bool | m_hasRotation |
bool | m_isH1d |
bool | m_hasPlane0 |
bool | m_isH2d |
NekInt | m_spacedim |
Friends | |
class | MemoryManager< ForcingMovingReferenceFrame > |
Additional Inherited Members | |
![]() | |
virtual SOLVER_UTILS_EXPORT | ~Forcing () |
SOLVER_UTILS_EXPORT void | InitObject (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const unsigned int &pNumForcingFields, const TiXmlElement *pForce) |
Initialise the forcing object. More... | |
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. More... | |
SOLVER_UTILS_EXPORT void | PreApply (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble &time) |
Change the advection velocity before applying the forcing. For example, subtracting the frame velocity from the advection velocity in the MovingRefercenceFrame. More... | |
SOLVER_UTILS_EXPORT void | ApplyCoeff (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. More... | |
SOLVER_UTILS_EXPORT const Array< OneD, const Array< OneD, NekDouble > > & | GetForces () |
SOLVER_UTILS_EXPORT Array< OneD, Array< OneD, NekDouble > > & | UpdateForces () |
![]() | |
LibUtilities::SessionReaderSharedPtr | m_session |
Session reader. More... | |
const std::weak_ptr< EquationSystem > | m_equ |
Weak pointer to equation system using this forcing. More... | |
Array< OneD, Array< OneD, NekDouble > > | m_Forcing |
Evaluated forcing function. More... | |
int | m_NumVariable |
Number of variables. More... | |
std::map< std::string, SolverUtils::SessionFunctionSharedPtr > | m_sessionFunctions |
Map of known SessionFunctions. More... | |
Definition at line 60 of file ForcingMovingReferenceFrame.h.
|
private |
pSession | |
pEquation |
Definition at line 68 of file ForcingMovingReferenceFrame.cpp.
|
inlineprivatevirtual |
Definition at line 156 of file ForcingMovingReferenceFrame.h.
|
private |
outarray = inarray0 + angVelScale Omega x inarray1
Definition at line 434 of file ForcingMovingReferenceFrame.cpp.
References ASSERTL0, m_hasOmega, m_omegaxyz, m_spacedim, Vmath::Svtvp(), and Vmath::Vcopy().
Referenced by v_Apply(), and v_PreApply().
|
private |
Definition at line 542 of file ForcingMovingReferenceFrame.cpp.
References Nektar::LibUtilities::FieldIO::CreateForFile(), Nektar::LibUtilities::eFunctionTypeFile, Nektar::SolverUtils::Forcing::m_session, Nektar::LibUtilities::NullFieldMetaDataMap, and Nektar::LibUtilities::PortablePath().
Referenced by v_InitObject().
|
inlinestatic |
Creates an instance of this class.
Definition at line 67 of file ForcingMovingReferenceFrame.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::SolverUtils::ForcingSharedPtr, and CellMLToNektar.cellml_metadata::p.
Updates the forcing array with the current required forcing.
pFields | |
time |
Definition at line 297 of file ForcingMovingReferenceFrame.cpp.
References ASSERTL0, Nektar::SolverUtils::Forcing::m_equ, m_hasRotation, m_omegaFunction, m_omegaXYZ, m_omegaxyz, m_ProjMatZ, m_spacedim, m_theta, m_velFunction, m_velXYZ, m_velxyz, and UpdateTheta().
Referenced by v_PreApply().
|
private |
Definition at line 371 of file ForcingMovingReferenceFrame.cpp.
References m_hasOmega, m_omegaFunction, m_omegaXYZ, m_ProjMatZ, Nektar::SolverUtils::Forcing::m_session, m_theta, and Omega.
Referenced by Update().
|
overrideprotectedvirtual |
Adds the body force, -Omega X u.
fields | |
inarray | |
outarray | |
time |
Implements Nektar::SolverUtils::Forcing.
Definition at line 413 of file ForcingMovingReferenceFrame.cpp.
References addRotation(), and m_hasRotation.
|
overrideprotectedvirtual |
Initialise the forcing module.
pFields | |
pNumForcingFields | |
pForce |
Implements Nektar::SolverUtils::Forcing.
Definition at line 81 of file ForcingMovingReferenceFrame.cpp.
References ASSERTL0, CheckForRestartTheta(), Nektar::LibUtilities::Equation::Evaluate(), m_coords, Nektar::SolverUtils::Forcing::m_equ, m_hasOmega, m_hasPlane0, m_hasRotation, m_hasVel, m_isH1d, m_isH2d, Nektar::SolverUtils::Forcing::m_NumVariable, m_omegaFuncName, m_omegaFunction, m_omegaXYZ, m_omegaxyz, m_pivotPoint, m_ProjMatX, m_ProjMatY, m_ProjMatZ, Nektar::SolverUtils::Forcing::m_session, m_spacedim, m_theta, m_velFuncName, m_velFunction, m_velXYZ, m_velxyz, and Vmath::Sadd().
|
overrideprotectedvirtual |
Reimplemented from Nektar::SolverUtils::Forcing.
Definition at line 486 of file ForcingMovingReferenceFrame.cpp.
References addRotation(), m_coords, m_hasPlane0, m_hasRotation, m_hasVel, m_isH1d, m_isH2d, m_spacedim, m_velxyz, Vmath::Sadd(), Update(), Vmath::Vadd(), and Vmath::Vcopy().
|
friend |
Definition at line 1 of file ForcingMovingReferenceFrame.h.
|
static |
Name of the class.
Definition at line 81 of file ForcingMovingReferenceFrame.h.
|
private |
Definition at line 132 of file ForcingMovingReferenceFrame.h.
Referenced by v_InitObject(), and v_PreApply().
|
private |
Definition at line 109 of file ForcingMovingReferenceFrame.h.
|
private |
Definition at line 104 of file ForcingMovingReferenceFrame.h.
|
private |
Definition at line 118 of file ForcingMovingReferenceFrame.h.
Referenced by addRotation(), UpdateTheta(), and v_InitObject().
|
private |
Definition at line 148 of file ForcingMovingReferenceFrame.h.
Referenced by v_InitObject(), and v_PreApply().
|
private |
Definition at line 146 of file ForcingMovingReferenceFrame.h.
Referenced by Update(), v_Apply(), v_InitObject(), and v_PreApply().
|
private |
Definition at line 117 of file ForcingMovingReferenceFrame.h.
Referenced by v_InitObject(), and v_PreApply().
|
private |
Definition at line 147 of file ForcingMovingReferenceFrame.h.
Referenced by v_InitObject(), and v_PreApply().
|
private |
Definition at line 149 of file ForcingMovingReferenceFrame.h.
Referenced by v_InitObject(), and v_PreApply().
|
private |
Definition at line 106 of file ForcingMovingReferenceFrame.h.
Referenced by v_InitObject().
|
private |
Definition at line 111 of file ForcingMovingReferenceFrame.h.
Referenced by Update(), UpdateTheta(), and v_InitObject().
|
private |
Definition at line 127 of file ForcingMovingReferenceFrame.h.
Referenced by Update(), UpdateTheta(), and v_InitObject().
|
private |
Definition at line 130 of file ForcingMovingReferenceFrame.h.
Referenced by addRotation(), Update(), and v_InitObject().
Definition at line 135 of file ForcingMovingReferenceFrame.h.
Referenced by v_InitObject().
|
private |
Definition at line 142 of file ForcingMovingReferenceFrame.h.
Referenced by v_InitObject().
|
private |
Definition at line 143 of file ForcingMovingReferenceFrame.h.
Referenced by v_InitObject().
|
private |
Definition at line 144 of file ForcingMovingReferenceFrame.h.
Referenced by Update(), UpdateTheta(), and v_InitObject().
|
private |
Definition at line 150 of file ForcingMovingReferenceFrame.h.
Referenced by addRotation(), Update(), v_InitObject(), and v_PreApply().
Definition at line 138 of file ForcingMovingReferenceFrame.h.
Referenced by Update(), UpdateTheta(), and v_InitObject().
|
private |
Definition at line 105 of file ForcingMovingReferenceFrame.h.
Referenced by v_InitObject().
|
private |
Definition at line 110 of file ForcingMovingReferenceFrame.h.
Referenced by Update(), and v_InitObject().
|
private |
Definition at line 121 of file ForcingMovingReferenceFrame.h.
Referenced by Update(), and v_InitObject().
|
private |
Definition at line 124 of file ForcingMovingReferenceFrame.h.
Referenced by Update(), v_InitObject(), and v_PreApply().