38#include "OMSimulator/Types.h"
92 static oms_solver_enu_t
Solver();
100 std::map<std::string, unsigned int>
lookup;
107 const std::string
re_double =
"((\\+|-)?[[:digit:]]+)(\\.(([[:digit:]]+)?))?((e|E)((\\+|-)?)[[:digit:]]+)?";
129 Flag FlagAlgLoopSolver{
"--algLoopSolver",
"",
"",
"kinsol",
"Specifies the loop solver method (fixedpoint, kinsol) used for algebraic loops spanning multiple components.",
re_default,
nullptr,
false,
false,
false};
135 Flag FlagDeleteTempFiles{
"--deleteTempFiles",
"",
"",
"true",
"Delete temporary files as soon as they are no longer needed",
re_bool,
nullptr,
false,
false,
false};
143 Flag FlagIntervals{
"--intervals",
"-i",
"",
"500",
"Specify the number of communication points (arg > 1)",
re_number,
nullptr,
false,
false,
false};
144 Flag FlagLogFile{
"--logFile",
"-l",
"",
"",
"Specify the log file (stdout is used if no log file is specified)",
re_default,
nullptr,
false,
false,
false};
145 Flag FlagLogLevel{
"--logLevel",
"",
"",
"0",
"Set the log level (0: default, 1: debug, 2: debug+trace)",
re_number,
nullptr,
false,
false,
false};
148 Flag FlagMaxLoopIteration{
"--maxLoopIteration",
"",
"",
"10",
"Specify the maximum number of iterations for solving algebraic loops between system-level components. Internal algebraic loops of components are not affected.",
re_number,
nullptr,
false,
false,
false};
150 Flag FlagMode{
"--mode",
"-m",
"",
"me",
"Force a certain FMI mode if the FMU provides both cs and me (cs, me)",
re_mode,
nullptr,
false,
false,
false};
151 Flag FlagNumProcs{
"--numProcs",
"-n",
"",
"1",
"Specify the maximum number of processors to use (0=auto, 1=default)",
re_number,
nullptr,
false,
false,
false};
152 Flag FlagProgressBar{
"--progressBar",
"",
"",
"false",
"Show a progress bar for the simulation progress in the terminal",
re_bool,
nullptr,
false,
false,
false};
153 Flag FlagRealTime{
"--realTime",
"",
"",
"false",
"Enable experimental feature for (soft) real-time co-simulation",
re_bool,
nullptr,
false,
false,
false};
156 Flag FlagSolver{
"--solver",
"",
"",
"cvode",
"Specify the integration method (euler, cvode)",
re_solver,
nullptr,
false,
false,
false};
157 Flag FlagSolverStats{
"--solverStats",
"",
"",
"false",
"Add solver stats to the result file, e.g., step size; not supported for all solvers",
re_bool,
nullptr,
false,
false,
false};
161 Flag FlagStripRoot{
"--stripRoot",
"",
"",
"false",
"Remove the root system prefix from all exported signals",
re_bool,
nullptr,
false,
false,
false};
162 Flag FlagSuppressPath{
"--suppressPath",
"",
"",
"false",
"Suppress path information in info messages; especially useful for testing",
re_bool,
nullptr,
false,
false,
false};
164 Flag FlagTimeout{
"--timeout",
"",
"",
"0",
"Specify the maximum allowed time in seconds for running a simulation (0 disables)",
re_number,
nullptr,
false,
false,
false};
167 Flag FlagWallTime{
"--wallTime",
"",
"",
"false",
"Add wall time information to the result file",
re_bool,
nullptr,
false,
false,
false};
169 Flag FlagZeroNominal{
"--zeroNominal",
"",
"",
"false",
"Accept FMUs with invalid nominal values and replace the invalid nominal values with 1.0",
re_bool,
nullptr,
false,
false,
false};
217 static oms_status_enu_t
SetFlag(
size_t flag_id,
const std::string &value);
220 static oms_status_enu_t
Filename(
const std::string &value);
221 static oms_status_enu_t
Help(
const std::string &value);
222 static oms_status_enu_t
Version(
const std::string &value);
Flags(Flags const &)
not implemented
static double MaximumStepSize()
Definition Flags.h:80
static bool DefaultModeIsCS()
Definition Flags.h:64
static oms_solver_enu_t MasterAlgorithm()
Definition Flags.cpp:321
Flag FlagMasterAlgorithm
Definition Flags.h:146
const std::string re_bool
Definition Flags.h:105
static unsigned int MaxEventIteration()
Definition Flags.h:95
static oms_status_enu_t Help(const std::string &value)
Definition Flags.cpp:253
Flag FlagWorkingDir
Definition Flags.h:168
static unsigned int Intervals()
Definition Flags.h:94
Flag FlagIntervals
Definition Flags.h:143
Flag FlagMaxLoopIteration
Definition Flags.h:148
const std::string re_default
Definition Flags.h:104
static double Tolerance()
Definition Flags.h:85
const std::string re_mode
Definition Flags.h:106
Flag FlagMaxEventIteration
Definition Flags.h:147
Flag FlagAddParametersToCSV
Definition Flags.h:128
static oms_status_enu_t Filename(const std::string &value)
Definition Flags.cpp:247
static bool WallTime()
Definition Flags.h:77
static int CVODEMaxNLSIterations()
Definition Flags.h:88
Flag FlagStopTime
Definition Flags.h:160
Flag FlagStartTime
Definition Flags.h:158
Flag FlagVersion
Definition Flags.h:166
static bool DumpAlgLoops()
Definition Flags.h:67
std::map< std::string, unsigned int > lookup
Definition Flags.h:100
Flag FlagAlgLoopSolver
Definition Flags.h:129
static int CVODEMaxErrTestFails()
Definition Flags.h:86
Flag FlagCVODEMaxSteps
Definition Flags.h:134
Flag FlagStepSize
Definition Flags.h:159
static bool RealTime()
Definition Flags.h:72
Flag FlagSolver
Definition Flags.h:156
static double StopTime()
Definition Flags.h:83
std::array< Flag *, 43 > flags
Definition Flags.h:172
static int CVODEMaxNLSFailures()
Definition Flags.h:87
static bool SuppressPath()
Definition Flags.h:76
static bool EmitEvents()
Definition Flags.h:68
static oms_alg_solver_enu_t AlgLoopSolver()
Definition Flags.cpp:310
const std::string re_filename
Definition Flags.h:109
static double Timeout()
Definition Flags.h:84
Flags & operator=(Flags const &)
not implemented
Flag FlagDirectionalDerivatives
Definition Flags.h:136
static oms_status_enu_t SetFlag(size_t flag_id, const std::string &value)
Definition Flags.cpp:149
static double InitialStepSize()
Definition Flags.h:79
static oms_solver_enu_t Solver()
Definition Flags.cpp:330
static int CVODEMaxSteps()
Definition Flags.h:89
Flag FlagProgressBar
Definition Flags.h:152
static bool SkipCSVHeader()
Definition Flags.h:73
Flag FlagStripRoot
Definition Flags.h:161
static bool ZeroNominal()
Definition Flags.h:78
Flag FlagLogLevel
Definition Flags.h:145
void setDefaults()
Definition Flags.cpp:124
static bool ProgressBar()
Definition Flags.h:71
Flag FlagWallTime
Definition Flags.h:167
Flag FlagLogFile
Definition Flags.h:144
static bool DeleteTempFiles()
Definition Flags.h:65
Flag FlagCVODEMaxNLSFailures
Definition Flags.h:132
static double StartTime()
Definition Flags.h:82
Flag FlagCVODEMaxErrTestFails
Definition Flags.h:131
static bool InputExtrapolation()
Definition Flags.h:70
static bool IgnoreInitialUnknowns()
Definition Flags.h:69
Flag FlagDumpAlgLoops
Definition Flags.h:137
static bool AddParametersToCSV()
Definition Flags.h:63
static Flags & GetInstance()
Definition Flags.cpp:66
static std::string ResultFile()
Definition Flags.h:93
Flag FlagTempDir
Definition Flags.h:163
Flag FlagEmitEvents
Definition Flags.h:138
Flag FlagDeleteTempFiles
Definition Flags.h:135
Flag FlagHelp
Definition Flags.h:139
static unsigned int MaxLoopIteration()
Definition Flags.h:96
const std::string re_solver
Definition Flags.h:110
Flag FlagSuppressPath
Definition Flags.h:162
static bool DirectionalDerivatives()
Definition Flags.h:66
static oms_status_enu_t ClearAllOptions(const std::string &value)
Definition Flags.cpp:241
Flag FlagTimeout
Definition Flags.h:164
const std::string re_void
Definition Flags.h:103
std::vector< std::string > files
Definition Flags.h:101
static bool SolverStats()
Definition Flags.h:74
static unsigned int NumProcs()
Definition Flags.h:97
static oms_status_enu_t SetCommandLineOption(const std::string &cmd)
Definition Flags.cpp:184
Flags()
Definition Flags.cpp:50
Flag FlagInputExtrapolation
Definition Flags.h:142
Flag FlagNumProcs
Definition Flags.h:151
Flag FlagZeroNominal
Definition Flags.h:169
Flag FlagClearAllOptions
Definition Flags.h:130
Flag FlagMode
Definition Flags.h:150
Flag FlagFilename
Definition Flags.h:127
const std::string re_number
Definition Flags.h:108
Flag FlagResultFile
Definition Flags.h:154
const std::string re_double
Definition Flags.h:107
Flag FlagRealTime
Definition Flags.h:153
Flag FlagSkipCSVHeader
Definition Flags.h:155
Flag FlagMinimumStepSize
Definition Flags.h:149
~Flags()
Definition Flags.cpp:62
Flag FlagSolverStats
Definition Flags.h:157
static bool StripRoot()
Definition Flags.h:75
Flag FlagInitialStepSize
Definition Flags.h:141
Flag FlagCVODEMaxNLSIterations
Definition Flags.h:133
static oms_status_enu_t Version(const std::string &value)
Definition Flags.cpp:292
Flag FlagTolerance
Definition Flags.h:165
static double MinimumStepSize()
Definition Flags.h:81
Flag FlagIgnoreInitialUnknowns
Definition Flags.h:140
const std::string name
Definition Flags.h:115
bool explicitlySet
Definition Flags.h:124
const bool interrupt
Definition Flags.h:122
const std::string defaultValue
Definition Flags.h:118
const bool settings
Definition Flags.h:123
oms_status_enu_t(* action)(const std::string &value)
Definition Flags.h:121
const std::string abbr
Definition Flags.h:116
std::string value
Definition Flags.h:117
const std::string desc
Definition Flags.h:119
const std::string regex
Definition Flags.h:120