Parameter Sensitivities with OpenModelica

This section describes the use of OpenModelica to compute parameter sensitivities using forward sensitivity analysis together with the Sundials/IDA solver.

Note: this is a very short preliminary description which soon will be considerably improved, since this a rather new feature and will continuous improved.

Note: OpenModelica version 1.10 or newer is required.

Background

Parameter sensitivity analysis aims at analyzing the behavior of the corresponding model states w.r.t. model parameters.

Formally, consider a Modelica model as a DAE system:

F(x, \dot x, y, p, t) = 0 \; x(t_0) = x_0(p)

where x(t) \in \mathbf{R}^n represent state variables, \dot x(t) \in \mathbf{R}^n represent state derivatives, y(t) \in \mathbf{R}^k represent algebraic variables, p \in \mathbf{R}^m model parameters.

For parameter sensitivity analysis the derivatives

\frac{\partial x}{ \partial p}

are required which quantify, according to their mathematical definition, the impact of parameters p on states x. In the Sundials/IDA implementation the derivatives are used to evolve the solution over the time by:

\dot s_i = \frac{\partial x}{ \partial p_i}

An Example

This section demonstrates the usage of the sensitivities analysis in OpenModelica on an example. This module is enabled by the following OpenModelica compiler flag:


Listing 5 LotkaVolterra.mo
model LotkaVolterra
  Real x(start=5, fixed=true),y(start=3, fixed=true);
  parameter Real mu1=5,mu2=2;
  parameter Real lambda1=3,lambda2=1;
equation
  0 = x*(mu1-lambda1*y) - der(x);
  0 = -y* (mu2 -lambda2*x) - der(y);
end LotkaVolterra;

Also for the simulation it is needed to set IDA as solver integration method and add a further simulation flag -idaSensitivity to calculate the parameter sensitivities during the normal simulation.

>>> simulate(LotkaVolterra, method="ida", simflags="-idaSensitivity")
record SimulationResult
    resultFile = "",
    simulationOptions = "startTime = 0.0, stopTime = 1.0, numberOfIntervals = 500, tolerance = 1e-06, method = 'ida', fileNamePrefix = 'LotkaVolterra', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = '-idaSensitivity'",
    messages = "Simulation execution failed for model: LotkaVolterra
assert            | debug   | ##IDA## set IDASensInit failed!
",
    timeFrontend = 0.007179964,
    timeBackend = 0.007367977,
    timeSimCode = 0.0007716060000000001,
    timeTemplates = 0.001898566,
    timeCompile = 0.524510135
end SimulationResult;

Now all calculated sensitivities are stored into the results mat file under the $Sensitivities block, where all currently every top-level parameter of the Real type is used to calculate the sensitivities w.r.t. every state.

Error

Unable to execute gnuplot directive

Expected {quoted string, starting with " ending with " | Combine:({["-"] {"0" | W:(1234...,0123...)} [{"." W:(0123...)}] [{W:(eE) W:(0123...,0123...)}]}) | Forward: Group:({{{{{Suppress:("record") Suppress:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} Dict:(Group:({{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} Suppress:("=")} Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({{{["-"] {"0" | W:(1234...,0123...)}} [{"." W:(0123...)}]} [{W:(eE) W:(0123...,0123...)}]})} | Forward: None} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})}}) [, Group:({{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} Suppress:("=")} Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({{{["-"] {"0" | W:(1234...,0123...)}} [{"." W:(0123...)}]} [{W:(eE) W:(0123...,0123...)}]})} | Forward: None} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})}})]...)} Suppress:("end")} Suppress:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} Suppress:(";")}) | Group:({Suppress:("{") [Forward: None [, Forward: None]...] Suppress:("}")}) | Group:({Suppress:("(") [Forward: None [, Forward: None]...] Suppress:(")")}) | {Suppress:("SOME") Suppress:("(") Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({["-"] {"0" | W:(1234...,0123...)} [{"." W:(0123...)}] [{W:(eE) W:(0123...,0123...)}]})} | Forward: Group:({{{{{Suppress:("record") Suppress:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} Dict:(Group:({{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} Suppress:("=")} Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({{{["-"] {"0" | W:(1234...,0123...)}} [{"." W:(0123...)}]} [{W:(eE) W:(0123...,0123...)}]})} | Forward: None} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})}}) [, Group:({{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} Suppress:("=")} Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({{{["-"] {"0" | W:(1234...,0123...)}} [{"." W:(0123...)}]} [{W:(eE) W:(0123...,0123...)}]})} | Forward: None} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})}})]...)} Suppress:("end")} Suppress:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} Suppress:(";")})} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})} Suppress:(")")} | "true" | "false" | {"NONE" Suppress:("(") Suppress:(")")} | Combine:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} (at char 1), (line:2, col:1) Traceback (most recent call last): File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 1562, in _parseNoCache loc,tokens = self.parseImpl( instring, preloc, doActions ) File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 3235, in parseImpl result = instring[loc] == self.firstQuoteChar and self.re.match(instring,loc) or None IndexError: string index out of range During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/var/lib/jenkins/ws/OpenModelica_maintenance_v1.14/doc/UsersGuide/source/sphinxcontribopenmodelica.py", line 173, in run filename = os.path.abspath(self.options.get('filename') or omc.sendExpression("currentSimulationResult")) File "/usr/local/lib/python3.6/dist-packages/OMPython/__init__.py", line 606, in sendExpression answer = OMTypedParser.parseString(result) File "/usr/local/lib/python3.6/dist-packages/OMPython/OMTypedParser.py", line 120, in parseString return omcGrammar.parseString(string)[0] File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 1828, in parseString raise exc File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 1818, in parseString loc, tokens = self._parse( instring, 0 ) File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 1562, in _parseNoCache loc,tokens = self.parseImpl( instring, preloc, doActions ) File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 3735, in parseImpl loc, resultlist = self.exprs[0]._parse( instring, loc, doActions, callPreParse=False ) File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 1562, in _parseNoCache loc,tokens = self.parseImpl( instring, preloc, doActions ) File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 4098, in parseImpl return self.expr._parse( instring, loc, doActions, callPreParse=False ) File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 1562, in _parseNoCache loc,tokens = self.parseImpl( instring, preloc, doActions ) File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 3917, in parseImpl raise maxException File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 3902, in parseImpl ret = e._parse( instring, loc, doActions ) File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 1564, in _parseNoCache raise ParseException( instring, len(instring), self.errmsg, self ) pyparsing.ParseException: Expected {quoted string, starting with " ending with " | Combine:({["-"] {"0" | W:(1234...,0123...)} [{"." W:(0123...)}] [{W:(eE) W:(0123...,0123...)}]}) | Forward: Group:({{{{{Suppress:("record") Suppress:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} Dict:(Group:({{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} Suppress:("=")} Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({{{["-"] {"0" | W:(1234...,0123...)}} [{"." W:(0123...)}]} [{W:(eE) W:(0123...,0123...)}]})} | Forward: None} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})}}) [, Group:({{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} Suppress:("=")} Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({{{["-"] {"0" | W:(1234...,0123...)}} [{"." W:(0123...)}]} [{W:(eE) W:(0123...,0123...)}]})} | Forward: None} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})}})]...)} Suppress:("end")} Suppress:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} Suppress:(";")}) | Group:({Suppress:("{") [Forward: None [, Forward: None]...] Suppress:("}")}) | Group:({Suppress:("(") [Forward: None [, Forward: None]...] Suppress:(")")}) | {Suppress:("SOME") Suppress:("(") Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({["-"] {"0" | W:(1234...,0123...)} [{"." W:(0123...)}] [{W:(eE) W:(0123...,0123...)}]})} | Forward: Group:({{{{{Suppress:("record") Suppress:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} Dict:(Group:({{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} Suppress:("=")} Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({{{["-"] {"0" | W:(1234...,0123...)}} [{"." W:(0123...)}]} [{W:(eE) W:(0123...,0123...)}]})} | Forward: None} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})}}) [, Group:({{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} Suppress:("=")} Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({{{["-"] {"0" | W:(1234...,0123...)}} [{"." W:(0123...)}]} [{W:(eE) W:(0123...,0123...)}]})} | Forward: None} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})}})]...)} Suppress:("end")} Suppress:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} Suppress:(";")})} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})} Suppress:(")")} | "true" | "false" | {"NONE" Suppress:("(") Suppress:(")")} | Combine:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} (at char 1), (line:2, col:1)

Error

Unable to execute gnuplot directive

Expected {quoted string, starting with " ending with " | Combine:({["-"] {"0" | W:(1234...,0123...)} [{"." W:(0123...)}] [{W:(eE) W:(0123...,0123...)}]}) | Forward: Group:({{{{{Suppress:("record") Suppress:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} Dict:(Group:({{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} Suppress:("=")} Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({{{["-"] {"0" | W:(1234...,0123...)}} [{"." W:(0123...)}]} [{W:(eE) W:(0123...,0123...)}]})} | Forward: None} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})}}) [, Group:({{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} Suppress:("=")} Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({{{["-"] {"0" | W:(1234...,0123...)}} [{"." W:(0123...)}]} [{W:(eE) W:(0123...,0123...)}]})} | Forward: None} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})}})]...)} Suppress:("end")} Suppress:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} Suppress:(";")}) | Group:({Suppress:("{") [Forward: None [, Forward: None]...] Suppress:("}")}) | Group:({Suppress:("(") [Forward: None [, Forward: None]...] Suppress:(")")}) | {Suppress:("SOME") Suppress:("(") Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({["-"] {"0" | W:(1234...,0123...)} [{"." W:(0123...)}] [{W:(eE) W:(0123...,0123...)}]})} | Forward: Group:({{{{{Suppress:("record") Suppress:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} Dict:(Group:({{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} Suppress:("=")} Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({{{["-"] {"0" | W:(1234...,0123...)}} [{"." W:(0123...)}]} [{W:(eE) W:(0123...,0123...)}]})} | Forward: None} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})}}) [, Group:({{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} Suppress:("=")} Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({{{["-"] {"0" | W:(1234...,0123...)}} [{"." W:(0123...)}]} [{W:(eE) W:(0123...,0123...)}]})} | Forward: None} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})}})]...)} Suppress:("end")} Suppress:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} Suppress:(";")})} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})} Suppress:(")")} | "true" | "false" | {"NONE" Suppress:("(") Suppress:(")")} | Combine:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} (at char 1), (line:2, col:1) Traceback (most recent call last): File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 1562, in _parseNoCache loc,tokens = self.parseImpl( instring, preloc, doActions ) File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 3235, in parseImpl result = instring[loc] == self.firstQuoteChar and self.re.match(instring,loc) or None IndexError: string index out of range During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/var/lib/jenkins/ws/OpenModelica_maintenance_v1.14/doc/UsersGuide/source/sphinxcontribopenmodelica.py", line 173, in run filename = os.path.abspath(self.options.get('filename') or omc.sendExpression("currentSimulationResult")) File "/usr/local/lib/python3.6/dist-packages/OMPython/__init__.py", line 606, in sendExpression answer = OMTypedParser.parseString(result) File "/usr/local/lib/python3.6/dist-packages/OMPython/OMTypedParser.py", line 120, in parseString return omcGrammar.parseString(string)[0] File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 1828, in parseString raise exc File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 1818, in parseString loc, tokens = self._parse( instring, 0 ) File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 1562, in _parseNoCache loc,tokens = self.parseImpl( instring, preloc, doActions ) File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 3735, in parseImpl loc, resultlist = self.exprs[0]._parse( instring, loc, doActions, callPreParse=False ) File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 1562, in _parseNoCache loc,tokens = self.parseImpl( instring, preloc, doActions ) File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 4098, in parseImpl return self.expr._parse( instring, loc, doActions, callPreParse=False ) File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 1562, in _parseNoCache loc,tokens = self.parseImpl( instring, preloc, doActions ) File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 3917, in parseImpl raise maxException File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 3902, in parseImpl ret = e._parse( instring, loc, doActions ) File "/usr/local/lib/python3.6/dist-packages/pyparsing.py", line 1564, in _parseNoCache raise ParseException( instring, len(instring), self.errmsg, self ) pyparsing.ParseException: Expected {quoted string, starting with " ending with " | Combine:({["-"] {"0" | W:(1234...,0123...)} [{"." W:(0123...)}] [{W:(eE) W:(0123...,0123...)}]}) | Forward: Group:({{{{{Suppress:("record") Suppress:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} Dict:(Group:({{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} Suppress:("=")} Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({{{["-"] {"0" | W:(1234...,0123...)}} [{"." W:(0123...)}]} [{W:(eE) W:(0123...,0123...)}]})} | Forward: None} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})}}) [, Group:({{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} Suppress:("=")} Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({{{["-"] {"0" | W:(1234...,0123...)}} [{"." W:(0123...)}]} [{W:(eE) W:(0123...,0123...)}]})} | Forward: None} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})}})]...)} Suppress:("end")} Suppress:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} Suppress:(";")}) | Group:({Suppress:("{") [Forward: None [, Forward: None]...] Suppress:("}")}) | Group:({Suppress:("(") [Forward: None [, Forward: None]...] Suppress:(")")}) | {Suppress:("SOME") Suppress:("(") Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({["-"] {"0" | W:(1234...,0123...)} [{"." W:(0123...)}] [{W:(eE) W:(0123...,0123...)}]})} | Forward: Group:({{{{{Suppress:("record") Suppress:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} Dict:(Group:({{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} Suppress:("=")} Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({{{["-"] {"0" | W:(1234...,0123...)}} [{"." W:(0123...)}]} [{W:(eE) W:(0123...,0123...)}]})} | Forward: None} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})}}) [, Group:({{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} Suppress:("=")} Forward: {{{{{{{{{quoted string, starting with " ending with " | Combine:({{{["-"] {"0" | W:(1234...,0123...)}} [{"." W:(0123...)}]} [{W:(eE) W:(0123...,0123...)}]})} | Forward: None} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})}})]...)} Suppress:("end")} Suppress:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} Suppress:(";")})} | Group:({{Suppress:("{") [Forward: None [, Forward: None]...]} Suppress:("}")})} | Group:({{Suppress:("(") [Forward: None [, Forward: None]...]} Suppress:(")")})} | {{{Suppress:("SOME") Suppress:("(")} Forward: ...} Suppress:(")")}} | "true"} | "false"} | {{"NONE" Suppress:("(")} Suppress:(")")}} | Combine:(Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: {{{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "."} Forward: ...} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}}} | {W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '}})} Suppress:(")")} | "true" | "false" | {"NONE" Suppress:("(") Suppress:(")")} | Combine:(Forward: {{{W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '} "." Forward: ...} | W:(ABCD...,ABCD...) | quoted string, starting with ' ending with '})} (at char 1), (line:2, col:1)