34 #include "OMSimulator/Types.h"
88 static oms_solver_enu_t
Solver();
96 std::map<std::string, unsigned int>
lookup;
103 const std::string
re_double =
"((\\+|-)?[[:digit:]]+)(\\.(([[:digit:]]+)?))?((e|E)((\\+|-)?)[[:digit:]]+)?";
125 Flag FlagAlgLoopSolver{
"--algLoopSolver",
"",
"",
"kinsol",
"Specifies the loop solver method (fixedpoint, kinsol) used for algebraic loops spanning multiple components.",
re_default,
nullptr,
false,
false,
false};
131 Flag FlagDeleteTempFiles{
"--deleteTempFiles",
"",
"",
"true",
"Delete temporary files as soon as they are no longer needed",
re_bool,
nullptr,
false,
false,
false};
139 Flag FlagIntervals{
"--intervals",
"-i",
"",
"500",
"Specify the number of communication points (arg > 1)",
re_number,
nullptr,
false,
false,
false};
140 Flag FlagLogFile{
"--logFile",
"-l",
"",
"",
"Specify the log file (stdout is used if no log file is specified)",
re_default,
nullptr,
false,
false,
false};
141 Flag FlagLogLevel{
"--logLevel",
"",
"",
"0",
"Set the log level (0: default, 1: debug, 2: debug+trace)",
re_number,
nullptr,
false,
false,
false};
144 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};
146 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};
147 Flag FlagNumProcs{
"--numProcs",
"-n",
"",
"1",
"Specify the maximum number of processors to use (0=auto, 1=default)",
re_number,
nullptr,
false,
false,
false};
148 Flag FlagProgressBar{
"--progressBar",
"",
"",
"false",
"Show a progress bar for the simulation progress in the terminal",
re_bool,
nullptr,
false,
false,
false};
149 Flag FlagRealTime{
"--realTime",
"",
"",
"false",
"Enable experimental feature for (soft) real-time co-simulation",
re_bool,
nullptr,
false,
false,
false};
152 Flag FlagSolver{
"--solver",
"",
"",
"cvode",
"Specify the integration method (euler, cvode)",
re_solver,
nullptr,
false,
false,
false};
153 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};
157 Flag FlagStripRoot{
"--stripRoot",
"",
"",
"false",
"Remove the root system prefix from all exported signals",
re_bool,
nullptr,
false,
false,
false};
158 Flag FlagSuppressPath{
"--suppressPath",
"",
"",
"false",
"Suppress path information in info messages; especially useful for testing",
re_bool,
nullptr,
false,
false,
false};
160 Flag FlagTimeout{
"--timeout",
"",
"",
"0",
"Specify the maximum allowed time in seconds for running a simulation (0 disables)",
re_number,
nullptr,
false,
false,
false};
163 Flag FlagWallTime{
"--wallTime",
"",
"",
"false",
"Add wall time information to the result file",
re_bool,
nullptr,
false,
false,
false};
165 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};
213 static oms_status_enu_t
SetFlag(
size_t flag_id,
const std::string &value);
216 static oms_status_enu_t
Filename(
const std::string &value);
217 static oms_status_enu_t
Help(
const std::string &value);
218 static oms_status_enu_t
Version(
const std::string &value);
Flags(Flags const &)
not implemented
static double MaximumStepSize()
Definition: Flags.h:76
static bool DefaultModeIsCS()
Definition: Flags.h:60
static oms_solver_enu_t MasterAlgorithm()
Definition: Flags.cpp:317
Flag FlagMasterAlgorithm
Definition: Flags.h:142
const std::string re_bool
Definition: Flags.h:101
static unsigned int MaxEventIteration()
Definition: Flags.h:91
static oms_status_enu_t Help(const std::string &value)
Definition: Flags.cpp:249
Flag FlagWorkingDir
Definition: Flags.h:164
static unsigned int Intervals()
Definition: Flags.h:90
Flag FlagIntervals
Definition: Flags.h:139
Flag FlagMaxLoopIteration
Definition: Flags.h:144
const std::string re_default
Definition: Flags.h:100
static double Tolerance()
Definition: Flags.h:81
const std::string re_mode
Definition: Flags.h:102
Flag FlagMaxEventIteration
Definition: Flags.h:143
Flags & operator=(Flags const &)
not implemented
Flag FlagAddParametersToCSV
Definition: Flags.h:124
static oms_status_enu_t Filename(const std::string &value)
Definition: Flags.cpp:243
static bool WallTime()
Definition: Flags.h:73
static int CVODEMaxNLSIterations()
Definition: Flags.h:84
Flag FlagStopTime
Definition: Flags.h:156
Flag FlagStartTime
Definition: Flags.h:154
Flag FlagVersion
Definition: Flags.h:162
static bool DumpAlgLoops()
Definition: Flags.h:63
std::map< std::string, unsigned int > lookup
Definition: Flags.h:96
Flag FlagAlgLoopSolver
Definition: Flags.h:125
static int CVODEMaxErrTestFails()
Definition: Flags.h:82
Flag FlagCVODEMaxSteps
Definition: Flags.h:130
Flag FlagStepSize
Definition: Flags.h:155
static bool RealTime()
Definition: Flags.h:68
Flag FlagSolver
Definition: Flags.h:152
static double StopTime()
Definition: Flags.h:79
std::array< Flag *, 43 > flags
Definition: Flags.h:168
static int CVODEMaxNLSFailures()
Definition: Flags.h:83
static bool SuppressPath()
Definition: Flags.h:72
static bool EmitEvents()
Definition: Flags.h:64
static oms_alg_solver_enu_t AlgLoopSolver()
Definition: Flags.cpp:306
const std::string re_filename
Definition: Flags.h:105
static double Timeout()
Definition: Flags.h:80
Flag FlagDirectionalDerivatives
Definition: Flags.h:132
static oms_status_enu_t SetFlag(size_t flag_id, const std::string &value)
Definition: Flags.cpp:145
static double InitialStepSize()
Definition: Flags.h:75
static oms_solver_enu_t Solver()
Definition: Flags.cpp:326
static int CVODEMaxSteps()
Definition: Flags.h:85
Flag FlagProgressBar
Definition: Flags.h:148
static bool SkipCSVHeader()
Definition: Flags.h:69
Flag FlagStripRoot
Definition: Flags.h:157
static bool ZeroNominal()
Definition: Flags.h:74
Flag FlagLogLevel
Definition: Flags.h:141
void setDefaults()
Definition: Flags.cpp:120
static bool ProgressBar()
Definition: Flags.h:67
Flag FlagWallTime
Definition: Flags.h:163
Flag FlagLogFile
Definition: Flags.h:140
static bool DeleteTempFiles()
Definition: Flags.h:61
Flag FlagCVODEMaxNLSFailures
Definition: Flags.h:128
static double StartTime()
Definition: Flags.h:78
Flag FlagCVODEMaxErrTestFails
Definition: Flags.h:127
static bool InputExtrapolation()
Definition: Flags.h:66
static bool IgnoreInitialUnknowns()
Definition: Flags.h:65
Flag FlagDumpAlgLoops
Definition: Flags.h:133
static bool AddParametersToCSV()
Definition: Flags.h:59
static Flags & GetInstance()
Definition: Flags.cpp:62
static std::string ResultFile()
Definition: Flags.h:89
Flag FlagTempDir
Definition: Flags.h:159
Flag FlagEmitEvents
Definition: Flags.h:134
Flag FlagDeleteTempFiles
Definition: Flags.h:131
Flag FlagHelp
Definition: Flags.h:135
static unsigned int MaxLoopIteration()
Definition: Flags.h:92
const std::string re_solver
Definition: Flags.h:106
Flag FlagSuppressPath
Definition: Flags.h:158
static bool DirectionalDerivatives()
Definition: Flags.h:62
static oms_status_enu_t ClearAllOptions(const std::string &value)
Definition: Flags.cpp:237
Flag FlagTimeout
Definition: Flags.h:160
const std::string re_void
Definition: Flags.h:99
std::vector< std::string > files
Definition: Flags.h:97
static bool SolverStats()
Definition: Flags.h:70
static unsigned int NumProcs()
Definition: Flags.h:93
static oms_status_enu_t SetCommandLineOption(const std::string &cmd)
Definition: Flags.cpp:180
Flags()
Definition: Flags.cpp:46
Flag FlagInputExtrapolation
Definition: Flags.h:138
Flag FlagNumProcs
Definition: Flags.h:147
Flag FlagZeroNominal
Definition: Flags.h:165
Flag FlagClearAllOptions
Definition: Flags.h:126
Flag FlagMode
Definition: Flags.h:146
Flag FlagFilename
Definition: Flags.h:123
const std::string re_number
Definition: Flags.h:104
Flag FlagResultFile
Definition: Flags.h:150
const std::string re_double
Definition: Flags.h:103
Flag FlagRealTime
Definition: Flags.h:149
Flag FlagSkipCSVHeader
Definition: Flags.h:151
Flag FlagMinimumStepSize
Definition: Flags.h:145
~Flags()
Definition: Flags.cpp:58
Flag FlagSolverStats
Definition: Flags.h:153
static bool StripRoot()
Definition: Flags.h:71
Flag FlagInitialStepSize
Definition: Flags.h:137
Flag FlagCVODEMaxNLSIterations
Definition: Flags.h:129
static oms_status_enu_t Version(const std::string &value)
Definition: Flags.cpp:288
Flag FlagTolerance
Definition: Flags.h:161
static double MinimumStepSize()
Definition: Flags.h:77
Flag FlagIgnoreInitialUnknowns
Definition: Flags.h:136
const std::string name
Definition: Flags.h:111
bool explicitlySet
Definition: Flags.h:120
const bool interrupt
Definition: Flags.h:118
const std::string defaultValue
Definition: Flags.h:114
const bool settings
Definition: Flags.h:119
oms_status_enu_t(* action)(const std::string &value)
Definition: Flags.h:117
const std::string abbr
Definition: Flags.h:112
std::string value
Definition: Flags.h:113
const std::string desc
Definition: Flags.h:115
const std::string regex
Definition: Flags.h:116