OMJulia.API
Module OMJulia.API aims to provide a Julia interface to the OpenModelica scripting API. In contrast to sending the scripting api calls directly via sendExpression this API has a Julia-like interface and some level of error handling implemented. This means errors will throw Julia Exception OMJulia.API.ScriptingError instead of only printing to stdout.
Not all OMJulia.API functions are tested and some functions could have slightly different default values compared to the OpenModelica scripting API.
Instead of escaping strings yourself the API interface handles this for you:
sendExpression(omc, "loadFile(\"$(bouncingBallFile)\")")becomes
API.loadFile(omc, bouncingBallFile)Functions
OMJulia.API.buildModel — MethodbuildModel(omc, className;
startTime = 0.0,
stopTime = 1.0,
numberOfIntervals = 500,
tolerance = 1e-6,
method = "",
fileNamePrefix = className,
options = "",
outputFormat = "mat",
variableFilter = ".*",
cflags = "",
simflags = "")Build Modelica model by generating C code and compiling it into an executable simulation. It does not run the simulation!
OMJulia.API.buildModelFMU — MethodbuildModelFMU(omc, className;
version = "2.0",
fmuType = "me",
fileNamePrefix=className,
platforms=["static"],
includeResources = false)Translates a modelica model into a Functional Mockup Unit. The only required argument is the className, while all others have some default values.
OMJulia.API.cd — Functioncd(omc, newWorkingDirectory="")Change directory to the given path newWorkingDirectory (which may be either relative or absolute). Returns the new working directory on success or a message on failure. If the given path is the empty string, the function simply returns the current working directory.
OMJulia.API.closeSimulationResultFile — Method closeSimulationResultFile(omc)Closes the current simulation result file. Only needed by Windows. Windows cannot handle reading and writing to the same file from different processes. To allow OMEdit to make successful simulation again on the same file we must close the file after reading the Simulation Result Variables. Even OMEdit only use this API for Windows.
OMJulia.API.diffSimulationResults — MethoddiffSimulationResults(omc, actualFile, expectedFile, diffPrefix;
relTol = 1e-3,
relTolDiffMinMax = 1e-4,
rangeDelta = 0.002,
vars = String[],
keepEqualResults = false)Compares simulation results.
OMJulia.API.getAvailablePackageVersions — MethodgetAvailablePackageVersions(omc, pkg; version="")Get available package versions of pkg. Lists all available versions of the Buildings library on the OSMC server, starting from the most recent one, in descending order of priority. Note that pre-release versions have lower priority than all other versions.
See OpenModelica scripting API getAvailablePackageVersions or Package Management.
OMJulia.API.getClassNames — MethodgetClassNames(omc;
class_ = "",
recursive = false,
qualified = false,
sort = false,
builtin = false,
showProtected = false,
includeConstants = false)Returns the list of class names defined in the class.
OMJulia.API.getErrorString — MethodgetErrorString(omc, warningsAsErrors = false)Returns the current error message.
OMJulia.API.getInstallationDirectoryPath — MethodgetInstallationDirectoryPath(omc)This returns OPENMODELICAHOME if it is set; on some platforms the default path is returned if it is not set.
See OpenModelica scripting API getInstallationDirectoryPath.
OMJulia.API.getVersion — MethodgetVersion(omc)Returns the version of the Modelica compiler.
OMJulia.API.installPackage — MethodinstallPackage(omc, pkg;
version="",
exactMatch=false)Install package pkg with given version. If version="" try to install most recent version of package. If exactMatch is true install exact version, even if there are more recent backwards.compatible versions available.
See OpenModelica scripting API installPackage or Package Management.
OMJulia.API.instantiateModel — MethodinstantiateModel(omc, className)Instantiates the class and returns the flat Modelica code.
OMJulia.API.linearize — MethodCreates a model with symbolic linearization matrices.
OMJulia.API.loadFile — MethodloadFile(omc, fileName;
encoding = "",
uses = true,
notify = true,
requireExactVersion = false)Load file fileName (*.mo) and merge it with the loaded AST. See OpenModelica scripting API loadFile.
OMJulia.API.loadModel — MethodloadModel(omc, className;
priorityVersion = String[],
notify = false,
languageStandard = "",
requireExactVersion = false)Loads a Modelica library.
OMJulia.API.makeVectorString — MethodmakeVectorString(vec)Add quotes around each string element.
OMJulia.API.readSimulationResult — FunctionreadSimulationResult(omc, filename,
variables = String[],
size = 0)Reads a result file, returning a matrix corresponding to the variables and size given.
OMJulia.API.readSimulationResultSize — MethodreadSimulationResultSize(omc, fileName)The number of intervals that are present in the output file.
OMJulia.API.readSimulationResultVars — MethodreadSimulationResultVars(omc, fileName; readParameters = true, openmodelicaStyle = false)
Returns the variables in the simulation file; you can use val() and plot() commands using these names.
OMJulia.API.setCommandLineOptions — MethodsetCommandLineOptions(omc, option)The input is a regular command-line flag given to OMC, e.g. -d=failtrace or -g=MetaModelica.
OMJulia.API.simulate — Methodsimulate(omc, className;
startTime = 0.0,
stopTime = nothing,
numberOfIntervals = 500,
tolerance = 1e-6,
method = "",
fileNamePrefix=className,
options = "",
outputFormat = "mat",
variableFilter = ".*",
cflags = "",
simflags = "")Simulates a modelica model by generating C code, build it and run the simulation executable.
OMJulia.API.updatePackageIndex — MethodupdatePackageIndex(omc)Update package index list.
The package manager contacts OSMC sersers and updated the internally sotred list of available packages.
See OpenModelica scripting API updatePackageIndex or Package Management.
OMJulia.API.upgradeInstalledPackages — MethodupgradeInstalledPackages(omc; installNewestVersions=true)Installs the latest available version of all installed packages.
See OpenModelica scripting API upgradeInstalledPackages or Package Management.
OMJulia.API.ScriptingError — TypeScriptingError <: ExceptionOpenModelica scripting error with message msg and additional error string from getErrroString.