44 "Wall boundary condition of moving reference frame with pressure "
52 [[maybe_unused]]
int nbnd, [[maybe_unused]]
int spacedim,
53 [[maybe_unused]]
int bnddim)
54 :
StaticWall(pSession, pFields, cond, exp, nbnd, spacedim, bnddim)
58 for (
size_t i = 0; i <
m_bnddim; ++i)
60 if (cond[i]->GetUserDefined() ==
classname)
82 if (!(pSession->GetSolverInfo(
"SolverType") ==
"PressDecompVCSFSI"))
85 "The boundary condition MRFWallPressDecomp is only "
86 "supported for use in the SolverType 'PressDecompVCSFSI'");
111 std::map<std::string, NekDouble> ¶ms)
115 if (params.find(
"Omega_x") != params.end() ||
116 params.find(
"Omega_y") != params.end() ||
117 params.find(
"Omega_z") != params.end())
122 if (params.find(
"pressure") != params.end() &&
m_hasPressure &&
138 if (params.find(
"velocity") != params.end() &&
m_hasVels && nptsPlane0)
141 for (
size_t k = 0; k <
m_bnddim; ++k)
155 m_BndExp[k]->GetPlane(0)->FwdTransBndConstrained(
157 m_BndExp[k]->GetPlane(0)->UpdateCoeffs());
161 m_BndExp[k]->FwdTransBndConstrained(
162 velocities[k],
m_BndExp[k]->UpdateCoeffs());
171 std::map<std::string, NekDouble> ¶ms,
int npts0)
173 if (npts0 == 0 || params.find(
"Omega_z") == params.end())
182 if (params.find(
"U") != params.end())
187 if (params.find(
"V") != params.end())
197 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
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)
Array< OneD, Array< OneD, NekDouble > > m_coords
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
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)
static std::string className
void AddExtrapCentVisPressureBCs(const Array< OneD, const Array< OneD, NekDouble > > &fields, Array< OneD, Array< OneD, NekDouble > > &N, std::map< std::string, NekDouble > ¶ms, int npts0)
~MRFWallPressDecomp() override
MRFWallPressDecomp(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_Initialise(const LibUtilities::SessionReaderSharedPtr &pSession) override
void AddCentripetalAcc(Array< OneD, Array< OneD, NekDouble > > &N, std::map< std::string, NekDouble > ¶ms, int npts0)
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)
std::shared_ptr< SessionReader > SessionReaderSharedPtr
IncBCFactory & GetIncBCFactory()
void Svtvp(int n, const T alpha, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Svtvp (scalar times vector plus vector): z = alpha*x + y.
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.
void Sadd(int n, const T alpha, const T *x, const int incx, T *y, const int incy)
Add vector y = alpha + x.