74 vessel[0]->EvaluateBoundaryConditions(time);
77 Q = (vessel[0]->UpdateBndCondExpansion(n))->GetCoeffs()[0];
80 A_r = inarray[0][offset];
81 u_r = inarray[1][offset];
93 (vessel[0]->UpdateBndCondExpansion(n))->UpdatePhys()[0] = A_l;
94 (vessel[1]->UpdateBndCondExpansion(n))->UpdatePhys()[0] = u_l;
129 while ((proceed) && (iter < MAX_ITER))
136 FA = Q - A_calc * (W2 + I);
138 delta_A_calc = FA / dFdA;
139 A_calc -= delta_A_calc;
141 if (
sqrt(delta_A_calc * delta_A_calc) < Tol)
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
Array< OneD, MultiRegions::ExpListSharedPtr > m_vessels
PulseWavePressureAreaSharedPtr m_pressureArea
static std::string className
Name of class.
static PulseWaveBoundarySharedPtr create(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
QInflow(Array< OneD, MultiRegions::ExpListSharedPtr > pVessel, const LibUtilities::SessionReaderSharedPtr pSession, PulseWavePressureAreaSharedPtr pressureArea)
void Q_RiemannSolver(NekDouble Q, NekDouble A_r, NekDouble u_r, NekDouble A_0, NekDouble beta, NekDouble alpha, NekDouble &Au, NekDouble &uu)
std::shared_ptr< SessionReader > SessionReaderSharedPtr
@ beta
Gauss Radau pinned at x=-1,.
std::shared_ptr< PulseWavePressureArea > PulseWavePressureAreaSharedPtr
BoundaryFactory & GetBoundaryFactory()
scalarT< T > sqrt(scalarT< T > in)