36 #ifndef NEKTAR_SOLVERS_PULSEWAVESOLVER_EQUATIONSYSTEMS_PULSEWAVESYSTEM_H
37 #define NEKTAR_SOLVERS_PULSEWAVESOLVER_EQUATIONSYSTEMS_PULSEWAVESYSTEM_H
62 const int elmtVert,
const int traceId,
const int bcpos)
63 : m_vid(vid), m_domain(domain), m_elmt(elmt), m_elmtVert(elmtVert),
64 m_traceId(traceId), m_bcPosition(bcpos){};
118 std::map<int, SpatialDomains::CompositeMap>
m_domain;
125 bool extraFields =
false;
138 virtual void v_InitObject(
bool DeclareField =
false)
override;
141 virtual void v_DoInitialise()
override;
144 virtual void v_DoSolve()
override;
171 virtual void v_Output(
void)
override;
174 void CheckPoint_Output(
const int n);
180 bool Normalised =
false)
override;
183 virtual NekDouble v_LinfError(
unsigned int field,
188 void WriteVessels(
const std::string &outname);
190 void EnforceInterfaceConditions(
197 void SetUpDomainInterfaces(
void);
198 void FillDataFromInterfacePoint(
204 void GetCommArray(std::map<int, LibUtilities::CommSharedPtr> &retval);
206 void SetUpDomainInterfaceBCs(
208 std::map<int, LibUtilities::CommSharedPtr> &domComm);
Base class for unsteady solvers.
Array< OneD, Array< OneD, NekDouble > > m_A_0
Array< OneD, int > m_fieldPhysOffset
Array< OneD, Array< OneD, NekDouble > > m_beta_trace
void LinkSubdomains(Array< OneD, Array< OneD, Array< OneD, NekDouble >>> &fields)
Links the subdomains.
Array< OneD, Array< OneD, NekDouble > > m_W2
Array< OneD, Array< OneD, NekDouble > > m_trace_fwd_normal
PulseWavePressureAreaSharedPtr m_pressureArea
Array< OneD, MultiRegions::ExpListSharedPtr > UpdateVessels(void)
Array< OneD, Array< OneD, NekDouble > > m_W1
std::vector< int > m_domOrder
Array< OneD, Array< OneD, NekDouble > > m_alpha_trace
std::map< int, SpatialDomains::CompositeMap > m_domain
UpwindTypePulse m_upwindTypePulse
Array< OneD, Array< OneD, NekDouble > > m_A_0_trace
Array< OneD, Array< OneD, NekDouble > > m_pressure
Array< OneD, Array< OneD, NekDouble > > m_gamma
Array< OneD, Array< OneD, NekDouble > > m_alpha
Gs::gs_data * m_intComm
Communicator for interfaces.
std::vector< std::vector< InterfacePointShPtr > > m_vesselIntfcs
Array< OneD, Array< OneD, NekDouble > > m_PWV
Array< OneD, MultiRegions::ExpListSharedPtr > m_vessels
std::vector< std::vector< InterfacePointShPtr > > m_bifurcations
std::vector< std::vector< InterfacePointShPtr > > m_mergingJcts
Array< OneD, Array< OneD, NekDouble > > m_beta
Base class for unsteady solvers.
std::shared_ptr< SessionReader > SessionReaderSharedPtr
@ beta
Gauss Radau pinned at x=-1,.
std::shared_ptr< MeshGraph > MeshGraphSharedPtr
The above copyright notice and this permission notice shall be included.
std::shared_ptr< PulseWavePressureArea > PulseWavePressureAreaSharedPtr
std::shared_ptr< InterfacePoint > InterfacePointShPtr
std::shared_ptr< PulseWaveSystem > PulseWaveSystemSharedPtr
@ eUpwindPulse
simple upwinding scheme
@ eNotSetPulse
flux not defined
@ SIZE_UpwindTypePulse
Length of enum list.
const char *const UpwindTypeMapPulse[]
static Array< OneD, NekDouble > NullNekDouble1DArray
InterfacePoint(const int vid, const int domain, const int elmt, const int elmtVert, const int traceId, const int bcpos)