Nektar++
|
#include <ForcingMovingBody.h>
Static Public Member Functions | |
static SolverUtils::ForcingSharedPtr | create (const LibUtilities::SessionReaderSharedPtr &pSession, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const unsigned int &pNumForcingFields, const TiXmlElement *pForce) |
Creates an instance of this class. More... | |
Static Public Member Functions inherited from Nektar::SolverUtils::Forcing | |
static SOLVER_UTILS_EXPORT std::vector< ForcingSharedPtr > | Load (const LibUtilities::SessionReaderSharedPtr &pSession, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const unsigned int &pNumForcingFields=0) |
Static Public Attributes | |
static std::string | className |
Name of the class. More... | |
Protected Attributes | |
GlobalMapping::MappingSharedPtr | m_mapping |
Protected Attributes inherited from Nektar::SolverUtils::Forcing | |
LibUtilities::SessionReaderSharedPtr | m_session |
Session reader. More... | |
Array< OneD, Array< OneD, NekDouble > > | m_Forcing |
Evaluated forcing function. More... | |
int | m_NumVariable |
Number of variables. More... | |
Private Member Functions | |
ForcingMovingBody (const LibUtilities::SessionReaderSharedPtr &pSession) | |
void | CheckIsFromFile (const TiXmlElement *pForce) |
void | InitialiseCableModel (const LibUtilities::SessionReaderSharedPtr &pSession, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields) |
void | InitialiseFilter (const LibUtilities::SessionReaderSharedPtr &pSession, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const TiXmlElement *pForce) |
void | Newmark_betaSolver (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, Array< OneD, NekDouble > &FcePhysinArray, Array< OneD, NekDouble > &MotPhysinArray) |
void | EvaluateStructDynModel (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, Array< OneD, NekDouble > &Hydroforces, NekDouble time) |
void | SetDynEqCoeffMatrix (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields) |
void | RollOver (Array< OneD, Array< OneD, NekDouble > > &input) |
Private Attributes | |
int | m_movingBodyCalls |
number of times the movbody have been called More... | |
int | m_np |
number of planes per processors More... | |
int | m_vdim |
vibration dimension More... | |
NekDouble | m_structrho |
mass of the cable per unit length More... | |
NekDouble | m_structdamp |
damping ratio of the cable More... | |
NekDouble | m_lhom |
length ratio of the cable More... | |
NekDouble | m_kinvis |
fluid viscous More... | |
NekDouble | m_timestep |
time step More... | |
LibUtilities::NektarFFTSharedPtr | m_FFT |
FilterMovingBodySharedPtr | m_MovBodyfilter |
Array< OneD, NekDouble > | m_Aeroforces |
storage for the cable's force(x,y) variables More... | |
Array< OneD, Array< OneD, NekDouble > > | m_MotionVars |
storage for the cable's motion(x,y) variables More... | |
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > | m_fV |
fictitious velocity storage More... | |
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > | m_fA |
fictitious acceleration storage More... | |
Array< OneD, DNekMatSharedPtr > | m_CoeffMat_A |
matrices in Newmart-beta method More... | |
Array< OneD, DNekMatSharedPtr > | m_CoeffMat_B |
matrices in Newmart-beta method More... | |
Array< OneD, std::string > | m_funcName |
[0] is displacements, [1] is velocities, [2] is accelerations More... | |
Array< OneD, std::string > | m_motion |
motion direction: [0] is 'x' and [1] is 'y' More... | |
Array< OneD, bool > | m_IsFromFile |
do determine if the the body motion come from an extern file More... | |
Array< OneD, Array< OneD, NekDouble > > | m_zta |
Store the derivatives of motion variables in x-direction. More... | |
Array< OneD, Array< OneD, NekDouble > > | m_eta |
Store the derivatives of motion variables in y-direction. More... | |
unsigned int | m_outputFrequency |
Array< OneD, std::ofstream > | m_outputStream |
std::string | m_outputFile_fce |
std::string | m_outputFile_mot |
Friends | |
class | MemoryManager< ForcingMovingBody > |
Additional Inherited Members | |
Public Member Functions inherited from Nektar::SolverUtils::Forcing | |
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... | |
Definition at line 50 of file ForcingMovingBody.h.
|
private |
Definition at line 47 of file ForcingMovingBody.cpp.
|
private |
Definition at line 1071 of file ForcingMovingBody.cpp.
References ASSERTL0, Nektar::LibUtilities::eFunctionTypeExpression, Nektar::LibUtilities::eFunctionTypeFile, m_funcName, m_IsFromFile, m_motion, and Nektar::SolverUtils::Forcing::m_session.
Referenced by v_InitObject().
|
inlinestatic |
Creates an instance of this class.
Definition at line 57 of file ForcingMovingBody.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and Nektar::SolverUtils::ForcingSharedPtr.
|
private |
Definition at line 227 of file ForcingMovingBody.cpp.
References Vmath::Fill(), m_eta, m_fA, m_fV, m_motion, m_MotionVars, m_movingBodyCalls, m_np, Nektar::SolverUtils::Forcing::m_session, m_vdim, m_zta, Newmark_betaSolver(), npts, RollOver(), Vmath::Smul(), Vmath::Svtvp(), and Vmath::Vcopy().
Referenced by v_Apply().
|
private |
Definition at line 690 of file ForcingMovingBody.cpp.
References ASSERTL0, Nektar::LibUtilities::NekFactory< tKey, tBase, >::CreateInstance(), Nektar::LibUtilities::GetNektarFFTFactory(), m_fA, m_FFT, m_funcName, m_fV, m_IsFromFile, m_kinvis, m_lhom, m_motion, m_MotionVars, m_movingBodyCalls, m_np, Nektar::SolverUtils::Forcing::m_session, m_structdamp, m_structrho, m_timestep, m_vdim, npts, Vmath::Sadd(), SetDynEqCoeffMatrix(), Vmath::Smul(), and Vmath::Vcopy().
Referenced by v_InitObject().
|
private |
Definition at line 1222 of file ForcingMovingBody.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL0, and m_MovBodyfilter.
Referenced by v_InitObject().
|
private |
Definition at line 554 of file ForcingMovingBody.cpp.
References ASSERTL0, m_CoeffMat_A, m_CoeffMat_B, m_FFT, Nektar::SolverUtils::Forcing::m_session, m_structrho, npts, and Vmath::Vcopy().
Referenced by EvaluateStructDynModel().
Function to roll time-level storages to the next step layout. The stored data associated with the oldest time-level (not required anymore) are moved to the top, where they will be overwritten as the solution process progresses.
Definition at line 1053 of file ForcingMovingBody.cpp.
Referenced by EvaluateStructDynModel().
|
private |
Definition at line 946 of file ForcingMovingBody.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL0, m_CoeffMat_A, m_CoeffMat_B, m_lhom, Nektar::SolverUtils::Forcing::m_session, m_structdamp, m_structrho, and m_timestep.
Referenced by InitialiseCableModel().
|
protectedvirtual |
Implements Nektar::SolverUtils::Forcing.
Definition at line 100 of file ForcingMovingBody.cpp.
References ASSERTL0, Nektar::SolverUtils::Forcing::EvaluateFunction(), EvaluateStructDynModel(), m_eta, m_funcName, m_IsFromFile, m_mapping, m_motion, m_MotionVars, m_MovBodyfilter, m_np, Nektar::SolverUtils::Forcing::m_session, m_vdim, m_zta, Vmath::Vadd(), Vmath::Vcopy(), and Vmath::Vsub().
|
protectedvirtual |
Implements Nektar::SolverUtils::Forcing.
Definition at line 53 of file ForcingMovingBody.cpp.
References ASSERTL0, CheckIsFromFile(), Nektar::MultiRegions::e3DH1D, InitialiseCableModel(), InitialiseFilter(), Nektar::GlobalMapping::Mapping::Load(), m_eta, m_mapping, Nektar::SolverUtils::Forcing::m_session, m_vdim, and m_zta.
|
friend |
Definition at line 54 of file ForcingMovingBody.h.
|
static |
Name of the class.
Definition at line 71 of file ForcingMovingBody.h.
storage for the cable's force(x,y) variables
Definition at line 133 of file ForcingMovingBody.h.
|
private |
matrices in Newmart-beta method
Definition at line 141 of file ForcingMovingBody.h.
Referenced by Newmark_betaSolver(), and SetDynEqCoeffMatrix().
|
private |
matrices in Newmart-beta method
Definition at line 143 of file ForcingMovingBody.h.
Referenced by Newmark_betaSolver(), and SetDynEqCoeffMatrix().
Store the derivatives of motion variables in y-direction.
Definition at line 153 of file ForcingMovingBody.h.
Referenced by EvaluateStructDynModel(), v_Apply(), and v_InitObject().
fictitious acceleration storage
Definition at line 139 of file ForcingMovingBody.h.
Referenced by EvaluateStructDynModel(), and InitialiseCableModel().
|
private |
Definition at line 129 of file ForcingMovingBody.h.
Referenced by InitialiseCableModel(), and Newmark_betaSolver().
[0] is displacements, [1] is velocities, [2] is accelerations
Definition at line 145 of file ForcingMovingBody.h.
Referenced by CheckIsFromFile(), InitialiseCableModel(), and v_Apply().
fictitious velocity storage
Definition at line 137 of file ForcingMovingBody.h.
Referenced by EvaluateStructDynModel(), and InitialiseCableModel().
do determine if the the body motion come from an extern file
Definition at line 149 of file ForcingMovingBody.h.
Referenced by CheckIsFromFile(), InitialiseCableModel(), and v_Apply().
|
private |
fluid viscous
Definition at line 126 of file ForcingMovingBody.h.
Referenced by InitialiseCableModel().
|
private |
length ratio of the cable
Definition at line 125 of file ForcingMovingBody.h.
Referenced by InitialiseCableModel(), and SetDynEqCoeffMatrix().
|
protected |
Definition at line 75 of file ForcingMovingBody.h.
Referenced by v_Apply(), and v_InitObject().
motion direction: [0] is 'x' and [1] is 'y'
Definition at line 147 of file ForcingMovingBody.h.
Referenced by CheckIsFromFile(), EvaluateStructDynModel(), InitialiseCableModel(), and v_Apply().
storage for the cable's motion(x,y) variables
Definition at line 135 of file ForcingMovingBody.h.
Referenced by EvaluateStructDynModel(), InitialiseCableModel(), and v_Apply().
|
private |
Definition at line 131 of file ForcingMovingBody.h.
Referenced by InitialiseFilter(), and v_Apply().
|
private |
number of times the movbody have been called
Definition at line 119 of file ForcingMovingBody.h.
Referenced by EvaluateStructDynModel(), and InitialiseCableModel().
|
private |
number of planes per processors
Definition at line 120 of file ForcingMovingBody.h.
Referenced by EvaluateStructDynModel(), InitialiseCableModel(), and v_Apply().
|
private |
Definition at line 157 of file ForcingMovingBody.h.
|
private |
Definition at line 158 of file ForcingMovingBody.h.
|
private |
Definition at line 155 of file ForcingMovingBody.h.
Definition at line 156 of file ForcingMovingBody.h.
|
private |
damping ratio of the cable
Definition at line 124 of file ForcingMovingBody.h.
Referenced by InitialiseCableModel(), and SetDynEqCoeffMatrix().
|
private |
mass of the cable per unit length
Definition at line 123 of file ForcingMovingBody.h.
Referenced by InitialiseCableModel(), Newmark_betaSolver(), and SetDynEqCoeffMatrix().
|
private |
time step
Definition at line 127 of file ForcingMovingBody.h.
Referenced by InitialiseCableModel(), and SetDynEqCoeffMatrix().
|
private |
vibration dimension
Definition at line 121 of file ForcingMovingBody.h.
Referenced by EvaluateStructDynModel(), InitialiseCableModel(), v_Apply(), and v_InitObject().
Store the derivatives of motion variables in x-direction.
Definition at line 151 of file ForcingMovingBody.h.
Referenced by EvaluateStructDynModel(), v_Apply(), and v_InitObject().