OMSimulatorLib
The OMSimulator project is a FMI-based co-simulation environment that supports ordinary (i.e., non-delayed) and TLM connections.
|
Go to the documentation of this file.
35 #include "OMSimulator/Types.h"
138 oms_status_enu_t (*
fcn)(
const std::string& value);
142 std::map<std::string, unsigned int>
lookup;
149 const std::string
re_double =
"((\\+|-)?[[:digit:]]+)(\\.(([[:digit:]]+)?))?((e|E)((\\+|-)?)[[:digit:]]+)?";
152 const std::string
re_stepSize =
"((\\+|-)?[[:digit:]]+)(\\.(([[:digit:]]+)?))?((e|E)((\\+|-)?)[[:digit:]]+)?(,((\\+|-)?[[:digit:]]+)(\\.(([[:digit:]]+)?))?((e|E)((\\+|-)?)[[:digit:]]+)?,((\\+|-)?[[:digit:]]+)(\\.(([[:digit:]]+)?))?((e|E)((\\+|-)?)[[:digit:]]+)?)?";
157 {
"--algLoopSolver",
"",
"Specifies the alg. loop solver method (fixedpoint, [kinsol]) used for algebraic loops spanning over multiple components.",
re_default,
Flags::AlgLoopSolver,
false},
163 {
"--deleteTempFiles",
"",
"Deletes temp files as soon as they are no longer needed ([true], false)",
re_bool,
Flags::DeleteTempFiles,
false},
164 {
"--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},
166 {
"--emitEvents",
"",
"Specifies whether events should be emitted or not ([true], false)",
re_bool,
Flags::EmitEvents,
false},
167 {
"--fetchAllVars",
"",
"Workaround for certain FMUs that do not update all internal dependencies automatically",
re_default,
Flags::FetchAllVars,
false},
172 {
"--logFile",
"-l",
"Specifies the logfile (stdout is used if no log file is specified)",
re_default,
Flags::LogFile,
false},
175 {
"--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},
176 {
"--mode",
"-m",
"Forces a certain FMI mode iff the FMU provides cs and me (cs, [me])",
re_mode,
Flags::Mode,
false},
177 {
"--numProcs",
"-n",
"Specifies the max. number of processors to use (0=auto, 1=default)",
re_number,
Flags::NumProcs,
false},
178 {
"--progressBar",
"",
"Shows a progress bar for the simulation progress in the terminal (true, [false])",
re_bool,
Flags::ProgressBar,
false},
179 {
"--realTime",
"",
"Experimental feature for (soft) real-time co-simulation (true, [false])",
re_bool,
Flags::RealTime,
false},
183 {
"--solverStats",
"",
"Adds solver stats to the result file, e.g. step size; not supported for all solvers (true, [false])",
re_bool,
Flags::SolverStats,
false},
185 {
"--stepSize",
"",
"Specifies the step size (<step size> or <init step,min step,max step>)",
re_stepSize,
Flags::StepSize,
false},
187 {
"--stripRoot",
"",
"Removes the root system prefix from all exported signals (true, [false])",
re_bool,
Flags::StripRoot,
false},
188 {
"--suppressPath",
"",
"Supresses path information in info messages; especially useful for testing ([true], false)",
re_bool,
Flags::SuppressPath,
false},
190 {
"--timeout",
"",
"Specifies the maximum allowed time in seconds for running a simulation (0 disables)",
re_number,
Flags::Timeout,
false},
193 {
"--wallTime",
"",
"Add wall time information for to the result file (true, [false])",
re_bool,
Flags::WallTime,
false},
195 {
"--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}
199 static oms_status_enu_t
AlgLoopSolver(
const std::string& value);
204 static oms_status_enu_t
CVODEMaxSteps(
const std::string& value);
207 static oms_status_enu_t
DumpAlgLoops(
const std::string& value);
208 static oms_status_enu_t
EmitEvents(
const std::string& value);
209 static oms_status_enu_t
FetchAllVars(
const std::string& value);
210 static oms_status_enu_t
Filename(
const std::string& value);
211 static oms_status_enu_t
Help(
const std::string& value);
214 static oms_status_enu_t
Intervals(
const std::string& value);
215 static oms_status_enu_t
LogFile(
const std::string& value);
216 static oms_status_enu_t
LogLevel(
const std::string& value);
219 static oms_status_enu_t
Mode(
const std::string& value);
220 static oms_status_enu_t
NumProcs(
const std::string& value);
221 static oms_status_enu_t
ProgressBar(
const std::string& value);
222 static oms_status_enu_t
RealTime(
const std::string& value);
223 static oms_status_enu_t
ResultFile(
const std::string& value);
224 static oms_status_enu_t
SkipCSVHeader(
const std::string& value);
225 static oms_status_enu_t
Solver(
const std::string& value);
226 static oms_status_enu_t
SolverStats(
const std::string& value);
227 static oms_status_enu_t
StartTime(
const std::string& value);
228 static oms_status_enu_t
StepSize(
const std::string& value);
229 static oms_status_enu_t
StopTime(
const std::string& value);
230 static oms_status_enu_t
StripRoot(
const std::string& value);
231 static oms_status_enu_t
SuppressPath(
const std::string& value);
232 static oms_status_enu_t
TempDir(
const std::string& value);
233 static oms_status_enu_t
Timeout(
const std::string& value);
234 static oms_status_enu_t
Tolerance(
const std::string& value);
235 static oms_status_enu_t
Version(
const std::string& value);
236 static oms_status_enu_t
WallTime(
const std::string& value);
237 static oms_status_enu_t
WorkingDir(
const std::string& value);
238 static oms_status_enu_t
ZeroNominal(
const std::string& value);
unsigned int maxLoopIteration
Definition: Flags.h:128
const std::string name
Definition: Flags.h:134
void setDefaults()
Definition: Flags.cpp:64
const std::string re_default
Definition: Flags.h:146
static bool DeleteTempFiles()
Definition: Flags.h:64
static int CVODEMaxNLSFailures()
Definition: Flags.h:60
static oms_status_enu_t Mode(const std::string &value)
Definition: Flags.cpp:375
std::map< std::string, unsigned int > lookup
Definition: Flags.h:142
bool inputExtrapolation
Definition: Flags.h:106
static bool SkipCSVHeader()
Definition: Flags.h:72
const std::string re_bool
Definition: Flags.h:147
const char * system
Definition: Tags.cpp:57
std::vector< std::string > files
Definition: Flags.h:143
ComRef - component reference.
Definition: ComRef.h:46
oms_solver_enu_t solver
Definition: Flags.h:124
const char * component
Definition: Tags.cpp:45
double tolerance
Definition: Flags.h:121
const std::string re_void
Definition: Flags.h:145
static bool DumpAlgLoops()
Definition: Flags.h:66
~Flags()
Definition: Flags.cpp:60
oms_alg_solver_enu_t algLoopSolver
Definition: Flags.h:122
oms_solver_enu_t masterAlgorithm
Definition: Flags.h:123
static int CVODEMaxErrTestFails()
Definition: Flags.h:59
std::string resultFile
Definition: Flags.h:125
const std::string re_number
Definition: Flags.h:150
bool progressBar
Definition: Flags.h:107
bool isOptionAndValue(const std::string &cmd, const std::string &name, std::string &value, std::regex re)
Definition: Flags.cpp:115
bool isOption(const std::string &cmd, const std::string &name)
Definition: Flags.cpp:110
double maximumStepSize
Definition: Flags.h:116
static oms_status_enu_t Filename(const std::string &value)
Definition: Flags.cpp:295
static unsigned int MaxLoopIteration()
Definition: Flags.h:91
unsigned int intervals
Definition: Flags.h:126
static Flags & GetInstance()
Definition: Flags.cpp:103
#define logInfo(msg)
Definition: Logging.h:100
const std::string re_double
Definition: Flags.h:149
static oms_status_enu_t LogLevel(const std::string &value)
Definition: Flags.cpp:357
double initialStepSize
Definition: Flags.h:115
static bool RealTime()
Definition: Flags.h:71
bool wallTime
Definition: Flags.h:113
static unsigned int NumProcs()
Definition: Flags.h:92
double timeout
Definition: Flags.h:120
static bool IgnoreInitialUnknowns()
Definition: Flags.h:68
#define logError_ModelNotInScope(cref)
Definition: Logging.h:136
const std::string desc
Definition: Flags.h:136
unsigned int numProcs
Definition: Flags.h:129
static Scope & GetInstance()
Definition: Scope.cpp:63
static oms_status_enu_t SetCommandLineOption(const std::string &cmd)
Definition: Flags.cpp:126
#define logDebug(msg)
Definition: Logging.h:109
static bool ProgressBar()
Definition: Flags.h:70
static double MaximumStepSize()
Definition: Flags.h:79
const bool interrupt
Definition: Flags.h:139
oms_status_enu_t oms_RunFile(const char *filename)
Definition: OMSimulator.cpp:1172
bool solverStats
Definition: Flags.h:110
static oms_status_enu_t ClearAllOptions(const std::string &value)
Definition: Flags.cpp:204
Definition: Component.h:59
static bool DirectionalDerivatives()
Definition: Flags.h:65
static int CVODEMaxNLSIterations()
Definition: Flags.h:61
static oms_status_enu_t FetchAllVars(const std::string &value)
Definition: Flags.cpp:258
static bool StripRoot()
Definition: Flags.h:74
int cvodeMaxNLSIterations
Definition: Flags.h:98
bool deleteTempFiles
Definition: Flags.h:101
static int CVODEMaxSteps()
Definition: Flags.h:62
bool defaultModeIsCS
Definition: Flags.h:100
#define logError_ComponentNotInSystem(system, component)
Definition: Logging.h:125
Flags()
Definition: Flags.cpp:48
static bool WallTime()
Definition: Flags.h:76
bool stripRoot
Definition: Flags.h:111
static std::string ResultFile()
Definition: Flags.h:88
const std::string abbr
Definition: Flags.h:135
static unsigned int Intervals()
Definition: Flags.h:89
oms_status_enu_t oms_setTempDirectory(const char *newTempDir)
Definition: OMSimulator.cpp:115
static double Tolerance()
Definition: Flags.h:84
bool zeroNominal
Definition: Flags.h:114
static double InitialStepSize()
Definition: Flags.h:78
static oms_alg_solver_enu_t AlgLoopSolver()
Definition: Flags.h:85
const ComRef & getCref() const
Definition: Model.h:63
bool ignoreInitialUnknowns
Definition: Flags.h:105
Flags & operator=(Flags const &)
not implemented
int cvodeMaxSteps
Definition: Flags.h:99
bool emitEvents
Definition: Flags.h:104
static unsigned int MaxEventIteration()
Definition: Flags.h:90
int cvodeMaxErrTestFails
Definition: Flags.h:96
static bool EmitEvents()
Definition: Flags.h:67
const std::string re_filename
Definition: Flags.h:151
Model * getModel(const ComRef &cref)
Definition: Scope.cpp:404
double stopTime
Definition: Flags.h:119
static double Timeout()
Definition: Flags.h:83
const char * oms_getVersion()
Definition: OMSimulator.cpp:74
const std::string re_stepSize
Definition: Flags.h:152
int cvodeMaxNLSFails
Definition: Flags.h:97
static bool InputExtrapolation()
Definition: Flags.h:69
static oms_status_enu_t StepSize(const std::string &value)
Definition: Flags.cpp:447
static bool AddParametersToCSV()
Definition: Flags.h:58
oms_status_enu_t oms_setLoggingLevel(int logLevel)
Definition: OMSimulator.cpp:105
oms_status_enu_t oms_setLogFile(const char *filename)
Definition: OMSimulator.cpp:84
static double MinimumStepSize()
Definition: Flags.h:80
#define logError(msg)
Definition: Logging.h:102
static double StartTime()
Definition: Flags.h:81
std::vector< std::string > split(const std::string &s, char delim)
Definition: Flags.cpp:435
static double StopTime()
Definition: Flags.h:82
const std::vector< Flag > flags
Definition: Flags.h:154
oms_status_enu_t oms_setWorkingDirectory(const char *newWorkingDir)
Definition: OMSimulator.cpp:120
static oms_status_enu_t Help(const std::string &value)
Definition: Flags.cpp:301
static oms_solver_enu_t MasterAlgorithm()
Definition: Flags.h:86
bool addParametersToCSV
Definition: Flags.h:95
static bool ZeroNominal()
Definition: Flags.h:77
bool skipCSVHeader
Definition: Flags.h:109
System * getSystem(const ComRef &cref)
Definition: Model.cpp:358
const std::string regex
Definition: Flags.h:137
static oms_status_enu_t Version(const std::string &value)
Definition: Flags.cpp:502
ComRef pop_front()
returns the first part of the ComRef and removed it from the current object
Definition: ComRef.cpp:184
static oms_status_enu_t WorkingDir(const std::string &value)
Definition: Flags.cpp:508
const std::string re_mode
Definition: Flags.h:148
static bool DefaultModeIsCS()
Definition: Flags.h:63
static bool SolverStats()
Definition: Flags.h:73
bool directionalDerivatives
Definition: Flags.h:102
double minimumStepSize
Definition: Flags.h:117
#define logError_SystemNotInModel(model, system)
Definition: Logging.h:149
double startTime
Definition: Flags.h:118
static oms_status_enu_t LogFile(const std::string &value)
Definition: Flags.cpp:351
static oms_solver_enu_t Solver()
Definition: Flags.h:87
bool suppressPath
Definition: Flags.h:112
static bool SuppressPath()
Definition: Flags.h:75
bool realTime
Definition: Flags.h:108
unsigned int maxEventIteration
Definition: Flags.h:127
oms_status_enu_t(* fcn)(const std::string &value)
Definition: Flags.h:138
static oms_status_enu_t TempDir(const std::string &value)
Definition: Flags.cpp:484
bool dumpAlgLoops
Definition: Flags.h:103