36 #ifndef NEKTAR_SOLVERS_PULSEWAVESOLVER_EQUATIONSYSTEMS_PULSEWAVESYSTEM_H
37 #define NEKTAR_SOLVERS_PULSEWAVESOLVER_EQUATIONSYSTEMS_PULSEWAVESYSTEM_H
41 using namespace Nektar::SolverUtils;
97 Array<OneD, MultiRegions::ExpListSharedPtr> UpdateVessels(
void)
102 void CalcCharacteristicVariables(
int omega);
119 Array<OneD, Array<OneD, NekDouble> >
m_A_0;
121 Array<OneD, Array<OneD, NekDouble> >
m_beta;
133 virtual void v_InitObject();
136 virtual void v_DoInitialise();
139 virtual void v_DoSolve();
142 void LinkSubdomains(Array<
OneD, Array<
OneD, Array<OneD, NekDouble> > > &fields);
145 void BifurcationRiemann(Array<OneD, NekDouble> &Au, Array<OneD, NekDouble> &uu,
146 Array<OneD, NekDouble> &beta, Array<OneD, NekDouble> &A_0);
149 void MergingRiemann(Array<OneD, NekDouble> &Au, Array<OneD, NekDouble> &uu,
150 Array<OneD, NekDouble> &beta, Array<OneD, NekDouble> &A_0);
153 void JunctionRiemann(Array<OneD, NekDouble> &Au, Array<OneD, NekDouble> &uu,
154 Array<OneD, NekDouble> &beta, Array<OneD, NekDouble> &A_0);
157 virtual void v_Output(
void);
160 void CheckPoint_Output(
const int n);
165 bool Normalised =
false);
168 NekDouble v_LinfError(
unsigned int field,
172 void WriteVessels(
const std::string &outname);
174 void EnforceInterfaceConditions(
const Array<
OneD,
const Array<OneD, NekDouble> > &fields);
177 void SetUpDomainInterfaces(
void);
179 const Array<
OneD,
const Array<OneD, NekDouble> >&field,