Commit 68226f7a authored by David Moxey's avatar David Moxey

Incorporate fixes for periodic BCs and DG from feature/hdf5-mesh, pass graph...

Incorporate fixes for periodic BCs and DG from feature/hdf5-mesh, pass graph through the Driver object
parent b101ba57
......@@ -1003,9 +1003,19 @@ using namespace std;
// If the edge is reversed with respect to the face, then
// swap the edges so that we have the original ordering of
// the edge in the 3D element. This is necessary to properly
// determine edge orientation.
if ((StdRegions::Orientation)edgeOrt[cnt]
== StdRegions::eBackwards)
// determine edge orientation. Note that the logic relies on
// the fact that all edge forward directions are CCW
// orientated: we use a tensor product ordering for 2D
// elements so need to reverse this for edge IDs 2 and 3.
StdRegions::Orientation edgeOrient =
static_cast<StdRegions::Orientation>(edgeOrt[cnt]);
if (j > 1)
{
edgeOrient = edgeOrient == StdRegions::eForwards ?
StdRegions::eBackwards : StdRegions::eForwards;
}
if (edgeOrient == StdRegions::eBackwards)
{
swap(testIns.first->second.first,
testIns.first->second.second);
......
......@@ -1255,7 +1255,7 @@ namespace Nektar
for (j = 0; j < nquad1; ++j)
{
cnt = (nquad0 - 1) + j*nquad0 - i;
cnt = j*nquad0 + i;
divCFluxE2[cnt] = fluxJumps[i] * m_dGR_xi2[n][j];
}
}
......@@ -1267,7 +1267,7 @@ namespace Nektar
fluxJumps[i] = -(m_Q2D_e3[n][i]) * fluxJumps[i];
for (j = 0; j < nquad0; ++j)
{
cnt = (nquad0*nquad1 - nquad0) + j - i*nquad0;
cnt = j + i*nquad0;
divCFluxE3[cnt] = fluxJumps[i] * m_dGL_xi1[n][j];
}
}
......@@ -1566,7 +1566,7 @@ namespace Nektar
{
for (j = 0; j < nquad1; ++j)
{
cnt = (nquad0 - 1) + j*nquad0 - i;
cnt = j*nquad0 + i;
divCFluxE2[cnt] =
fluxJumps[i] * m_dGR_xi2[n][j];
}
......@@ -1635,8 +1635,7 @@ namespace Nektar
{
for (j = 0; j < nquad0; ++j)
{
cnt = (nquad0*nquad1 - nquad0) + j
- i*nquad0;
cnt = j + i*nquad0;
divCFluxE3[cnt] =
-fluxJumps[i] * m_dGL_xi1[n][j];
}
......
......@@ -42,8 +42,9 @@ namespace SolverUtils {
*
*/
AdvectionSystem::AdvectionSystem(
const LibUtilities::SessionReaderSharedPtr& pSession)
: UnsteadySystem(pSession)
const LibUtilities::SessionReaderSharedPtr& pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph)
: UnsteadySystem(pSession, pGraph)
{
}
......
......@@ -47,7 +47,8 @@ class AdvectionSystem: virtual public UnsteadySystem
{
public:
SOLVER_UTILS_EXPORT AdvectionSystem(
const LibUtilities::SessionReaderSharedPtr &pSession);
const LibUtilities::SessionReaderSharedPtr &pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph);
SOLVER_UTILS_EXPORT virtual ~AdvectionSystem();
......
......@@ -1742,7 +1742,7 @@ namespace Nektar
for (j = 0; j < nquad1; ++j)
{
cnt = (nquad0 - 1) + j*nquad0 - i;
cnt = j*nquad0 + i;
divCFluxE2[cnt] = fluxJumps[i] * m_dGR_xi2[n][j];
}
}
......@@ -1754,7 +1754,7 @@ namespace Nektar
//fluxJumps[i] = -(m_Q2D_e3[n][i]) * fluxJumps[i];
for (j = 0; j < nquad0; ++j)
{
cnt = (nquad0*nquad1 - nquad0) + j - i*nquad0;
cnt = j + i*nquad0;
divCFluxE3[cnt] = fluxJumps[i] * m_dGL_xi1[n][j];
}
}
......@@ -1940,7 +1940,7 @@ namespace Nektar
for (j = 0; j < nquad1; ++j)
{
cnt = (nquad0 - 1) + j*nquad0 - i;
cnt = j*nquad0 + i;
divCFluxE2[cnt] = fluxJumps[i] * m_dGR_xi2[n][j];
}
}
......@@ -1952,7 +1952,7 @@ namespace Nektar
fluxJumps[i] = -(m_Q2D_e3[n][i]) * fluxJumps[i];
for (j = 0; j < nquad0; ++j)
{
cnt = (nquad0*nquad1 - nquad0) + j - i*nquad0;
cnt = j + i*nquad0;
divCFluxE3[cnt] = fluxJumps[i] * m_dGL_xi1[n][j];
}
}
......@@ -2241,7 +2241,7 @@ namespace Nektar
{
for (j = 0; j < nquad1; ++j)
{
cnt = (nquad0 - 1) + j*nquad0 - i;
cnt = j*nquad0 + i;
divCFluxE2[cnt] =
fluxJumps[i] * m_dGR_xi2[n][j];
}
......@@ -2307,8 +2307,7 @@ namespace Nektar
{
for (j = 0; j < nquad0; ++j)
{
cnt = (nquad0*nquad1 - nquad0) + j
- i*nquad0;
cnt = j + i*nquad0;
divCFluxE3[cnt] =
-fluxJumps[i] * m_dGL_xi1[n][j];
}
......
......@@ -72,9 +72,11 @@ DriverFactory& GetDriverFactory()
/**
*
*/
Driver::Driver(const LibUtilities::SessionReaderSharedPtr pSession)
Driver::Driver(const LibUtilities::SessionReaderSharedPtr pSession,
const SpatialDomains::MeshGraphSharedPtr pGraph)
: m_comm(pSession->GetComm()),
m_session(pSession)
m_session(pSession),
m_graph(pGraph)
{
}
......@@ -121,33 +123,33 @@ void Driver::v_InitObject(ostream &out)
case eNonlinear:
m_session->SetTag("AdvectiveType","Convective");
m_equ[0] = GetEquationSystemFactory().CreateInstance(
vEquation, m_session);
vEquation, m_session, m_graph);
break;
case eDirect:
m_session->SetTag("AdvectiveType","Linearised");
m_equ[0] = GetEquationSystemFactory().CreateInstance(
vEquation, m_session);
vEquation, m_session, m_graph);
break;
case eAdjoint:
m_session->SetTag("AdvectiveType","Adjoint");
m_equ[0] = GetEquationSystemFactory().CreateInstance(
vEquation, m_session);
vEquation, m_session, m_graph);
break;
case eTransientGrowth:
//forward timestepping
m_session->SetTag("AdvectiveType","Linearised");
m_equ[0] = GetEquationSystemFactory().CreateInstance(
vEquation, m_session);
vEquation, m_session, m_graph);
//backward timestepping
m_session->SetTag("AdvectiveType","Adjoint");
m_equ[1] = GetEquationSystemFactory().CreateInstance(
vEquation, m_session);
vEquation, m_session, m_graph);
break;
case eSkewSymmetric:
m_session->SetTag("AdvectiveType","SkewSymmetric");
m_equ[0] = GetEquationSystemFactory().CreateInstance(
vEquation, m_session);
vEquation, m_session, m_graph);
break;
case eAdaptiveSFD:
{
......@@ -165,15 +167,18 @@ void Driver::v_InitObject(ostream &out)
session_LinNS = LibUtilities::SessionReader::CreateInstance(
0, NULL, LinNSFilename, m_session->GetComm());
SpatialDomains::MeshGraphSharedPtr graph_linns =
SpatialDomains::MeshGraph::Read(session_LinNS);
//For running stability analysis
session_LinNS->SetTag("AdvectiveType","Linearised");
m_equ[0] = GetEquationSystemFactory().CreateInstance(
vEquation, session_LinNS);
vEquation, session_LinNS, graph_linns);
//For running the SFD method on the nonlinear problem
m_session->SetTag("AdvectiveType","Convective");
m_equ[1] = GetEquationSystemFactory().CreateInstance(
vEquation, m_session);
vEquation, m_session, m_graph);
}
break;
default:
......
......@@ -56,8 +56,10 @@ typedef std::shared_ptr<Driver> DriverSharedPtr;
/// Datatype of the NekFactory used to instantiate classes derived from
/// the Driver class.
typedef LibUtilities::NekFactory<std::string, Driver,
const LibUtilities::SessionReaderSharedPtr&> DriverFactory;
typedef LibUtilities::NekFactory<
std::string, Driver,
const LibUtilities::SessionReaderSharedPtr &,
const SpatialDomains::MeshGraphSharedPtr &> DriverFactory;
SOLVER_UTILS_EXPORT DriverFactory& GetDriverFactory();
......@@ -90,6 +92,9 @@ protected:
/// I the Coupling between SFD and arnoldi
LibUtilities::SessionReaderSharedPtr session_LinNS;
/// MeshGraph object
SpatialDomains::MeshGraphSharedPtr m_graph;
/// Equation system to solve
Array<OneD, EquationSystemSharedPtr> m_equ;
......@@ -100,7 +105,8 @@ protected:
enum EvolutionOperatorType m_EvolutionOperator;
/// Initialises EquationSystem class members.
Driver(const LibUtilities::SessionReaderSharedPtr pSession);
Driver(const LibUtilities::SessionReaderSharedPtr pSession,
const SpatialDomains::MeshGraphSharedPtr pGraph);
SOLVER_UTILS_EXPORT virtual void v_InitObject(std::ostream &out = std::cout);
......
......@@ -61,8 +61,9 @@ string DriverAdaptive::driverLookupId =
*
*/
DriverAdaptive::DriverAdaptive(
const LibUtilities::SessionReaderSharedPtr pSession)
: Driver(pSession)
const LibUtilities::SessionReaderSharedPtr pSession,
const SpatialDomains::MeshGraphSharedPtr pGraph)
: Driver(pSession, pGraph)
{
}
......
......@@ -52,10 +52,11 @@ public:
/// Creates an instance of this class
static DriverSharedPtr create(
const LibUtilities::SessionReaderSharedPtr &pSession)
const LibUtilities::SessionReaderSharedPtr &pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph)
{
DriverSharedPtr p =
MemoryManager<DriverAdaptive>::AllocateSharedPtr(pSession);
MemoryManager<DriverAdaptive>::AllocateSharedPtr(pSession, pGraph);
p->InitObject();
return p;
}
......@@ -66,7 +67,8 @@ public:
protected:
/// Constructor
SOLVER_UTILS_EXPORT DriverAdaptive(
const LibUtilities::SessionReaderSharedPtr pSession);
const LibUtilities::SessionReaderSharedPtr pSession,
const SpatialDomains::MeshGraphSharedPtr pGraph);
/// Destructor
SOLVER_UTILS_EXPORT virtual ~DriverAdaptive();
......
......@@ -46,8 +46,10 @@ namespace SolverUtils
/**
* Constructor
*/
DriverArnoldi::DriverArnoldi(const LibUtilities::SessionReaderSharedPtr pSession)
: Driver(pSession)
DriverArnoldi::DriverArnoldi(
const LibUtilities::SessionReaderSharedPtr pSession,
const SpatialDomains::MeshGraphSharedPtr pGraph)
: Driver(pSession, pGraph)
{
m_session->LoadParameter("IO_InfoSteps", m_infosteps, 1);
};
......
......@@ -71,7 +71,8 @@ protected:
/// Constructor
DriverArnoldi(const LibUtilities::SessionReaderSharedPtr pSession);
DriverArnoldi(const LibUtilities::SessionReaderSharedPtr pSession,
const SpatialDomains::MeshGraphSharedPtr pGraph);
/// Destructor
virtual ~DriverArnoldi();
......
......@@ -62,8 +62,9 @@ std::string DriverArpack::ArpackProblemTypeTrans[6] =
/**
*
*/
DriverArpack::DriverArpack(const LibUtilities::SessionReaderSharedPtr pSession)
: DriverArnoldi(pSession)
DriverArpack::DriverArpack(const LibUtilities::SessionReaderSharedPtr pSession,
const SpatialDomains::MeshGraphSharedPtr pGraph)
: DriverArnoldi(pSession, pGraph)
{
}
......
......@@ -52,8 +52,12 @@ public:
friend class MemoryManager<DriverArpack>;
/// Creates an instance of this class
static DriverSharedPtr create(const LibUtilities::SessionReaderSharedPtr& pSession) {
DriverSharedPtr p = MemoryManager<DriverArpack>::AllocateSharedPtr(pSession);
static DriverSharedPtr create(
const LibUtilities::SessionReaderSharedPtr& pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph)
{
DriverSharedPtr p = MemoryManager<DriverArpack>::AllocateSharedPtr(
pSession, pGraph);
p->InitObject();
return p;
}
......@@ -69,7 +73,8 @@ protected:
int m_maxncv;//Largest number of basis vector used in Implicitly Restarted Arnoldi
/// Constructor
DriverArpack( const LibUtilities::SessionReaderSharedPtr pSession);
DriverArpack(const LibUtilities::SessionReaderSharedPtr pSession,
const SpatialDomains::MeshGraphSharedPtr pGraph);
/// Destructor
virtual ~DriverArpack();
......
......@@ -56,8 +56,9 @@ string DriverModifiedArnoldi::driverLookupId =
*
*/
DriverModifiedArnoldi::DriverModifiedArnoldi(
const LibUtilities::SessionReaderSharedPtr pSession)
: DriverArnoldi(pSession)
const LibUtilities::SessionReaderSharedPtr pSession,
const SpatialDomains::MeshGraphSharedPtr pGraph)
: DriverArnoldi(pSession, pGraph)
{
}
......
......@@ -51,10 +51,11 @@ class DriverModifiedArnoldi: public DriverArnoldi
/// Creates an instance of this class
static DriverSharedPtr create(
const LibUtilities::SessionReaderSharedPtr& pSession)
const LibUtilities::SessionReaderSharedPtr& pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph)
{
DriverSharedPtr p = MemoryManager<DriverModifiedArnoldi>
::AllocateSharedPtr(pSession);
::AllocateSharedPtr(pSession, pGraph);
p->InitObject();
return p;
}
......@@ -65,7 +66,9 @@ class DriverModifiedArnoldi: public DriverArnoldi
protected:
/// Constructor
DriverModifiedArnoldi(const LibUtilities::SessionReaderSharedPtr pSession);
DriverModifiedArnoldi(
const LibUtilities::SessionReaderSharedPtr pSession,
const SpatialDomains::MeshGraphSharedPtr pGraph);
/// Destructor
virtual ~DriverModifiedArnoldi();
......
......@@ -49,8 +49,10 @@ namespace Nektar
/**
*
*/
DriverStandard::DriverStandard(const LibUtilities::SessionReaderSharedPtr pSession)
: Driver(pSession)
DriverStandard::DriverStandard(
const LibUtilities::SessionReaderSharedPtr pSession,
const SpatialDomains::MeshGraphSharedPtr pGraph)
: Driver(pSession, pGraph)
{
}
......
......@@ -49,8 +49,12 @@ namespace Nektar
friend class MemoryManager<DriverStandard>;
/// Creates an instance of this class
static DriverSharedPtr create(const LibUtilities::SessionReaderSharedPtr& pSession) {
DriverSharedPtr p = MemoryManager<DriverStandard>::AllocateSharedPtr(pSession);
static DriverSharedPtr create(
const LibUtilities::SessionReaderSharedPtr& pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph)
{
DriverSharedPtr p = MemoryManager<DriverStandard>
::AllocateSharedPtr(pSession, pGraph);
p->InitObject();
return p;
}
......@@ -60,7 +64,9 @@ namespace Nektar
protected:
/// Constructor
SOLVER_UTILS_EXPORT DriverStandard(const LibUtilities::SessionReaderSharedPtr pSession);
SOLVER_UTILS_EXPORT DriverStandard(
const LibUtilities::SessionReaderSharedPtr pSession,
const SpatialDomains::MeshGraphSharedPtr pGraph);
/// Destructor
SOLVER_UTILS_EXPORT virtual ~DriverStandard();
......
......@@ -54,8 +54,9 @@ string DriverSteadyState::driverLookupId
*
*/
DriverSteadyState::DriverSteadyState(
const LibUtilities::SessionReaderSharedPtr pSession)
: DriverModifiedArnoldi(pSession)
const LibUtilities::SessionReaderSharedPtr pSession,
const SpatialDomains::MeshGraphSharedPtr pGraph)
: DriverModifiedArnoldi(pSession, pGraph)
{
}
......
......@@ -53,9 +53,11 @@ public:
/// Creates an instance of this class
static DriverSharedPtr create(
const LibUtilities::SessionReaderSharedPtr& pSession) {
const LibUtilities::SessionReaderSharedPtr& pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph)
{
DriverSharedPtr p = MemoryManager<DriverSteadyState>
::AllocateSharedPtr(pSession);
::AllocateSharedPtr(pSession, pGraph);
p->InitObject();
return p;
}
......@@ -104,7 +106,8 @@ public:
protected:
/// Constructor
SOLVER_UTILS_EXPORT DriverSteadyState(
const LibUtilities::SessionReaderSharedPtr pSession);
const LibUtilities::SessionReaderSharedPtr pSession,
const SpatialDomains::MeshGraphSharedPtr pGraph);
/// Destructor
SOLVER_UTILS_EXPORT virtual ~DriverSteadyState();
......
......@@ -91,9 +91,11 @@ namespace Nektar
* @param pSession The session reader holding problem parameters.
*/
EquationSystem::EquationSystem(
const LibUtilities::SessionReaderSharedPtr& pSession)
const LibUtilities::SessionReaderSharedPtr& pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph)
: m_comm (pSession->GetComm()),
m_session (pSession),
m_graph (pGraph),
m_lambda (0),
m_fieldMetaDataMap(LibUtilities::NullFieldMetaDataMap)
{
......@@ -122,9 +124,6 @@ namespace Nektar
// Instantiate a field reader/writer
m_fld = LibUtilities::FieldIO::CreateDefault(m_session);
// Read the geometry and the expansion information
m_graph = SpatialDomains::MeshGraph::Read(m_session);
// Also read and store the boundary conditions
m_boundaryConditions =
MemoryManager<SpatialDomains::BoundaryConditions>::
......
......@@ -64,8 +64,10 @@ class Interpolator;
/// Datatype of the NekFactory used to instantiate classes derived from
/// the EquationSystem class.
typedef LibUtilities::NekFactory<
std::string, EquationSystem,
const LibUtilities::SessionReaderSharedPtr&
std::string,
EquationSystem,
const LibUtilities::SessionReaderSharedPtr&,
const SpatialDomains::MeshGraphSharedPtr&
> EquationSystemFactory;
SOLVER_UTILS_EXPORT EquationSystemFactory& GetEquationSystemFactory();
......@@ -412,7 +414,9 @@ class Interpolator;
int m_HomoDirec; ///< number of homogenous directions
/// Initialises EquationSystem class members.
SOLVER_UTILS_EXPORT EquationSystem( const LibUtilities::SessionReaderSharedPtr& pSession);
SOLVER_UTILS_EXPORT EquationSystem(
const LibUtilities::SessionReaderSharedPtr& pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph);
SOLVER_UTILS_EXPORT virtual void v_InitObject();
......
......@@ -67,8 +67,9 @@ namespace Nektar
* @param pSession Session object to read parameters from.
*/
UnsteadySystem::UnsteadySystem(
const LibUtilities::SessionReaderSharedPtr& pSession)
: EquationSystem(pSession),
const LibUtilities::SessionReaderSharedPtr& pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph)
: EquationSystem(pSession, pGraph),
m_infosteps(10)
{
......
......@@ -96,7 +96,8 @@ namespace Nektar
/// Initialises UnsteadySystem class members.
SOLVER_UTILS_EXPORT UnsteadySystem(
const LibUtilities::SessionReaderSharedPtr& pSession);
const LibUtilities::SessionReaderSharedPtr& pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph);
/// Init object for UnsteadySystem class.
SOLVER_UTILS_EXPORT virtual void v_InitObject();
......
......@@ -43,6 +43,7 @@ using namespace Nektar::SolverUtils;
int main(int argc, char *argv[])
{
LibUtilities::SessionReaderSharedPtr session;
SpatialDomains::MeshGraphSharedPtr graph;
string vDriverModule;
DriverSharedPtr drv;
......@@ -51,9 +52,12 @@ int main(int argc, char *argv[])
// Create session reader.
session = LibUtilities::SessionReader::CreateInstance(argc, argv);
// Create MeshGraph
graph = SpatialDomains::MeshGraph::Read(session);
// Create driver
session->LoadSolverInfo("Driver", vDriverModule, "Standard");
drv = GetDriverFactory().CreateInstance(vDriverModule, session);
drv = GetDriverFactory().CreateInstance(vDriverModule, session, graph);
// Execute driver
drv->Execute();
......
......@@ -46,9 +46,10 @@ namespace Nektar
string CFLtester::className = GetEquationSystemFactory().RegisterCreatorFunction("CFLtester", CFLtester::create, "Testing CFL restriction");
CFLtester::CFLtester(
const LibUtilities::SessionReaderSharedPtr& pSession)
: UnsteadySystem(pSession),
AdvectionSystem(pSession)
const LibUtilities::SessionReaderSharedPtr& pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph)
: UnsteadySystem(pSession, pGraph),
AdvectionSystem(pSession, pGraph)
{
}
......
......@@ -84,10 +84,15 @@ namespace Nektar
public:
friend class MemoryManager<CFLtester>;
static EquationSystemSharedPtr create(const LibUtilities::SessionReaderSharedPtr& pSession) {
EquationSystemSharedPtr p = MemoryManager<CFLtester>::AllocateSharedPtr(pSession);
p->InitObject();
return p;}
static EquationSystemSharedPtr create(
const LibUtilities::SessionReaderSharedPtr& pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph)
{
EquationSystemSharedPtr p = MemoryManager<CFLtester>
::AllocateSharedPtr(pSession, pGraph);
p->InitObject();
return p;
}
static std::string className;
......@@ -98,7 +103,8 @@ namespace Nektar
Array<OneD, Array<OneD, NekDouble> > m_velocity;
Array<OneD, NekDouble> m_traceVn;
CFLtester(const LibUtilities::SessionReaderSharedPtr& pSession);
CFLtester(const LibUtilities::SessionReaderSharedPtr& pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph);
void DoOdeRhs(const Array<OneD, const Array<OneD, NekDouble> > &inarray,
Array<OneD, Array<OneD, NekDouble> > &outarray,
......
......@@ -44,8 +44,9 @@ namespace Nektar
string EigenValuesAdvection::className = GetEquationSystemFactory().RegisterCreatorFunction("EigenValuesAdvection", EigenValuesAdvection::create, "Eigenvalues of the weak advection operator.");
EigenValuesAdvection::EigenValuesAdvection(
const LibUtilities::SessionReaderSharedPtr& pSession)
: EquationSystem(pSession)
const LibUtilities::SessionReaderSharedPtr& pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph)
: EquationSystem(pSession, pGraph)
{
}
......
......@@ -51,8 +51,11 @@ namespace Nektar
/// Creates an instance of this class
static EquationSystemSharedPtr create(
const LibUtilities::SessionReaderSharedPtr& pSession) {
EquationSystemSharedPtr p = MemoryManager<EigenValuesAdvection>::AllocateSharedPtr(pSession);
const LibUtilities::SessionReaderSharedPtr& pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph)
{
EquationSystemSharedPtr p = MemoryManager<EigenValuesAdvection>
::AllocateSharedPtr(pSession, pGraph);
p->InitObject();
return p;
}
......@@ -67,12 +70,14 @@ namespace Nektar
SolverUtils::AdvectionSharedPtr m_advObject;
Array<OneD, NekDouble> m_traceVn;
EigenValuesAdvection(const LibUtilities::SessionReaderSharedPtr& pSession);
EigenValuesAdvection(
const LibUtilities::SessionReaderSharedPtr& pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph);
/// Get the normal velocity
Array<OneD, NekDouble> &GetNormalVelocity();
virtual void v_InitObject();
virtual void v_InitObject();
virtual void v_DoInitialise();
virtual void v_DoSolve();
......
......@@ -43,8 +43,9 @@ namespace Nektar
string Helmholtz::className2 = GetEquationSystemFactory().RegisterCreatorFunction("SteadyDiffusionReaction", Helmholtz::create);
Helmholtz::Helmholtz(
const LibUtilities::SessionReaderSharedPtr& pSession)
: Poisson(pSession)
const LibUtilities::SessionReaderSharedPtr& pSession,
const SpatialDomains::MeshGraphSharedPtr& pGraph)