Nektar++
|
#include <QInflow.h>
Public Member Functions | |
QInflow (Array< OneD, MultiRegions::ExpListSharedPtr > pVessel, const LibUtilities::SessionReaderSharedPtr pSession, PulseWavePressureAreaSharedPtr pressureArea) | |
~QInflow () override | |
Public Member Functions inherited from Nektar::PulseWaveBoundary | |
PulseWaveBoundary (Array< OneD, MultiRegions::ExpListSharedPtr > &pVessel, const LibUtilities::SessionReaderSharedPtr &pSession, PulseWavePressureAreaSharedPtr &pressureArea) | |
virtual | ~PulseWaveBoundary () |
void | 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) |
Static Public Member Functions | |
static PulseWaveBoundarySharedPtr | create (Array< OneD, MultiRegions::ExpListSharedPtr > &pVessel, const LibUtilities::SessionReaderSharedPtr &pSession, PulseWavePressureAreaSharedPtr &pressureArea) |
Static Public Attributes | |
static std::string | className |
Name of class. More... | |
Protected Member Functions | |
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 |
virtual 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)=0 |
Private Member Functions | |
void | Q_RiemannSolver (NekDouble Q, NekDouble A_r, NekDouble u_r, NekDouble A_0, NekDouble beta, NekDouble alpha, NekDouble &Au, NekDouble &uu) |
Additional Inherited Members | |
Protected Attributes inherited from Nektar::PulseWaveBoundary | |
Array< OneD, MultiRegions::ExpListSharedPtr > | m_vessels |
LibUtilities::SessionReaderSharedPtr | m_session |
PulseWavePressureAreaSharedPtr | m_pressureArea |
NekDouble | m_pext |
NekDouble | m_pout |
NekDouble | m_rho |
Nektar::QInflow::QInflow | ( | Array< OneD, MultiRegions::ExpListSharedPtr > | pVessel, |
const LibUtilities::SessionReaderSharedPtr | pSession, | ||
PulseWavePressureAreaSharedPtr | pressureArea | ||
) |
Definition at line 47 of file QInflow.cpp.
|
override |
Definition at line 54 of file QInflow.cpp.
|
inlinestatic |
Definition at line 56 of file QInflow.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr().
|
private |
Q-inflow Riemann solver for pulse wave propagation. This Riemann solver is called by DoOdeProjection in case of a Q-inflow boundary condition. It is based on the conservation of mass and total pressure and on the characteristic information. For further details see "Pulse wave propagation in the human vascular system", section 3.4.1 Returns the upwinded quantities \((A_u,u_u)\) and stores them into the boundary values
Definition at line 111 of file QInflow.cpp.
References Nektar::LibUtilities::beta, Nektar::PulseWaveBoundary::m_pressureArea, and tinysimd::sqrt().
Referenced by v_DoBoundary().
|
overrideprotectedvirtual |
Implements Nektar::PulseWaveBoundary.
Definition at line 58 of file QInflow.cpp.
References Nektar::LibUtilities::beta, Nektar::PulseWaveBoundary::m_vessels, and Q_RiemannSolver().
|
static |
Name of class.