Nektar++
|
#include <ForcingBody.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... | |
static std::string | classNameField |
Private Member Functions | |
ForcingBody (const LibUtilities::SessionReaderSharedPtr &pSession, const std::weak_ptr< EquationSystem > &pEquation) | |
~ForcingBody (void) override | |
void | Update (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const Array< OneD, Array< OneD, NekDouble > > &inarray, const NekDouble &time) |
Private Attributes | |
std::string | m_funcName |
bool | m_hasTimeFcnScaling |
LibUtilities::EquationSharedPtr | m_timeFcnEqn |
bool | m_homogeneous |
bool | m_hasEvars |
std::map< int, std::vector< int > > | m_eqnEvars |
Friends | |
class | MemoryManager< ForcingBody > |
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 48 of file ForcingBody.h.
|
private |
Definition at line 51 of file ForcingBody.cpp.
|
inlineoverrideprivate |
Definition at line 99 of file ForcingBody.h.
|
inlinestatic |
Creates an instance of this class.
Definition at line 54 of file ForcingBody.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::SolverUtils::ForcingSharedPtr, and CellMLToNektar.cellml_metadata::p.
|
private |
Definition at line 164 of file ForcingBody.cpp.
References Nektar::SolverUtils::Forcing::GetFunction(), m_eqnEvars, Nektar::SolverUtils::Forcing::m_Forcing, m_funcName, m_hasEvars, m_homogeneous, and Nektar::SolverUtils::Forcing::m_session.
Referenced by v_Apply(), v_ApplyCoeff(), and v_InitObject().
|
overrideprotectedvirtual |
Implements Nektar::SolverUtils::Forcing.
Definition at line 219 of file ForcingBody.cpp.
References Nektar::SolverUtils::Forcing::EvaluateTimeFunction(), m_eqnEvars, Nektar::SolverUtils::Forcing::m_Forcing, m_hasTimeFcnScaling, m_timeFcnEqn, Vmath::Svtvp(), Update(), and Vmath::Vadd().
|
overrideprotectedvirtual |
Reimplemented from Nektar::SolverUtils::Forcing.
Definition at line 249 of file ForcingBody.cpp.
References Nektar::SolverUtils::Forcing::EvaluateTimeFunction(), m_eqnEvars, Nektar::SolverUtils::Forcing::m_Forcing, m_hasTimeFcnScaling, Nektar::SolverUtils::Forcing::m_NumVariable, m_timeFcnEqn, Vmath::Svtvp(), Update(), and Vmath::Vadd().
|
overrideprotectedvirtual |
Implements Nektar::SolverUtils::Forcing.
Definition at line 57 of file ForcingBody.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL0, Nektar::MultiRegions::e3DH1D, Nektar::MultiRegions::e3DH2D, Nektar::ErrorUtil::efatal, Nektar::LibUtilities::eFunctionTypeExpression, m_eqnEvars, Nektar::SolverUtils::Forcing::m_Forcing, m_funcName, m_hasEvars, m_hasTimeFcnScaling, m_homogeneous, Nektar::SolverUtils::Forcing::m_NumVariable, Nektar::SolverUtils::Forcing::m_session, m_timeFcnEqn, NEKERROR, and Update().
|
friend |
Definition at line 1 of file ForcingBody.h.
|
static |
Name of the class.
Definition at line 67 of file ForcingBody.h.
|
static |
Definition at line 68 of file ForcingBody.h.
|
private |
Definition at line 94 of file ForcingBody.h.
Referenced by Update(), v_Apply(), v_ApplyCoeff(), and v_InitObject().
|
private |
Definition at line 89 of file ForcingBody.h.
Referenced by Update(), and v_InitObject().
|
private |
Definition at line 93 of file ForcingBody.h.
Referenced by Update(), and v_InitObject().
|
private |
Definition at line 90 of file ForcingBody.h.
Referenced by v_Apply(), v_ApplyCoeff(), and v_InitObject().
|
private |
Definition at line 92 of file ForcingBody.h.
Referenced by Update(), and v_InitObject().
|
private |
Definition at line 91 of file ForcingBody.h.
Referenced by v_Apply(), v_ApplyCoeff(), and v_InitObject().