43 "Wall boundary condition of moving reference frame");
50 [[maybe_unused]]
int nbnd, [[maybe_unused]]
int spacedim,
51 [[maybe_unused]]
int bnddim)
52 :
StaticWall(pSession, pFields, cond, exp, nbnd, spacedim, bnddim)
56 for (
size_t i = 0; i <
m_bnddim; ++i)
58 if (cond[i]->GetUserDefined() ==
classname)
75 if (!(pSession->GetSolverInfo(
"SolverType") ==
"VCSFSI"))
77 ASSERTL0(
false,
"The boundary condition MRFWall is only "
78 "supported for use in the SolverType 'VCSFSI'");
103 std::map<std::string, NekDouble> ¶ms)
107 if (params.find(
"Omega_x") != params.end() ||
108 params.find(
"Omega_y") != params.end() ||
109 params.find(
"Omega_z") != params.end())
114 if (params.find(
"pressure") != params.end() &&
m_hasPressure &&
129 if (params.find(
"velocity") != params.end() &&
m_hasVels && nptsPlane0)
132 for (
size_t k = 0; k <
m_bnddim; ++k)
146 m_BndExp[k]->GetPlane(0)->FwdTransBndConstrained(
148 m_BndExp[k]->GetPlane(0)->UpdateCoeffs());
152 m_BndExp[k]->FwdTransBndConstrained(
153 velocities[k],
m_BndExp[k]->UpdateCoeffs());
163 std::map<std::string, NekDouble> ¶ms,
int npts0)
#define ASSERTL0(condition, msg)
std::map< int, MultiRegions::ExpListSharedPtr > m_BndExp
MultiRegions::ExpListSharedPtr m_field
int m_bnddim
bounday dimensionality
void InitialiseCoords(std::map< std::string, NekDouble > ¶ms)
void ExtrapolateArray(const int numCalls, Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &array)
void RigidBodyVelocity(Array< OneD, Array< OneD, NekDouble > > &velocities, std::map< std::string, NekDouble > ¶ms, int npts0)
MultiRegions::ExpListSharedPtr m_bndElmtExps
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > m_extrapArray
void AddRigidBodyAcc(Array< OneD, Array< OneD, NekDouble > > &N, std::map< std::string, NekDouble > ¶ms, int npts0)
virtual void v_Initialise(const LibUtilities::SessionReaderSharedPtr &pSession)
void SetNumPointsOnPlane0(int &npointsPlane0)
void AddVisPressureBCs(const Array< OneD, const Array< OneD, NekDouble > > &fields, Array< OneD, Array< OneD, NekDouble > > &N, std::map< std::string, NekDouble > ¶ms)
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
MRFWall(const LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields, Array< OneD, SpatialDomains::BoundaryConditionShPtr > cond, Array< OneD, MultiRegions::ExpListSharedPtr > exp, int nbnd, int spacedim, int bnddim)
void v_Update(const Array< OneD, const Array< OneD, NekDouble > > &fields, const Array< OneD, const Array< OneD, NekDouble > > &Adv, std::map< std::string, NekDouble > ¶ms) override
v_Update set correct BCs (in wavespace)
void v_Initialise(const LibUtilities::SessionReaderSharedPtr &pSession) override
static IncBaseConditionSharedPtr create(const LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields, Array< OneD, SpatialDomains::BoundaryConditionShPtr > cond, Array< OneD, MultiRegions::ExpListSharedPtr > exp, int nbnd, int spacedim, int bnddim)
void AddExtrapAcceVisPressureBCs(const Array< OneD, const Array< OneD, NekDouble > > &fields, Array< OneD, Array< OneD, NekDouble > > &N, std::map< std::string, NekDouble > ¶ms, int npts0)
static std::string className
std::shared_ptr< SessionReader > SessionReaderSharedPtr
IncBCFactory & GetIncBCFactory()
void Vadd(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Add vector z = x+y.
void Zero(int n, T *x, const int incx)
Zero vector.