76 : m_comm(pSession->GetComm()), m_session(pSession), m_graph(pGraph)
89 "EqType SolverInfo tag must be defined.");
90 std::string vEquation =
m_session->GetSolverInfo(
"EqType");
91 if (
m_session->DefinesSolverInfo(
"SolverType"))
93 vEquation =
m_session->GetSolverInfo(
"SolverType");
99 "EquationSystem '" + vEquation +
100 "' is not defined.\n"
101 "Ensure equation name is correct and module is compiled.\n");
107 "EvolutionOperator");
120 m_session->SetTag(
"AdvectiveType",
"Convective");
125 m_session->SetTag(
"AdvectiveType",
"Linearised");
130 m_session->SetTag(
"AdvectiveType",
"Adjoint");
136 m_session->SetTag(
"AdvectiveType",
"Linearised");
141 m_session->SetTag(
"AdvectiveType",
"Adjoint");
146 m_session->SetTag(
"AdvectiveType",
"SkewSymmetric");
155 string LinNSCondFile;
156 vector<string> LinNSFilename;
162 for (
int i = 0; i <
m_session->GetFilenames().size() - 1; ++i)
164 LinNSFilename.push_back(
m_session->GetFilenames()[i]);
167 LinNSCondFile =
m_session->GetSessionName();
168 LinNSCondFile +=
"_LinNS.xml";
169 LinNSFilename.push_back(LinNSCondFile);
171 char *argv[] = {
const_cast<char *
>(
"IncNavierStokesSolver"),
174 1, argv, LinNSFilename,
m_comm);
185 m_session->SetTag(
"AdvectiveType",
"Convective");
191 ASSERTL0(
false,
"Unrecognised evolution operator.");
196 ASSERTL0(e == -1,
"No such class class defined.");
197 out <<
"An error occurred during driver initialisation." << endl;
#define ASSERTL0(condition, msg)
Provides a generic Factory class.
tBaseSharedPtr CreateInstance(tKey idKey, tParam... args)
Create an instance of the class referred to by idKey.
static std::string RegisterEnumValue(std::string pEnum, std::string pString, int pEnumValue)
Registers an enumeration value.
static SessionReaderSharedPtr CreateInstance(int argc, char *argv[])
Creates an instance of the SessionReader class.
static std::string RegisterDefaultSolverInfo(const std::string &pName, const std::string &pValue)
Registers the default string value of a solver info property.
LibUtilities::SessionReaderSharedPtr session_LinNS
Coupling between SFD and arnoldi.
LibUtilities::SessionReaderSharedPtr m_session
Session reader object.
virtual SOLVER_UTILS_EXPORT void v_InitObject(std::ostream &out=std::cout)
Virtual function for initialisation implementation.
static std::string evolutionOperatorLookupIds[]
Driver(const LibUtilities::SessionReaderSharedPtr pSession, const SpatialDomains::MeshGraphSharedPtr pGraph)
Initialises EquationSystem class members.
LibUtilities::CommSharedPtr m_comm
Communication object.
SpatialDomains::MeshGraphSharedPtr m_graph
MeshGraph object.
enum EvolutionOperatorType m_EvolutionOperator
Evolution Operator.
Array< OneD, EquationSystemSharedPtr > m_equ
Equation system to solve.
static std::string driverDefault
int m_nequ
number of equations
static std::string evolutionOperatorDef
static MeshGraphSharedPtr Read(const LibUtilities::SessionReaderSharedPtr pSession, LibUtilities::DomainRangeShPtr rng=LibUtilities::NullDomainRangeShPtr, bool fillGraph=true, SpatialDomains::MeshGraphSharedPtr partitionedGraph=nullptr)
std::shared_ptr< SessionReader > SessionReaderSharedPtr
DriverFactory & GetDriverFactory()
EquationSystemFactory & GetEquationSystemFactory()
std::shared_ptr< MeshGraph > MeshGraphSharedPtr