46 "Terminal outflow boundary condition");
65 [[maybe_unused]]
const NekDouble time,
int omega,
int offset,
int n)
87 RT = (vessel[0]->UpdateBndCondExpansion(n))->GetCoeffs()[0];
89 ASSERTL0((-1 <= RT && RT <= 1),
"RT must be between -1 and 1");
90 int nq = vessel[0]->GetTotPoints();
93 A_l = inarray[0][offset + nq - 1];
94 u_l = inarray[1][offset + nq - 1];
97 alpha[omega][nq - 1]);
101 u_r = (1 - RT) * W1 - u_l;
104 (vessel[0]->UpdateBndCondExpansion(n))->UpdatePhys()[0] = A_r;
105 (vessel[1]->UpdateBndCondExpansion(n))->UpdatePhys()[0] = u_r;
#define ASSERTL0(condition, msg)
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
Array< OneD, MultiRegions::ExpListSharedPtr > m_vessels
PulseWavePressureAreaSharedPtr m_pressureArea
~TerminalOutflow() override
static std::string className
TerminalOutflow(Array< OneD, MultiRegions::ExpListSharedPtr > pVessel, const LibUtilities::SessionReaderSharedPtr pSession, PulseWavePressureAreaSharedPtr pressureArea)
void v_DoBoundary(const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &A_0, Array< OneD, Array< OneD, NekDouble > > &beta, Array< OneD, Array< OneD, NekDouble > > &alpha, const NekDouble time, int omega, int offset, int n) override
static PulseWaveBoundarySharedPtr create(Array< OneD, MultiRegions::ExpListSharedPtr > &pVessel, const LibUtilities::SessionReaderSharedPtr &pSession, PulseWavePressureAreaSharedPtr &pressureArea)
std::shared_ptr< SessionReader > SessionReaderSharedPtr
@ beta
Gauss Radau pinned at x=-1,.
std::shared_ptr< PulseWavePressureArea > PulseWavePressureAreaSharedPtr
BoundaryFactory & GetBoundaryFactory()