47 "EvolutionOperator",
"Direct" ,
eDirect),
49 "EvolutionOperator",
"Adjoint" ,
eAdjoint),
59 "EvolutionOperator",
"Nonlinear");
62 "Driver",
"Standard");
69 Loki::SingleThreaded> Type;
70 return Type::Instance();
77 : m_comm(pSession->GetComm()),
96 "EqType SolverInfo tag must be defined.");
97 std::string vEquation =
m_session->GetSolverInfo(
"EqType");
98 if (
m_session->DefinesSolverInfo(
"SolverType"))
100 vEquation =
m_session->GetSolverInfo(
"SolverType");
105 "EquationSystem '" + vEquation +
"' is not defined.\n"
106 "Ensure equation name is correct and module is compiled.\n");
112 "EvolutionOperator");
123 m_session->SetTag(
"AdvectiveType",
"Convective");
128 m_session->SetTag(
"AdvectiveType",
"Linearised");
133 m_session->SetTag(
"AdvectiveType",
"Adjoint");
139 m_session->SetTag(
"AdvectiveType",
"Linearised");
144 m_session->SetTag(
"AdvectiveType",
"Adjoint");
149 m_session->SetTag(
"AdvectiveType",
"SkewSymmetric");
159 string LinNSCondFile;
160 vector<string> LinNSFilename;
162 LinNSCondFile =
m_session->GetSessionName();
163 LinNSCondFile +=
"_LinNS.xml";
164 LinNSFilename.push_back(meshfile);
165 LinNSFilename.push_back(LinNSCondFile);
167 0, NULL, LinNSFilename,
m_session->GetComm());
175 m_session->SetTag(
"AdvectiveType",
"Convective");
181 ASSERTL0(
false,
"Unrecognised evolution operator.");
187 ASSERTL0(e == -1,
"No such class class defined.");
188 out <<
"An error occurred during driver initialisation." << endl;
194 ASSERTL0(
false,
"This routine is not valid in this class");
200 ASSERTL0(
false,
"This routine is not valid in this class");
#define ASSERTL0(condition, msg)
tBaseSharedPtr CreateInstance(tKey idKey BOOST_PP_COMMA_IF(MAX_PARAM) BOOST_PP_ENUM_BINARY_PARAMS(MAX_PARAM, tParam, x))
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.
virtual SOLVER_UTILS_EXPORT void v_InitObject(ostream &out=cout)
static Array< OneD, NekDouble > NullNekDouble1DArray
Driver(const LibUtilities::SessionReaderSharedPtr pSession)
Initialises EquationSystem class members.
virtual ~Driver()
Destructor.
boost::shared_ptr< SessionReader > SessionReaderSharedPtr
static SessionReaderSharedPtr CreateInstance(int argc, char *argv[])
Creates an instance of the SessionReader class.
LibUtilities::SessionReaderSharedPtr session_LinNS
I the Coupling between SFD and arnoldi.
static std::string evolutionOperatorLookupIds[]
LibUtilities::NekFactory< std::string, Driver, const LibUtilities::SessionReaderSharedPtr & > DriverFactory
Datatype of the NekFactory used to instantiate classes derived from the Driver class.
enum EvolutionOperatorType m_EvolutionOperator
Evolution Operator.
EquationSystemFactory & GetEquationSystemFactory()
static std::string evolutionOperatorDef
Array< OneD, EquationSystemSharedPtr > m_equ
Equation system to solve.
virtual SOLVER_UTILS_EXPORT Array< OneD, NekDouble > v_GetImagEvl(void)
virtual SOLVER_UTILS_EXPORT Array< OneD, NekDouble > v_GetRealEvl(void)
DriverFactory & GetDriverFactory()
static std::string RegisterDefaultSolverInfo(const std::string &pName, const std::string &pValue)
Registers the default string value of a solver info property.
LibUtilities::SessionReaderSharedPtr m_session
Session reader object.
int m_nequ
number of equations
Provides a generic Factory class.
static std::string driverDefault