134 std::map<std::string, unsigned int>
lookup;
141 const std::string
re_double =
"((\\+|-)?[[:digit:]]+)(\\.(([[:digit:]]+)?))?((e|E)((\\+|-)?)[[:digit:]]+)?";
144 const std::string
re_stepSize =
"((\\+|-)?[[:digit:]]+)(\\.(([[:digit:]]+)?))?((e|E)((\\+|-)?)[[:digit:]]+)?(,((\\+|-)?[[:digit:]]+)(\\.(([[:digit:]]+)?))?((e|E)((\\+|-)?)[[:digit:]]+)?,((\\+|-)?[[:digit:]]+)(\\.(([[:digit:]]+)?))?((e|E)((\\+|-)?)[[:digit:]]+)?)?";
149 {
"--algLoopSolver",
"",
"Specifies the alg. loop solver method (fixedpoint, [kinsol]) used for algebraic loops spanning over multiple components.",
re_default,
Flags::AlgLoopSolver,
false},
151 {
"--deleteTempFiles",
"",
"Deletes temp files as soon as they are no longer needed ([true], false)",
re_bool,
Flags::DeleteTempFiles,
false},
152 {
"--directionalDerivatives",
"",
"Specifies whether directional derivatives should be used to calculate the Jacobian for alg. loops or if a numerical approximation should be used instead ([true], false)",
re_bool,
Flags::DirectionalDerivatives,
false},
154 {
"--emitEvents",
"",
"Specifies whether events should be emitted or not ([true], false)",
re_bool,
Flags::EmitEvents,
false},
155 {
"--fetchAllVars",
"",
"Workaround for certain FMUs that do not update all internal dependencies automatically",
re_default,
Flags::FetchAllVars,
false},
160 {
"--logFile",
"-l",
"Specifies the logfile (stdout is used if no log file is specified)",
re_default,
Flags::LogFile,
false},
163 {
"--maxLoopIteration",
"",
"Specifies the max. number of iterations for solving algebraic loops between system-level components. Internal algebraic loops of components are not affected.",
re_number,
Flags::MaxLoopIteration,
false},
164 {
"--mode",
"-m",
"Forces a certain FMI mode iff the FMU provides cs and me (cs, [me])",
re_mode,
Flags::Mode,
false},
165 {
"--numProcs",
"-n",
"Specifies the max. number of processors to use (0=auto, 1=default)",
re_number,
Flags::NumProcs,
false},
166 {
"--progressBar",
"",
"Shows a progress bar for the simulation progress in the terminal (true, [false])",
re_bool,
Flags::ProgressBar,
false},
167 {
"--realTime",
"",
"Experimental feature for (soft) real-time co-simulation (true, [false])",
re_bool,
Flags::RealTime,
false},
171 {
"--solverStats",
"",
"Adds solver stats to the result file, e.g. step size; not supported for all solvers (true, [false])",
re_bool,
Flags::SolverStats,
false},
173 {
"--stepSize",
"",
"Specifies the step size (<step size> or <init step,min step,max step>)",
re_stepSize,
Flags::StepSize,
false},
175 {
"--stripRoot",
"",
"Removes the root system prefix from all exported signals (true, [false])",
re_bool,
Flags::StripRoot,
false},
176 {
"--suppressPath",
"",
"Supresses path information in info messages; especially useful for testing ([true], false)",
re_bool,
Flags::SuppressPath,
false},
178 {
"--timeout",
"",
"Specifies the maximum allowed time in seconds for running a simulation (0 disables)",
re_number,
Flags::Timeout,
false},
181 {
"--wallTime",
"",
"Add wall time information for to the result file (true, [false])",
re_bool,
Flags::WallTime,
false},
183 {
"--zeroNominal",
"",
"Using this flag, FMUs with invalid nominal values will be accepted and the invalid nominal values will be replaced with 1.0",
re_bool,
Flags::ZeroNominal,
false}
unsigned int numProcs
Definition: Flags.h:121
bool dumpAlgLoops
Definition: Flags.h:95
oms_solver_enu_t
Definition: Types.h:96
bool solverStats
Definition: Flags.h:102
const std::string desc
Definition: Flags.h:128
bool defaultModeIsCS
Definition: Flags.h:92
const std::string regex
Definition: Flags.h:129
static bool DumpAlgLoops()
Definition: Flags.h:62
const std::string name
Definition: Flags.h:126
const std::string re_stepSize
Definition: Flags.h:144
static bool ProgressBar()
Definition: Flags.h:66
static oms_status_enu_t Filename(const std::string &value)
Definition: Flags.cpp:267
const std::string re_number
Definition: Flags.h:142
void setDefaults()
Definition: Flags.cpp:64
bool progressBar
Definition: Flags.h:99
static oms_solver_enu_t MasterAlgorithm()
Definition: Flags.h:82
bool deleteTempFiles
Definition: Flags.h:93
static oms_alg_solver_enu_t AlgLoopSolver()
Definition: Flags.h:81
static bool InputExtrapolation()
Definition: Flags.h:65
const bool interrupt
Definition: Flags.h:131
static oms_solver_enu_t Solver()
Definition: Flags.h:83
const std::string abbr
Definition: Flags.h:127
static double StopTime()
Definition: Flags.h:78
double tolerance
Definition: Flags.h:113
static bool DefaultModeIsCS()
Definition: Flags.h:59
bool emitEvents
Definition: Flags.h:96
const std::string re_void
Definition: Flags.h:137
static Flags & GetInstance()
Definition: Flags.cpp:99
oms_status_enu_t
Definition: Types.h:43
unsigned int maxEventIteration
Definition: Flags.h:119
std::vector< std::string > files
Definition: Flags.h:135
Flags()
Definition: Flags.cpp:48
bool inputExtrapolation
Definition: Flags.h:98
oms_solver_enu_t masterAlgorithm
Definition: Flags.h:115
bool suppressPath
Definition: Flags.h:104
bool ignoreInitialUnknowns
Definition: Flags.h:97
static oms_status_enu_t Mode(const std::string &value)
Definition: Flags.cpp:347
static oms_status_enu_t WorkingDir(const std::string &value)
Definition: Flags.cpp:480
unsigned int intervals
Definition: Flags.h:118
static bool StripRoot()
Definition: Flags.h:70
static bool DeleteTempFiles()
Definition: Flags.h:60
static oms_status_enu_t LogFile(const std::string &value)
Definition: Flags.cpp:323
static unsigned int MaxEventIteration()
Definition: Flags.h:86
static oms_status_enu_t Version(const std::string &value)
Definition: Flags.cpp:474
static bool EmitEvents()
Definition: Flags.h:63
static double InitialStepSize()
Definition: Flags.h:74
static unsigned int NumProcs()
Definition: Flags.h:88
std::string resultFile
Definition: Flags.h:117
static std::string ResultFile()
Definition: Flags.h:84
bool zeroNominal
Definition: Flags.h:106
double startTime
Definition: Flags.h:110
bool stripRoot
Definition: Flags.h:103
static double MaximumStepSize()
Definition: Flags.h:75
bool realTime
Definition: Flags.h:100
double maximumStepSize
Definition: Flags.h:108
static bool SkipCSVHeader()
Definition: Flags.h:68
const std::string re_double
Definition: Flags.h:141
const std::string re_filename
Definition: Flags.h:143
const std::string re_mode
Definition: Flags.h:140
static oms_status_enu_t LogLevel(const std::string &value)
Definition: Flags.cpp:329
static double StartTime()
Definition: Flags.h:77
static bool DirectionalDerivatives()
Definition: Flags.h:61
oms_status_enu_t(* fcn)(const std::string &value)
Definition: Flags.h:130
~Flags()
Definition: Flags.cpp:60
static unsigned int Intervals()
Definition: Flags.h:85
static oms_status_enu_t Help(const std::string &value)
Definition: Flags.cpp:273
double timeout
Definition: Flags.h:112
oms_alg_solver_enu_t
Definition: Types.h:110
static oms_status_enu_t FetchAllVars(const std::string &value)
Definition: Flags.cpp:230
static double MinimumStepSize()
Definition: Flags.h:76
static unsigned int MaxLoopIteration()
Definition: Flags.h:87
static double Tolerance()
Definition: Flags.h:80
double initialStepSize
Definition: Flags.h:107
static double Timeout()
Definition: Flags.h:79
static oms_status_enu_t ClearAllOptions(const std::string &value)
Definition: Flags.cpp:200
bool directionalDerivatives
Definition: Flags.h:94
const std::vector< Flag > flags
Definition: Flags.h:146
oms_solver_enu_t solver
Definition: Flags.h:116
const std::string re_default
Definition: Flags.h:138
static bool RealTime()
Definition: Flags.h:67
static bool AddParametersToCSV()
Definition: Flags.h:58
double minimumStepSize
Definition: Flags.h:109
static oms_status_enu_t SetCommandLineOption(const std::string &cmd)
Definition: Flags.cpp:122
oms_alg_solver_enu_t algLoopSolver
Definition: Flags.h:114
bool addParametersToCSV
Definition: Flags.h:91
double stopTime
Definition: Flags.h:111
static bool SolverStats()
Definition: Flags.h:69
bool wallTime
Definition: Flags.h:105
static oms_status_enu_t StepSize(const std::string &value)
Definition: Flags.cpp:419
static bool SuppressPath()
Definition: Flags.h:71
static bool ZeroNominal()
Definition: Flags.h:73
bool skipCSVHeader
Definition: Flags.h:101
Flags & operator=(Flags const &)
not implemented
static bool IgnoreInitialUnknowns()
Definition: Flags.h:64
const std::string re_bool
Definition: Flags.h:139
unsigned int maxLoopIteration
Definition: Flags.h:120
static oms_status_enu_t TempDir(const std::string &value)
Definition: Flags.cpp:456
std::map< std::string, unsigned int > lookup
Definition: Flags.h:134
static bool WallTime()
Definition: Flags.h:72