- Index
- » Users
- » sjoelund.se
- » Profile
Posts
You need to program your own master algorithm probably as I think most FMU masters are not interactive. It depends a bit on what you want to do. Synchronize to real-time? Just set inputs at specific times? Etc...
It was removed from the user's guide because the functionality never really worked
You can perform interactive simulations by using FMI.
apt-get build-dep openmodelica
dponyatov wrote:
Modelica engine triggers only this object recompilation in memory in background thread
That you cannot really do in Modelica since the generated code depends on the full model. (And if you could, you could do the same with GCC generating object-files ready to be linked).
gcc can also run in the background and JIT is not really interesting. LLVM is interesting for other reasons: generating LLVM bitcode in memory instead of going through C-code.
By default, GCC is tuned to the generic architecture, so -msse2 enables instructions. (I think it was only necessary to specify -mfpmath=sse -msse2 on 32-bit x86 though.)
It does not limit SSE3/4 from being used (unless -march=native, etc is given earlier on the command-line). But again, if you want faster code, appending for example -O3 -march=native to the CFLAGS will enable everything your CPU supports.
SSE3/4 is not disabled by setting -mfpmath=sse. The only valid options to that are: 387, sse, or both. -O3 is disabled by default because it typically then takes longer to compile the code than it takes to compile+run the code using -O0. But you can set cflags manually to override it.
Because the dassl code does not work with i387 FPU
Looks like a Dymola error message, so I can't say what is wrong without seeing the model. But I guess it has something to do with:
"Errors or failure to expand vector or matrix expressions."
Likely there is an equation of 25 variables that the compiler fails to expand to scalar equations and is posed in a way that it cannot be handled as a vector equation.
If m is a constant, you can use it to declare an array of size m. Start-values has nothing to do with this. A can be modified in any way you like as long as m is a constant expression (and in some cases parameter expression).
That's because the Modelica specification did not say which parameter expressions are valid as array dimensions (and not all of them are allowed). Use constant expressions instead of parameter expressions if you want less problems.
You would need to read the xml-file (ModelName_init.xml) to figure out the alias relation.
The CSV-file does not output alias variables (variables that are equal to another variable). The MAT-file contains a table that lists which variables are aliases for other variables (so alias variables do not consume additional space / consume more time to output).
Should be written in C, not C++. Solvers we use are ODE solvers, and OMC exports an ODE interface. For QSS solvers, some additional information is needed. There used to be a code generator for this in OMC, but I am unsure of its current status.
They can be opened in OpenModelica, but not OMEdit.
Yes, the warning about impact is normal. It is a package manager for Modelica, and if it is available it is used to provide more packages for loading.
If you have a higher-index problem, you do index reduction in order to get the system down to an ODE. This introduces artificial states, and which variable corresponds to a state can change over time (if I remember correctly).
If you want to select that a variable is always a state, you can do so by setting stateSelect=StateSelect.always for it. Then the tool will always choose it as a state (and it is an error if it cannot do so).
Yes, OMC creates an ODE. If you run the translation with debug-flags, you can get the result:
Code:
-d=backenddaeinfo,stateselection
If you run omc from command-line, add those flags. OMEdit also has a place for compiler flags (Tools->Options->Simulation).
Note that OMC may use dynamic state selection, so you could have multiple variables corresponding to one state...
Check your activity monitor and see if the simulation process is perhaps still running (you can kill it if you want to lose the simulation results).
Also check your firewall since the simulation process and OMEdit communicate via TCP/IP.
It works fine for me in Linux. It displays stack overflow messages in the OMEdit messages window though, so the library is unusable. But there is no crash.
I did post the entire code (put in a file with .mos extension, for example a.mos). And then an instantiateModel(submodel1.model1); or translateModel(submodel1.model1); or buildModel(submodel1.model1);
Then just call the file: omc a.mos
You want to use a mos-script for this use-case, loadFile("modelsRoot/package.mo");
This is an open model: https://github.com/modelica/Modelica/bl … verters.mo
It is shipped with OpenModelica as well (select version=trunk in OMEdit and it will load by default). On Linux you may need to apt-get install omlib-modelica-trunk
If you are using a delayTime of 0.001, you need to set an integration step of 0.001 or smaller, or the results become totally wrong (stepSize needs to be smaller than the smallest delay). However, our Euler seems to be unstable until you reach a step-size of 0.00001. Use our rungekutta solver instead and you will not get instability as easily.
Try reading http://www.ep.liu.se/ecp_article/index. … rticle=049 and you will see how some parameters affect compilation and simulation times.
Loading MSL probably takes most of the time for smaller models (especially on Windows as OMC is not multi-threaded on Windows). There is also some overhead in launching the make and gcc processes on Windows, and linking the run-time, which makes small simulation have a somewhat large cost in time.
If you are using an equation section, note that all loops need to have constant ranges. I suspect you want to use an algorithm section here, or declaring rid as a constant.
I don't agree that the analytical solution is the same as the problem above. It seems to approximate the stop by setting a derivative to zero. Which means that the value which is supposed to be limited will be slightly larger or smaller than the limit.
No, there is no way to make the simulation switch to a different set of equations based on which branch is selected. I also do not agree that it results in a linear equation system even with the knowledge that it is piece-wise linear: you still form an algebraic loop due to being required to check if the boolean conditions changed for the limiter.
The debugger says you get one non-linear system of size 1 unknown (3 torn variables):
f2.u := smooth(0, if add.y > limiter.uMax then limiter.uMax else if add.y < limiter.uMin then limiter.uMin else add.y)
add.u2 := DIVISION(add.y - add.k1 * f1.x_scaled[1], add.k2)
y := (1.0 + -2.0 * f2.a[2]) * f2.x_scaled[1] + 2.0 * f2.u
y + (-f3.a[2]) * f3.x_scaled[1] - add.u2 (residual)
add.y is the unknown in this case. Re-ordering the equations does not work.
Are you using the Modelica standard library, but did not load it in your command-line omc?
It should not matter where you put the package.mo file. But it looks like you are trying to insert into the middle of BioChem? That should not be possible. Or you could try to open BioChem/package.mo perhaps?
What kind of errors do you get?
Yes, the nightly does work. The 1.9.3 release will not work on Wily though.
Looks to be up to me. Tested with my home machine as well to make sure it's not a corporate firewall blocking it.
It is also possible to use setCFlags(getCFlags() + " -Os") to optimize the compiled code (default is -O0).
I am working on it. Wily has lots of problems with the installed g++ ld and cross-compilation. The i386 and amd64 builds are working and you can use the source package to build the deb-files yourself if you wish.
Hmmm... How did you manage to bootstrap OMC if the compiler dylib cannot be loaded?
Seems to be: Simulation Failed. Model: Modelica.Mechanics.Translational.Examples.Oscillator does not exist! Please load it first before simulation.
Did you just do make omc, and skip make omlibrary-core in OpenModelica.git?
1. PDF logs are hard to read
2. The config.log for OMCompiler is more interesting than the config.log for OpenModelica
3. I need the output of one (or more) of the failed tests. Something like testsuite/simulation/libraries/msl22/Mechanics/Oscillator2.mos.fail_log
4. I need the commit hash you used
I suspect buildStaticSourceFMU doesn't work on Windows even though the tests says it works (could be that one of the Windows tests doesn't clean everything up, and then the source test works even though it is using files from the non-source test).
https://test.openmodelica.org/hudson/vi … iluresLink says ~99 tests fail now. So it shouldn't be half (make gitclean might help).
Nah, we run parallel make. OSX is just really slow (2~3x slower than Linux on the same hardware for us), and we clean everything between builds, only build after a successful Linux test, etc. So it simply takes time.
I don't know yet. Our Mac Mini takes ages to run the tests
https://github.com/OpenModelica/OMCompiler/pull/244 probably fixes that.
We simply didn't look for QTDIR before: https://github.com/OpenModelica/OpenMod … bc310acb76
No worries, I'll add (at least the -devel package) to use the qt4 macports group, so it sends the QTDIR env.var to the configure process. So the paths should be fine tomorrow, I hope. The spinning seems to be fixed with https://github.com/OpenModelica/OMCompi … ad5a4ece9; I am currently playing with it to try to make sure everything runs.
Did you try emailing the authors of the paper?
https://build.openmodelica.org/apt/dist … 4/Packages
Code:
Depends: clang, build-essential, gnuplot, xsltproc, libexpat1-dev, libsundials-serial-dev, liblapack-dev, zip, unzip, libdbus-1-dev, omc-common, libomc, libomcsimulation (>= 1.9.4~dev-122-g1ec2d56), libblas3 | libblas.so.3, libc6 (>= 2.2.5), libcolamd2.8.0, libexpat1 (>= 2.0.1), libhwloc5 (>= 1.10.0), liblapack3 | liblapack.so.3, libomniorb4-1 (>= 4.1.6), libomnithread3c2 (>= 4.0.6), libstdc++6 (>= 4.1.1)
Recommends: python-beautifulsoup, omplot, libsaxonb-java
for Windows, add OMDev dependencies (roughly corresponds to clang)
For Windows, you cannot recompile without CORBA, etc. So the dependencies are pretty big. Although you can safely skip qt4-related libraries.
-ldl has no effect when creating a .a-file. You will need to add it to the Library annotation in the Modelica package, or to the OMC linker flags explicitly. Or create a shared object.
Adrian, LIBFLAGS is not an environment variable that controls the linker; LDFLAGS should do the trick.
You can do assert(a <> b, "message");
However, you cannot have two equations for b (b=3, b:=b+1). You also cannot have an algorithm like b := b+1, because this is equivalent to 0 := 1;
Is the file located in modelica://<LibraryName>/Resources/Include, where files are located unless your annotations say otherwise?
I guess you didn't clone the entire repository, but only the glue project.
There are some bugs with event handling and trying to calculate what is a small value to detect events, for example. Some of these kind of values in OM depend on the step size.
The C++ runtime is not a priority of the core development team, but it is used by some of our industrial partners and mostly maintained to support their models. Other models might not work. And yes, it uses a lot of templates and similar, so it needs to re-compile more code than the C runtime every time you run a model.
As for dassl, it sometimes fails if the number of intervals are too many. It works very well in many cases, but not for all problems.
It's an explicit method, so you don't get a solution within an error tolerance. You get whatever accuracy that your stepsize and model gives you. For some models, RK4 works very well. On stiff models, not good at all. You also can get no indication that your error tolerance is violated. The method can be very fast for some models.
Have you tried using a different numerical solver?
Use external "C" functions. Either by using the Library annotation, or by using LoadLibrary calls manually. Or just write C-code directly in Modelica source code.
Real second = mod(time, 60);
Real minute = mod(div(time, 60), 60);
Real hour = mod(div(time, 3600), 24);
Real days = div(time, 3600*24);
Your code is equivalent to saying
Code:
a = 0;
a = 1;
So it has one equation too many. To create things like counters, check some examples at: http://book.xogeny.com/behavior/discrete/sampling/
How do you link against libreadline on your system?
The latest OMC is on git.
Mostly because that's what the Modelica specification says you should do that for pictures. And C89 fopen does not know about modelica://, so you need to fix the paths before you call external "C" functions (which is the only way to read files in Modelica).
The MSL uses no relative file paths for images inside the documentation. They use modelica:// links. And you can use modelica:// links using the loadResource function in MSL to do the same for a table.txt.
It's a Windows/MinGW limitation. The Linux builds are able to cope with spaces in paths.
Missing semicolon.
Yes, but if you want something that runs right now instead of (est.) half a year from now, I do recommend running the Linux version.
If you are using Windows, you should know there is a 3GB RAM limit for 32-bit processes. In order to run larger program, you need to use a 64-bit Linux version of OpenModelica.
Could you provide a model that exhibits this behaviour?
Which output format are you using for the simulation? If it is plt, the entire result-file is stored in memory during simulation.
You need to either "cd %OPENMODELICAHOME%\bin\" or run the command %OPENMODELICAHOME%\bin\omc %OPENMODELICAHOME%\bin\myScript.mos
What error-message did you get? This is very important in order to figure out what you did wrong. Also, what was the contents of the mos-file?
The list of locales depends on your operating system. The "C" locale is simply the POSIX default. It is usually (U.S.) English.
Bug reports go to the issue tracker: https://trac.openmodelica.org/OpenModelica/newticket
For integrating the OMEdit modeling environment with another simulation tool, it should be possible to do https://openmodelica.org/doc/OpenModeli … totalmodel from OMC to create an mo-file that the other tool calls to simulate. Much less functionality that would be necessary.
You should have gotten a compilation error from gcc. Windows does not always return the error, but I think OMEdit saves the compilation log, so look there.
You have u as an output in both functions. Use it as input in one of them.
https://openmodelica.org/doc/OpenModeli … ionresults can reduce the number of output points, but it does not reduce the number of output points for CSV files. You can use the variableFilter option to regex only the two desired variables, or filter the file afterwards.
You can also try some of the dassl options to only output every nth step or simply select a lower number of intervals to simulate: https://openmodelica.org/doc/OpenModeli … nttimegrid
Note that Modelica spec says structs are passed by reference. This means you cannot return them from a function, but need to pass the output as an argument to the function.
Code:
parameter Real startTime(fixed=false);
initial equation
startTime = time;
There is no fixed version of energysystems. Examples of text editors: geany, emacs, vim, notepad++, gedit, kate, programmer's notepad.
Any text editor.
It's a bad connection in the source: C:/OpenModelica1.9.2/lib/omlibrary/Modelica_EnergyStorages 3.2.1.mo line 723.
Look in the result-file.
Check the source code. It's a connect(SOC, SOC). Silly connection to make, probably from double-clicking a connector by accident.
Because the authors of the M_ES library added stupid connect statements that their Modelica tool did not have warnings for.
You need to use elsewhen. Otherwise, if condition1 and condition2 become true at the same time, you have two different assignments to x.
Use "./configure --without-omc". You are depending on an existing OMC to compile OMC (skipping the bootstrapping process), which while faster sometimes fails due to bug fixes in the compiler being required to compile newer OMC.
Modelica spec says records are passed by pointer. OpenModelica (and your code does not). By passing it as pointer, we could pass it as void* and let C just work. By passing it as struct, you need to compile your external C-code in a separate file (link as a binary library).
Code:
model M
input Real r; // top-level input
end M;
model N
M m; // m.r is not a top-level input
end N;
Modelica.Blocks.Continuous.PID does generate code. If you have top-level inputs in a model, you can generate code for it even if the input is not specified (assumed to be given by the user at run-time).
Well, just simulating in OMEdit will generate the C code (it is used to compile the executable). It should be in whatever temp directory OMEdit uses on Windows. You could also do an FMI Export to get the C-code in a different format.
Any other software will generate different C-code for a Modelica model. And they might generate different C-code depending on which solvers and optimization flags were set (OpenModelica does this as well).
It can be done using mos-scripts and command-line omc. Or you could unblock OMShell from the firewall (which I assume is what is hindering you).
You want a when-equation to count discrete changes. http://book.xogeny.com/behavior/discrete/when/
Code:
when out1 then
x = pre(x) + 1;
end when;
x = x + 1 is a hard equation to satisfy since it is identical to 0 = 1.
Current working directory.
https://openmodelica.org/doc/OpenModeli … buildmodel
Or translateModel, which does the same thing except does not run the makefile to compile the simulation executable. If you only want to generate code for the PID-controller, run the command on the PID-controller instead of the motor.
You specified p1(fixed=false), but provided no initial equation for it (so the model tries to invent an equation for p1 from p3 since p3 has a binding and p1 does not). And p12 does not have a binding (should be p12 = 33). The following should be the model you specify and follows the specification:
Code:
model TestParameterInit
parameter Real p1 = 0;
parameter Real p11 = 100.0;
parameter Real p12 = 33;
parameter Real p2 = if p1 > 0 then p11 else p12;
parameter Real p3 = 3*p1^2;
Real x(start=-1, fixed=true);
equation
der(x) = p3 *x^2 - p2 *x;
end TestParameterInit;
If you get warnings during initialization, results will vary between Modelica tools and versions.
Look for the regular equation of the derivative of the variable. State variables have no equations except for the initial value.
You look for the variable that you plot, double-click it. Double-click the equation that defines it, and it shows what OpenModelica uses to solve for the variable. If you need to expand one of the variables on the rhs, do so manually by looking up those variables as well. You can only really get the statements that OpenModelica used to solve the system without processing the information.
cppruntime you need to configure --with-cppruntime. Note that the boost library needs to be compiled with GCC 5.1 as well or you get the same errors we do: https://test.openmodelica.org/hudson/vi … CC_5.1/52/
We usually run the tests on Linux by using: "cd testsuite/partest && ./runtests.pl" (runs all tests in parallel).
You can check the expected output of different GCC versions at: https://test.openmodelica.org/hudson/view/Linux/ ; clang better in most cases.
You need to run the failing command through gdb to figure out what is going on. It might be as simple as running out of RAM (although the Pi 2 as 1GB, and I have built OMC succesfully on 512MB RAM + 256 swap on armhf).
It is also possible to cross-compile OMC; I did that a while back and got the following deb-files: https://dev.openmodelica.org/~marsj/tmp-armhf/
The svn trunk is not current (current sources are on git).
Also, gcc 5.1 has a fatal bug that causes compilation to fail using -O2 (unless it is a patched 5.1).
The command is loadModel(Modelica)
Yes, "deb http://build.openmodelica.org/apt wheezy nightly" followed by apt-get update should work. Precise does indeed depend on libc 2.15.
Did you try using the Jessie packages on Wheezy? https://build.openmodelica.org/apt/dist … 4/Packages says OMC only depends on libc6 >2.2.5.
As for the libraries, you can use https://github.com/OpenModelica/OMLibraries to build the libraries, or take a library package like https://build.openmodelica.org/librarie … 341.tar.xz and extract it to the omlibrary location.
(Or, since it is Debian, just use the pre-built packages, apt-get install omc omshell-terminal)
You didn't check out the 3rdParty sources (svn:externals). Also note that the development has moved to github: https://github.com/OpenModelica/OpenModelica
For a minimal omc, you could build only the compiler:
https://github.com/OpenModelica/OMCompiler
And OMShell-terminal (mosh) from:
https://github.com/OpenModelica/OMShell
pthread_once_t my_once = PTHREAD_ONCE_INIT;
Or possibly simpler would be to create an inner/outer external object since external objects are created only once. The external object itself could be the shared memory; no keys needed since you just pass around the same pointer to all functions.
That's pretty much an assignment, right?
How to get macports installed is part of the installation instructions for OSX (on openmodelica.org).
We will move to git... some time. There is a trac ticket for it.
Yes, we do accept contributions for any file, even README files.
The linked webpage to the online documentation says nothing about configure.in being deprecated. It even says that configure.in is allowed (just that configure.ac is preferred).
Yes, the Ubuntu/Debian builds are created nightly: https://test.openmodelica.org/hudson/vi … %20builds/
It returns fmiError if I read it correctly. You could just create a model with an unsolvable nonlinear system and try for yourself though.
Then the FMU will return a failure code.
My man-page says:
Generate a configuration script from a TEMPLATE-FILE if given, or `configure.ac' if present, or else `configure.in'.
Nothing about deprecation.
Yes, the download statistics say a lot of people use the Ubuntu and Debian packages. Support emails suggest OSX users are most common, but they have the fewest downloads.
OMOptim and the other clients will be moved to separate repositories when we split the version control.
The README is not so outdated. it works just fine in Ubuntu
The OSX builds are created by running: sudo -n /opt/openmodelica/bin/port -v mpkg openmodelica-$TARGET $CHOSEN_VARIANT || exit 1
And some more to clean, upgrade, upload, etc.
It depends on the OM runtime library, which may be statically or dynamically linked.
It calls the chosen NLS solver in the OM runtime.
I'm fairly sure. Just do --disable-paradiseo and skip OMOptim; I don't think it works anyway (no maintainer, no tester).
Which version of paradiseo are you using? OMOptim requires the version that only compiles with g++-4.4 (1.3-beta2). Note that the 1.3 final release does not work...
Code:
paradiseo: /usr/include/paradiseo/EO.h
paradiseo: /usr/include/paradiseo/PO.h
paradiseo: /usr/include/paradiseo/acceptCrit/moAcceptanceCriterion.h
paradiseo: /usr/include/paradiseo/acceptCrit/moAlwaysAcceptCrit.h
paradiseo: /usr/include/paradiseo/acceptCrit/moBetterAcceptCrit.h
paradiseo: /usr/include/paradiseo/algo/moDummyLS.h
paradiseo: /usr/include/paradiseo/algo/moFirstImprHC.h
paradiseo: /usr/include/paradiseo/algo/moILS.h
paradiseo: /usr/include/paradiseo/algo/moLocalSearch.h
paradiseo: /usr/include/paradiseo/algo/moMetropolisHasting.h
paradiseo: /usr/include/paradiseo/algo/moNeutralHC.h
paradiseo: /usr/include/paradiseo/algo/moRandomBestHC.h
paradiseo: /usr/include/paradiseo/algo/moRandomNeutralWalk.h
paradiseo: /usr/include/paradiseo/algo/moRandomSearch.h
paradiseo: /usr/include/paradiseo/algo/moRandomWalk.h
paradiseo: /usr/include/paradiseo/algo/moSA.h
paradiseo: /usr/include/paradiseo/algo/moSimpleHC.h
paradiseo: /usr/include/paradiseo/algo/moTS.h
paradiseo: /usr/include/paradiseo/algo/moeoASEEA.h
paradiseo: /usr/include/paradiseo/algo/moeoAlgo.h
paradiseo: /usr/include/paradiseo/algo/moeoEA.h
paradiseo: /usr/include/paradiseo/algo/moeoEasyEA.h
paradiseo: /usr/include/paradiseo/algo/moeoIBEA.h
paradiseo: /usr/include/paradiseo/algo/moeoMOGA.h
paradiseo: /usr/include/paradiseo/algo/moeoNSGA.h
paradiseo: /usr/include/paradiseo/algo/moeoNSGAII.h
paradiseo: /usr/include/paradiseo/algo/moeoPLS1.h
paradiseo: /usr/include/paradiseo/algo/moeoPLS2.h
paradiseo: /usr/include/paradiseo/algo/moeoPopAlgo.h
paradiseo: /usr/include/paradiseo/algo/moeoPopLS.h
paradiseo: /usr/include/paradiseo/algo/moeoSEEA.h
paradiseo: /usr/include/paradiseo/algo/moeoSPEA2.h
paradiseo: /usr/include/paradiseo/algo/moeoUnifiedDominanceBasedLS.h
paradiseo: /usr/include/paradiseo/apply.h
paradiseo: /usr/include/paradiseo/archive/moeoArchive.h
paradiseo: /usr/include/paradiseo/archive/moeoBoundedArchive.h
paradiseo: /usr/include/paradiseo/archive/moeoEpsilonHyperboxArchive.h
paradiseo: /usr/include/paradiseo/archive/moeoFitDivBoundedArchive.h
paradiseo: /usr/include/paradiseo/archive/moeoFixedSizeArchive.h
paradiseo: /usr/include/paradiseo/archive/moeoImprOnlyBoundedArchive.h
paradiseo: /usr/include/paradiseo/archive/moeoSPEA2Archive.h
paradiseo: /usr/include/paradiseo/archive/moeoUnboundedArchive.h
paradiseo: /usr/include/paradiseo/comparator/moComparator.h
paradiseo: /usr/include/paradiseo/comparator/moNeighborComparator.h
paradiseo: /usr/include/paradiseo/comparator/moSolComparator.h
paradiseo: /usr/include/paradiseo/comparator/moSolNeighborComparator.h
paradiseo: /usr/include/paradiseo/comparator/moeoAggregativeComparator.h
paradiseo: /usr/include/paradiseo/comparator/moeoComparator.h
paradiseo: /usr/include/paradiseo/comparator/moeoDiversityThenFitnessComparator.h
paradiseo: /usr/include/paradiseo/comparator/moeoEpsilonObjectiveVectorComparator.h
paradiseo: /usr/include/paradiseo/comparator/moeoFitnessComparator.h
paradiseo: /usr/include/paradiseo/comparator/moeoFitnessThenDiversityComparator.h
paradiseo: /usr/include/paradiseo/comparator/moeoGDominanceObjectiveVectorComparator.h
paradiseo: /usr/include/paradiseo/comparator/moeoObjectiveObjectiveVectorComparator.h
paradiseo: /usr/include/paradiseo/comparator/moeoObjectiveVectorComparator.h
paradiseo: /usr/include/paradiseo/comparator/moeoOneObjectiveComparator.h
paradiseo: /usr/include/paradiseo/comparator/moeoParetoObjectiveVectorComparator.h
paradiseo: /usr/include/paradiseo/comparator/moeoPtrComparator.h
paradiseo: /usr/include/paradiseo/comparator/moeoStrictObjectiveVectorComparator.h
paradiseo: /usr/include/paradiseo/comparator/moeoWeakObjectiveVectorComparator.h
paradiseo: /usr/include/paradiseo/continuator/moAverageFitnessNeighborStat.h
paradiseo: /usr/include/paradiseo/continuator/moBestSoFarStat.h
paradiseo: /usr/include/paradiseo/continuator/moCheckpoint.h
paradiseo: /usr/include/paradiseo/continuator/moCombinedContinuator.h
paradiseo: /usr/include/paradiseo/continuator/moContinuator.h
paradiseo: /usr/include/paradiseo/continuator/moCounterMonitorSaver.h
paradiseo: /usr/include/paradiseo/continuator/moCounterStat.h
paradiseo: /usr/include/paradiseo/continuator/moDistanceStat.h
paradiseo: /usr/include/paradiseo/continuator/moFitContinuator.h
paradiseo: /usr/include/paradiseo/continuator/moFitnessStat.h
paradiseo: /usr/include/paradiseo/continuator/moFullEvalContinuator.h
paradiseo: /usr/include/paradiseo/continuator/moIterContinuator.h
paradiseo: /usr/include/paradiseo/continuator/moMaxNeighborStat.h
paradiseo: /usr/include/paradiseo/continuator/moMinNeighborStat.h
paradiseo: /usr/include/paradiseo/continuator/moMinusOneCounterStat.h
paradiseo: /usr/include/paradiseo/continuator/moNbInfNeighborStat.h
paradiseo: /usr/include/paradiseo/continuator/moNbSupNeighborStat.h
paradiseo: /usr/include/paradiseo/continuator/moNeighborBestStat.h
paradiseo: /usr/include/paradiseo/continuator/moNeighborEvalContinuator.h
paradiseo: /usr/include/paradiseo/continuator/moNeighborFitnessStat.h
paradiseo: /usr/include/paradiseo/continuator/moNeighborhoodStat.h
paradiseo: /usr/include/paradiseo/continuator/moNeutralDegreeNeighborStat.h
paradiseo: /usr/include/paradiseo/continuator/moSecondMomentNeighborStat.h
paradiseo: /usr/include/paradiseo/continuator/moSizeNeighborStat.h
paradiseo: /usr/include/paradiseo/continuator/moSolutionStat.h
paradiseo: /usr/include/paradiseo/continuator/moStat.h
paradiseo: /usr/include/paradiseo/continuator/moStatBase.h
paradiseo: /usr/include/paradiseo/continuator/moStatFromStat.h
paradiseo: /usr/include/paradiseo/continuator/moStdFitnessNeighborStat.h
paradiseo: /usr/include/paradiseo/continuator/moTimeContinuator.h
paradiseo: /usr/include/paradiseo/continuator/moTrueContinuator.h
paradiseo: /usr/include/paradiseo/continuator/moVectorMonitor.h
paradiseo: /usr/include/paradiseo/coolingSchedule/moCoolingSchedule.h
paradiseo: /usr/include/paradiseo/coolingSchedule/moDynSpanCoolingSchedule.h
paradiseo: /usr/include/paradiseo/coolingSchedule/moSimpleCoolingSchedule.h
paradiseo: /usr/include/paradiseo/core/MOEO.h
paradiseo: /usr/include/paradiseo/core/moeoBitVector.h
paradiseo: /usr/include/paradiseo/core/moeoEvalFunc.h
paradiseo: /usr/include/paradiseo/core/moeoIntVector.h
paradiseo: /usr/include/paradiseo/core/moeoObjectiveVector.h
paradiseo: /usr/include/paradiseo/core/moeoObjectiveVectorTraits.h
paradiseo: /usr/include/paradiseo/core/moeoRealObjectiveVector.h
paradiseo: /usr/include/paradiseo/core/moeoRealVector.h
paradiseo: /usr/include/paradiseo/core/moeoVector.h
paradiseo: /usr/include/paradiseo/distance/moeoDistance.h
paradiseo: /usr/include/paradiseo/distance/moeoDistanceMatrix.h
paradiseo: /usr/include/paradiseo/distance/moeoEuclideanDistance.h
paradiseo: /usr/include/paradiseo/distance/moeoManhattanDistance.h
paradiseo: /usr/include/paradiseo/distance/moeoNormalizedDistance.h
paradiseo: /usr/include/paradiseo/distance/moeoObjSpaceDistance.h
paradiseo: /usr/include/paradiseo/diversity/moeoCrowdingDiversityAssignment.h
paradiseo: /usr/include/paradiseo/diversity/moeoDiversityAssignment.h
paradiseo: /usr/include/paradiseo/diversity/moeoDummyDiversityAssignment.h
paradiseo: /usr/include/paradiseo/diversity/moeoFrontByFrontCrowdingDiversityAssignment.h
paradiseo: /usr/include/paradiseo/diversity/moeoFrontByFrontSharingDiversityAssignment.h
paradiseo: /usr/include/paradiseo/diversity/moeoNearestNeighborDiversityAssignment.h
paradiseo: /usr/include/paradiseo/diversity/moeoSharingDiversityAssignment.h
paradiseo: /usr/include/paradiseo/do/make_algo_easea.h
paradiseo: /usr/include/paradiseo/do/make_algo_pareto.h
paradiseo: /usr/include/paradiseo/do/make_algo_scalar.h
paradiseo: /usr/include/paradiseo/do/make_checkpoint.h
paradiseo: /usr/include/paradiseo/do/make_checkpoint_FDC.h
paradiseo: /usr/include/paradiseo/do/make_checkpoint_assembled.h
paradiseo: /usr/include/paradiseo/do/make_checkpoint_moeo.h
paradiseo: /usr/include/paradiseo/do/make_checkpoint_pareto.h
paradiseo: /usr/include/paradiseo/do/make_continue.h
paradiseo: /usr/include/paradiseo/do/make_continue_moeo.h
paradiseo: /usr/include/paradiseo/do/make_continue_pareto.h
paradiseo: /usr/include/paradiseo/do/make_ea_moeo.h
paradiseo: /usr/include/paradiseo/do/make_general_replacement.h
paradiseo: /usr/include/paradiseo/do/make_pop.h
paradiseo: /usr/include/paradiseo/do/make_run.h
paradiseo: /usr/include/paradiseo/eo
paradiseo: /usr/include/paradiseo/eoAlgo.h
paradiseo: /usr/include/paradiseo/eoBinaryFlight.h
paradiseo: /usr/include/paradiseo/eoBitParticle.h
paradiseo: /usr/include/paradiseo/eoBreed.h
paradiseo: /usr/include/paradiseo/eoCellularEasyEA.h
paradiseo: /usr/include/paradiseo/eoCloneOps.h
paradiseo: /usr/include/paradiseo/eoCombinedContinue.h
paradiseo: /usr/include/paradiseo/eoCombinedInit.h
paradiseo: /usr/include/paradiseo/eoConstrictedVariableWeightVelocity.h
paradiseo: /usr/include/paradiseo/eoConstrictedVelocity.h
paradiseo: /usr/include/paradiseo/eoContinue.h
paradiseo: /usr/include/paradiseo/eoCounter.h
paradiseo: /usr/include/paradiseo/eoCtrlCContinue.h
paradiseo: /usr/include/paradiseo/eoDetSelect.h
paradiseo: /usr/include/paradiseo/eoDetTournamentSelect.h
paradiseo: /usr/include/paradiseo/eoDistribUpdater.h
paradiseo: /usr/include/paradiseo/eoDistribution.h
paradiseo: /usr/include/paradiseo/eoDominanceMap.h
paradiseo: /usr/include/paradiseo/eoEDA.h
paradiseo: /usr/include/paradiseo/eoEasyEA.h
paradiseo: /usr/include/paradiseo/eoEasyPSO.h
paradiseo: /usr/include/paradiseo/eoEvalContinue.h
paradiseo: /usr/include/paradiseo/eoEvalFunc.h
paradiseo: /usr/include/paradiseo/eoEvalFuncCounter.h
paradiseo: /usr/include/paradiseo/eoEvalFuncPtr.h
paradiseo: /usr/include/paradiseo/eoExtendedVelocity.h
paradiseo: /usr/include/paradiseo/eoFactory.h
paradiseo: /usr/include/paradiseo/eoFitContinue.h
paradiseo: /usr/include/paradiseo/eoFitnessScalingSelect.h
paradiseo: /usr/include/paradiseo/eoFixedInertiaWeightedVelocity.h
paradiseo: /usr/include/paradiseo/eoFlOrBinOp.h
paradiseo: /usr/include/paradiseo/eoFlOrMonOp.h
paradiseo: /usr/include/paradiseo/eoFlOrQuadOp.h
paradiseo: /usr/include/paradiseo/eoFlight.h
paradiseo: /usr/include/paradiseo/eoFunctor.h
paradiseo: /usr/include/paradiseo/eoFunctorStore.h
paradiseo: /usr/include/paradiseo/eoG3Replacement.h
paradiseo: /usr/include/paradiseo/eoGaussRealWeightUp.h
paradiseo: /usr/include/paradiseo/eoGenContinue.h
paradiseo: /usr/include/paradiseo/eoGenOp.h
paradiseo: /usr/include/paradiseo/eoGeneralBreeder.h
paradiseo: /usr/include/paradiseo/eoInit.h
paradiseo: /usr/include/paradiseo/eoInitializer.h
paradiseo: /usr/include/paradiseo/eoInt.h
paradiseo: /usr/include/paradiseo/eoIntegerVelocity.h
paradiseo: /usr/include/paradiseo/eoInvalidateOps.h
paradiseo: /usr/include/paradiseo/eoLinearDecreasingWeightUp.h
paradiseo: /usr/include/paradiseo/eoLinearFitScaling.h
paradiseo: /usr/include/paradiseo/eoLinearTopology.h
paradiseo: /usr/include/paradiseo/eoMGGReplacement.h
paradiseo: /usr/include/paradiseo/eoMerge.h
paradiseo: /usr/include/paradiseo/eoMergeReduce.h
paradiseo: /usr/include/paradiseo/eoNDSorting.h
paradiseo: /usr/include/paradiseo/eoNeighborhood.h
paradiseo: /usr/include/paradiseo/eoObject.h
paradiseo: /usr/include/paradiseo/eoOneToOneBreeder.h
paradiseo: /usr/include/paradiseo/eoOp.h
paradiseo: /usr/include/paradiseo/eoOpContainer.h
paradiseo: /usr/include/paradiseo/eoOpSelMason.h
paradiseo: /usr/include/paradiseo/eoOrderXover.h
paradiseo: /usr/include/paradiseo/eoPSO.h
paradiseo: /usr/include/paradiseo/eoParetoConstraintFitness.h
paradiseo: /usr/include/paradiseo/eoParetoFitness.h
paradiseo: /usr/include/paradiseo/eoParetoRanking.h
paradiseo: /usr/include/paradiseo/eoParticleBestInit.h
paradiseo: /usr/include/paradiseo/eoParticleFullInitializer.h
paradiseo: /usr/include/paradiseo/eoPerf2Worth.h
paradiseo: /usr/include/paradiseo/eoPeriodicContinue.h
paradiseo: /usr/include/paradiseo/eoPersistent.h
paradiseo: /usr/include/paradiseo/eoPop.h
paradiseo: /usr/include/paradiseo/eoPopAlgo.h
paradiseo: /usr/include/paradiseo/eoPopEvalFunc.h
paradiseo: /usr/include/paradiseo/eoPopulator.h
paradiseo: /usr/include/paradiseo/eoPrintable.h
paradiseo: /usr/include/paradiseo/eoPropGAGenOp.h
paradiseo: /usr/include/paradiseo/eoProportionalCombinedOp.h
paradiseo: /usr/include/paradiseo/eoProportionalSelect.h
paradiseo: /usr/include/paradiseo/eoRandomRealWeightUp.h
paradiseo: /usr/include/paradiseo/eoRandomSelect.h
paradiseo: /usr/include/paradiseo/eoRanking.h
paradiseo: /usr/include/paradiseo/eoRankingSelect.h
paradiseo: /usr/include/paradiseo/eoRealBoundModifier.h
paradiseo: /usr/include/paradiseo/eoRealParticle.h
paradiseo: /usr/include/paradiseo/eoReduce.h
paradiseo: /usr/include/paradiseo/eoReduceMerge.h
paradiseo: /usr/include/paradiseo/eoReduceMergeReduce.h
paradiseo: /usr/include/paradiseo/eoReduceSplit.h
paradiseo: /usr/include/paradiseo/eoReplacement.h
paradiseo: /usr/include/paradiseo/eoRingTopology.h
paradiseo: /usr/include/paradiseo/eoSGA.h
paradiseo: /usr/include/paradiseo/eoSGAGenOp.h
paradiseo: /usr/include/paradiseo/eoSGATransform.h
paradiseo: /usr/include/paradiseo/eoSTLFunctor.h
paradiseo: /usr/include/paradiseo/eoScalarFitness.h
paradiseo: /usr/include/paradiseo/eoScalarFitnessAssembled.h
paradiseo: /usr/include/paradiseo/eoSecondsElapsedContinue.h
paradiseo: /usr/include/paradiseo/eoSelect.h
paradiseo: /usr/include/paradiseo/eoSelectFactory.h
paradiseo: /usr/include/paradiseo/eoSelectFromWorth.h
paradiseo: /usr/include/paradiseo/eoSelectMany.h
paradiseo: /usr/include/paradiseo/eoSelectNumber.h
paradiseo: /usr/include/paradiseo/eoSelectOne.h
paradiseo: /usr/include/paradiseo/eoSelectPerc.h
paradiseo: /usr/include/paradiseo/eoSequentialSelect.h
paradiseo: /usr/include/paradiseo/eoSharing.h
paradiseo: /usr/include/paradiseo/eoSharingSelect.h
paradiseo: /usr/include/paradiseo/eoShiftMutation.h
paradiseo: /usr/include/paradiseo/eoSigBinaryFlight.h
paradiseo: /usr/include/paradiseo/eoSimpleEDA.h
paradiseo: /usr/include/paradiseo/eoSocialNeighborhood.h
paradiseo: /usr/include/paradiseo/eoStandardFlight.h
paradiseo: /usr/include/paradiseo/eoStandardVelocity.h
paradiseo: /usr/include/paradiseo/eoStarTopology.h
paradiseo: /usr/include/paradiseo/eoSteadyFitContinue.h
paradiseo: /usr/include/paradiseo/eoStochTournamentSelect.h
paradiseo: /usr/include/paradiseo/eoStochasticUniversalSelect.h
paradiseo: /usr/include/paradiseo/eoSurviveAndDie.h
paradiseo: /usr/include/paradiseo/eoSwapMutation.h
paradiseo: /usr/include/paradiseo/eoSyncEasyPSO.h
paradiseo: /usr/include/paradiseo/eoTimeContinue.h
paradiseo: /usr/include/paradiseo/eoTopology.h
paradiseo: /usr/include/paradiseo/eoTransform.h
paradiseo: /usr/include/paradiseo/eoTruncSelect.h
paradiseo: /usr/include/paradiseo/eoTruncatedSelectMany.h
paradiseo: /usr/include/paradiseo/eoTruncatedSelectOne.h
paradiseo: /usr/include/paradiseo/eoTwoOptMutation.h
paradiseo: /usr/include/paradiseo/eoVariableInertiaWeightedVelocity.h
paradiseo: /usr/include/paradiseo/eoVariableLengthCrossover.h
paradiseo: /usr/include/paradiseo/eoVariableLengthMutation.h
paradiseo: /usr/include/paradiseo/eoVector.h
paradiseo: /usr/include/paradiseo/eoVectorParticle.h
paradiseo: /usr/include/paradiseo/eoVelocity.h
paradiseo: /usr/include/paradiseo/eoVelocityInit.h
paradiseo: /usr/include/paradiseo/eoWeightUpdater.h
paradiseo: /usr/include/paradiseo/es.h
paradiseo: /usr/include/paradiseo/es/CMAParams.h
paradiseo: /usr/include/paradiseo/es/CMAState.h
paradiseo: /usr/include/paradiseo/es/eig.h
paradiseo: /usr/include/paradiseo/es/eoCMABreed.h
paradiseo: /usr/include/paradiseo/es/eoCMAInit.h
paradiseo: /usr/include/paradiseo/es/eoEsChromInit.h
paradiseo: /usr/include/paradiseo/es/eoEsFull.h
paradiseo: /usr/include/paradiseo/es/eoEsGlobalXover.h
paradiseo: /usr/include/paradiseo/es/eoEsMutate.h
paradiseo: /usr/include/paradiseo/es/eoEsMutationInit.h
paradiseo: /usr/include/paradiseo/es/eoEsSimple.h
paradiseo: /usr/include/paradiseo/es/eoEsStandardXover.h
paradiseo: /usr/include/paradiseo/es/eoEsStdev.h
paradiseo: /usr/include/paradiseo/es/eoNormalMutation.h
paradiseo: /usr/include/paradiseo/es/eoReal.h
paradiseo: /usr/include/paradiseo/es/eoRealAtomXover.h
paradiseo: /usr/include/paradiseo/es/eoRealInitBounded.h
paradiseo: /usr/include/paradiseo/es/eoRealOp.h
paradiseo: /usr/include/paradiseo/es/eoSBXcross.h
paradiseo: /usr/include/paradiseo/es/make_es.h
paradiseo: /usr/include/paradiseo/es/make_genotype_real.h
paradiseo: /usr/include/paradiseo/es/make_op.h
paradiseo: /usr/include/paradiseo/es/make_op_es.h
paradiseo: /usr/include/paradiseo/es/make_op_real.h
paradiseo: /usr/include/paradiseo/es/make_real.h
paradiseo: /usr/include/paradiseo/es/matrices.h
paradiseo: /usr/include/paradiseo/eval/moDummyEval.h
paradiseo: /usr/include/paradiseo/eval/moEval.h
paradiseo: /usr/include/paradiseo/eval/moEvalCounter.h
paradiseo: /usr/include/paradiseo/eval/moFullEvalByCopy.h
paradiseo: /usr/include/paradiseo/eval/moFullEvalByModif.h
paradiseo: /usr/include/paradiseo/explorer/moDummyExplorer.h
paradiseo: /usr/include/paradiseo/explorer/moFirstImprHCexplorer.h
paradiseo: /usr/include/paradiseo/explorer/moILSexplorer.h
paradiseo: /usr/include/paradiseo/explorer/moMetropolisHastingExplorer.h
paradiseo: /usr/include/paradiseo/explorer/moNeighborhoodExplorer.h
paradiseo: /usr/include/paradiseo/explorer/moNeutralHCexplorer.h
paradiseo: /usr/include/paradiseo/explorer/moRandomBestHCexplorer.h
paradiseo: /usr/include/paradiseo/explorer/moRandomNeutralWalkExplorer.h
paradiseo: /usr/include/paradiseo/explorer/moRandomSearchExplorer.h
paradiseo: /usr/include/paradiseo/explorer/moRandomWalkExplorer.h
paradiseo: /usr/include/paradiseo/explorer/moSAexplorer.h
paradiseo: /usr/include/paradiseo/explorer/moSimpleHCexplorer.h
paradiseo: /usr/include/paradiseo/explorer/moTSexplorer.h
paradiseo: /usr/include/paradiseo/explorer/moeoExhaustiveNeighborhoodExplorer.h
paradiseo: /usr/include/paradiseo/explorer/moeoFirstImprovingNeighborhoodExplorer.h
paradiseo: /usr/include/paradiseo/explorer/moeoNoDesimprovingNeighborhoodExplorer.h
paradiseo: /usr/include/paradiseo/explorer/moeoPopNeighborhoodExplorer.h
paradiseo: /usr/include/paradiseo/explorer/moeoSimpleSubNeighborhoodExplorer.h
paradiseo: /usr/include/paradiseo/explorer/moeoSubNeighborhoodExplorer.h
paradiseo: /usr/include/paradiseo/fitness/moeoAggregationFitnessAssignment.h
paradiseo: /usr/include/paradiseo/fitness/moeoBinaryIndicatorBasedFitnessAssignment.h
paradiseo: /usr/include/paradiseo/fitness/moeoConstraintFitnessAssignment.h
paradiseo: /usr/include/paradiseo/fitness/moeoCriterionBasedFitnessAssignment.h
paradiseo: /usr/include/paradiseo/fitness/moeoDominanceBasedFitnessAssignment.h
paradiseo: /usr/include/paradiseo/fitness/moeoDominanceCountFitnessAssignment.h
paradiseo: /usr/include/paradiseo/fitness/moeoDominanceCountRankingFitnessAssignment.h
paradiseo: /usr/include/paradiseo/fitness/moeoDominanceDepthFitnessAssignment.h
paradiseo: /usr/include/paradiseo/fitness/moeoDominanceRankFitnessAssignment.h
paradiseo: /usr/include/paradiseo/fitness/moeoDummyFitnessAssignment.h
paradiseo: /usr/include/paradiseo/fitness/moeoExpBinaryIndicatorBasedFitnessAssignment.h
paradiseo: /usr/include/paradiseo/fitness/moeoFitnessAssignment.h
paradiseo: /usr/include/paradiseo/fitness/moeoIndicatorBasedFitnessAssignment.h
paradiseo: /usr/include/paradiseo/fitness/moeoReferencePointIndicatorBasedFitnessAssignment.h
paradiseo: /usr/include/paradiseo/fitness/moeoScalarFitnessAssignment.h
paradiseo: /usr/include/paradiseo/fitness/moeoSingleObjectivization.h
paradiseo: /usr/include/paradiseo/fitness/moeoUnaryIndicatorBasedFitnessAssignment.h
paradiseo: /usr/include/paradiseo/ga.h
paradiseo: /usr/include/paradiseo/ga/eoBit.h
paradiseo: /usr/include/paradiseo/ga/eoBitOp.h
paradiseo: /usr/include/paradiseo/ga/eoBitOpFactory.h
paradiseo: /usr/include/paradiseo/ga/eoBoolFlip.h
paradiseo: /usr/include/paradiseo/ga/eoPBILAdditive.h
paradiseo: /usr/include/paradiseo/ga/eoPBILDistrib.h
paradiseo: /usr/include/paradiseo/ga/eoPBILOrg.h
paradiseo: /usr/include/paradiseo/ga/make_PBILdistrib.h
paradiseo: /usr/include/paradiseo/ga/make_PBILupdate.h
paradiseo: /usr/include/paradiseo/ga/make_ga.h
paradiseo: /usr/include/paradiseo/ga/make_genotype_ga.h
paradiseo: /usr/include/paradiseo/ga/make_op.h
paradiseo: /usr/include/paradiseo/gp/eoParseTree.h
paradiseo: /usr/include/paradiseo/gp/eoParseTreeDepthInit.h
paradiseo: /usr/include/paradiseo/gp/eoParseTreeOp.h
paradiseo: /usr/include/paradiseo/gp/eoStParseTreeDepthInit.h
paradiseo: /usr/include/paradiseo/gp/eoStParseTreeOp.h
paradiseo: /usr/include/paradiseo/gp/node_pool.h
paradiseo: /usr/include/paradiseo/gp/parse_tree.h
paradiseo: /usr/include/paradiseo/hybridization/moeoDMLSGenUpdater.h
paradiseo: /usr/include/paradiseo/hybridization/moeoDMLSMonOp.h
paradiseo: /usr/include/paradiseo/memory/moAspiration.h
paradiseo: /usr/include/paradiseo/memory/moBestImprAspiration.h
paradiseo: /usr/include/paradiseo/memory/moCountMoveMemory.h
paradiseo: /usr/include/paradiseo/memory/moDiversification.h
paradiseo: /usr/include/paradiseo/memory/moDummyDiversification.h
paradiseo: /usr/include/paradiseo/memory/moDummyIntensification.h
paradiseo: /usr/include/paradiseo/memory/moDummyMemory.h
paradiseo: /usr/include/paradiseo/memory/moIndexedVectorTabuList.h
paradiseo: /usr/include/paradiseo/memory/moIntensification.h
paradiseo: /usr/include/paradiseo/memory/moMemory.h
paradiseo: /usr/include/paradiseo/memory/moMonOpDiversification.h
paradiseo: /usr/include/paradiseo/memory/moNeighborVectorTabuList.h
paradiseo: /usr/include/paradiseo/memory/moSolVectorTabuList.h
paradiseo: /usr/include/paradiseo/memory/moTabuList.h
paradiseo: /usr/include/paradiseo/metric/moeoAdditiveEpsilonBinaryMetric.h
paradiseo: /usr/include/paradiseo/metric/moeoContributionMetric.h
paradiseo: /usr/include/paradiseo/metric/moeoDistanceMetric.h
paradiseo: /usr/include/paradiseo/metric/moeoEntropyMetric.h
paradiseo: /usr/include/paradiseo/metric/moeoHyperVolumeDifferenceMetric.h
paradiseo: /usr/include/paradiseo/metric/moeoHyperVolumeMetric.h
paradiseo: /usr/include/paradiseo/metric/moeoHypervolumeBinaryMetric.h
paradiseo: /usr/include/paradiseo/metric/moeoMetric.h
paradiseo: /usr/include/paradiseo/metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h
paradiseo: /usr/include/paradiseo/metric/moeoVecVsVecAdditiveEpsilonBinaryMetric.h
paradiseo: /usr/include/paradiseo/metric/moeoVecVsVecEpsilonBinaryMetric.h
paradiseo: /usr/include/paradiseo/metric/moeoVecVsVecMultiplicativeEpsilonBinaryMetric.h
paradiseo: /usr/include/paradiseo/mo.h
paradiseo: /usr/include/paradiseo/moeo
paradiseo: /usr/include/paradiseo/moo/eoEpsMOEA.h
paradiseo: /usr/include/paradiseo/moo/eoEpsilonArchive.h
paradiseo: /usr/include/paradiseo/moo/eoFrontSorter.h
paradiseo: /usr/include/paradiseo/moo/eoMOEval.h
paradiseo: /usr/include/paradiseo/moo/eoMOFitness.h
paradiseo: /usr/include/paradiseo/moo/eoNSGA_II_Eval.h
paradiseo: /usr/include/paradiseo/moo/eoNSGA_IIa_Eval.h
paradiseo: /usr/include/paradiseo/moo/eoNSGA_I_Eval.h
paradiseo: /usr/include/paradiseo/neighborhood/moBackableNeighbor.h
paradiseo: /usr/include/paradiseo/neighborhood/moDummyNeighbor.h
paradiseo: /usr/include/paradiseo/neighborhood/moDummyNeighborhood.h
paradiseo: /usr/include/paradiseo/neighborhood/moIndexNeighbor.h
paradiseo: /usr/include/paradiseo/neighborhood/moIndexNeighborhood.h
paradiseo: /usr/include/paradiseo/neighborhood/moNeighbor.h
paradiseo: /usr/include/paradiseo/neighborhood/moNeighborhood.h
paradiseo: /usr/include/paradiseo/neighborhood/moOrderNeighborhood.h
paradiseo: /usr/include/paradiseo/neighborhood/moRndNeighborhood.h
paradiseo: /usr/include/paradiseo/neighborhood/moRndWithReplNeighborhood.h
paradiseo: /usr/include/paradiseo/neighborhood/moRndWithoutReplNeighborhood.h
paradiseo: /usr/include/paradiseo/obsolete/eo1d.h
paradiseo: /usr/include/paradiseo/obsolete/eo1dWDistance.h
paradiseo: /usr/include/paradiseo/obsolete/eo2d.h
paradiseo: /usr/include/paradiseo/obsolete/eo2dVector.h
paradiseo: /usr/include/paradiseo/obsolete/eoAtomBitFlip.h
paradiseo: /usr/include/paradiseo/obsolete/eoAtomCreep.h
paradiseo: /usr/include/paradiseo/obsolete/eoAtomRandom.h
paradiseo: /usr/include/paradiseo/obsolete/eoBackInserter.h
paradiseo: /usr/include/paradiseo/obsolete/eoBin.h
paradiseo: /usr/include/paradiseo/obsolete/eoBreeder.h
paradiseo: /usr/include/paradiseo/obsolete/eoCopyElite.h
paradiseo: /usr/include/paradiseo/obsolete/eoDEA.h
paradiseo: /usr/include/paradiseo/obsolete/eoDetTournament.h
paradiseo: /usr/include/paradiseo/obsolete/eoDetTournamentIndiSelector.h
paradiseo: /usr/include/paradiseo/obsolete/eoDetTournamentInserter.h
paradiseo: /usr/include/paradiseo/obsolete/eoDistance.h
paradiseo: /usr/include/paradiseo/obsolete/eoDup.h
paradiseo: /usr/include/paradiseo/obsolete/eoES.h
paradiseo: /usr/include/paradiseo/obsolete/eoESChrom.h
paradiseo: /usr/include/paradiseo/obsolete/eoESFullChrom.h
paradiseo: /usr/include/paradiseo/obsolete/eoESFullMut.h
paradiseo: /usr/include/paradiseo/obsolete/eoEsObjectiveBounds.h
paradiseo: /usr/include/paradiseo/obsolete/eoEvalFuncPtrCnt.h
paradiseo: /usr/include/paradiseo/obsolete/eoEvolutionStrategy.h
paradiseo: /usr/include/paradiseo/obsolete/eoFitTerm.h
paradiseo: /usr/include/paradiseo/obsolete/eoFitness.h
paradiseo: /usr/include/paradiseo/obsolete/eoGOpBreeder.h
paradiseo: /usr/include/paradiseo/obsolete/eoGOpSelector.h
paradiseo: /usr/include/paradiseo/obsolete/eoGenTerm.h
paradiseo: /usr/include/paradiseo/obsolete/eoGeneration.h
paradiseo: /usr/include/paradiseo/obsolete/eoGenericBinOp.h
paradiseo: /usr/include/paradiseo/obsolete/eoGenericMonOp.h
paradiseo: /usr/include/paradiseo/obsolete/eoGenericQuadOp.h
paradiseo: /usr/include/paradiseo/obsolete/eoID.h
paradiseo: /usr/include/paradiseo/obsolete/eoInclusion.h
paradiseo: /usr/include/paradiseo/obsolete/eoIndiSelector.h
paradiseo: /usr/include/paradiseo/obsolete/eoInplaceTransform.h
paradiseo: /usr/include/paradiseo/obsolete/eoInserter.h
paradiseo: /usr/include/paradiseo/obsolete/eoInsertion.h
paradiseo: /usr/include/paradiseo/obsolete/eoKill.h
paradiseo: /usr/include/paradiseo/obsolete/eoLottery.h
paradiseo: /usr/include/paradiseo/obsolete/eoMutation.h
paradiseo: /usr/include/paradiseo/obsolete/eoNegExp.h
paradiseo: /usr/include/paradiseo/obsolete/eoNonUniform.h
paradiseo: /usr/include/paradiseo/obsolete/eoNormal.h
paradiseo: /usr/include/paradiseo/obsolete/eoOpFactory.h
paradiseo: /usr/include/paradiseo/obsolete/eoOpSelector.h
paradiseo: /usr/include/paradiseo/obsolete/eoParser.h
paradiseo: /usr/include/paradiseo/obsolete/eoParserUtils.h
paradiseo: /usr/include/paradiseo/obsolete/eoPopOps.h
paradiseo: /usr/include/paradiseo/obsolete/eoProblem.h
paradiseo: /usr/include/paradiseo/obsolete/eoProportional.h
paradiseo: /usr/include/paradiseo/obsolete/eoProportionalGOpSel.h
paradiseo: /usr/include/paradiseo/obsolete/eoProportionalOpSel.h
paradiseo: /usr/include/paradiseo/obsolete/eoRandomBreed.h
paradiseo: /usr/include/paradiseo/obsolete/eoRandomIndiSelector.h
paradiseo: /usr/include/paradiseo/obsolete/eoRandomSelect.h
paradiseo: /usr/include/paradiseo/obsolete/eoRank.h
paradiseo: /usr/include/paradiseo/obsolete/eoScheme.h
paradiseo: /usr/include/paradiseo/obsolete/eoSelectRandom.h
paradiseo: /usr/include/paradiseo/obsolete/eoSequentialGOpSel.h
paradiseo: /usr/include/paradiseo/obsolete/eoSimpleDEA.h
paradiseo: /usr/include/paradiseo/obsolete/eoSteadyStateEA.h
paradiseo: /usr/include/paradiseo/obsolete/eoSteadyStateInserter.h
paradiseo: /usr/include/paradiseo/obsolete/eoSteadyStateTransform.h
paradiseo: /usr/include/paradiseo/obsolete/eoStochTournament.h
paradiseo: /usr/include/paradiseo/obsolete/eoStochTournamentInserter.h
paradiseo: /usr/include/paradiseo/obsolete/eoStringMutation.h
paradiseo: /usr/include/paradiseo/obsolete/eoTerm.h
paradiseo: /usr/include/paradiseo/obsolete/eoTournament.h
paradiseo: /usr/include/paradiseo/obsolete/eoTranspose.h
paradiseo: /usr/include/paradiseo/obsolete/eoUniformXOver.h
paradiseo: /usr/include/paradiseo/obsolete/eoVector.h
paradiseo: /usr/include/paradiseo/obsolete/eoWrappedOps.h
paradiseo: /usr/include/paradiseo/obsolete/eoXOver2.h
paradiseo: /usr/include/paradiseo/other/eoExternalEO.h
paradiseo: /usr/include/paradiseo/other/eoExternalOpFunctions.h
paradiseo: /usr/include/paradiseo/other/eoString.h
paradiseo: /usr/include/paradiseo/other/external_eo
paradiseo: /usr/include/paradiseo/perturb/moLocalSearchInit.h
paradiseo: /usr/include/paradiseo/perturb/moMonOpPerturb.h
paradiseo: /usr/include/paradiseo/perturb/moNeighborhoodPerturb.h
paradiseo: /usr/include/paradiseo/perturb/moPerturbation.h
paradiseo: /usr/include/paradiseo/perturb/moRestartPerturb.h
paradiseo: /usr/include/paradiseo/perturb/moSolInit.h
paradiseo: /usr/include/paradiseo/problems/bitString/moBitNeighbor.h
paradiseo: /usr/include/paradiseo/problems/eval/moMaxSATincrEval.h
paradiseo: /usr/include/paradiseo/problems/eval/moOneMaxIncrEval.h
paradiseo: /usr/include/paradiseo/problems/eval/moQAPIncrEval.h
paradiseo: /usr/include/paradiseo/problems/eval/moRoyalRoadIncrEval.h
paradiseo: /usr/include/paradiseo/problems/eval/oneMaxFullEval.h
paradiseo: /usr/include/paradiseo/problems/permutation/moIndexedSwapNeighbor.h
paradiseo: /usr/include/paradiseo/problems/permutation/moShiftNeighbor.h
paradiseo: /usr/include/paradiseo/problems/permutation/moSwapNeighbor.h
paradiseo: /usr/include/paradiseo/problems/permutation/moSwapNeighborhood.h
paradiseo: /usr/include/paradiseo/pyeo/PyEO.h
paradiseo: /usr/include/paradiseo/pyeo/def_abstract_functor.h
paradiseo: /usr/include/paradiseo/pyeo/pickle.h
paradiseo: /usr/include/paradiseo/pyeo/valueParam.h
paradiseo: /usr/include/paradiseo/replacement/moeoElitistReplacement.h
paradiseo: /usr/include/paradiseo/replacement/moeoEnvironmentalReplacement.h
paradiseo: /usr/include/paradiseo/replacement/moeoGenerationalReplacement.h
paradiseo: /usr/include/paradiseo/replacement/moeoReplacement.h
paradiseo: /usr/include/paradiseo/sampling/moAutocorrelationSampling.h
paradiseo: /usr/include/paradiseo/sampling/moDensityOfStatesSampling.h
paradiseo: /usr/include/paradiseo/sampling/moFDCsampling.h
paradiseo: /usr/include/paradiseo/sampling/moFitnessCloudSampling.h
paradiseo: /usr/include/paradiseo/sampling/moHillClimberSampling.h
paradiseo: /usr/include/paradiseo/sampling/moMHBestFitnessCloudSampling.h
paradiseo: /usr/include/paradiseo/sampling/moMHRndFitnessCloudSampling.h
paradiseo: /usr/include/paradiseo/sampling/moNeutralDegreeSampling.h
paradiseo: /usr/include/paradiseo/sampling/moNeutralWalkSampling.h
paradiseo: /usr/include/paradiseo/sampling/moRndBestFitnessCloudSampling.h
paradiseo: /usr/include/paradiseo/sampling/moRndRndFitnessCloudSampling.h
paradiseo: /usr/include/paradiseo/sampling/moSampling.h
paradiseo: /usr/include/paradiseo/sampling/moStatistics.h
paradiseo: /usr/include/paradiseo/selection/moeoDetArchiveSelect.h
paradiseo: /usr/include/paradiseo/selection/moeoDetTournamentSelect.h
paradiseo: /usr/include/paradiseo/selection/moeoExhaustiveUnvisitedSelect.h
paradiseo: /usr/include/paradiseo/selection/moeoNumberUnvisitedSelect.h
paradiseo: /usr/include/paradiseo/selection/moeoRandomSelect.h
paradiseo: /usr/include/paradiseo/selection/moeoRouletteSelect.h
paradiseo: /usr/include/paradiseo/selection/moeoSelectFromPopAndArch.h
paradiseo: /usr/include/paradiseo/selection/moeoSelectOne.h
paradiseo: /usr/include/paradiseo/selection/moeoSelectors.h
paradiseo: /usr/include/paradiseo/selection/moeoStochTournamentSelect.h
paradiseo: /usr/include/paradiseo/selection/moeoUnvisitedSelect.h
paradiseo: /usr/include/paradiseo/utils/checkpointing
paradiseo: /usr/include/paradiseo/utils/compatibility.h
paradiseo: /usr/include/paradiseo/utils/eoAssembledFitnessStat.h
paradiseo: /usr/include/paradiseo/utils/eoCheckPoint.h
paradiseo: /usr/include/paradiseo/utils/eoData.h
paradiseo: /usr/include/paradiseo/utils/eoDistance.h
paradiseo: /usr/include/paradiseo/utils/eoFDCStat.h
paradiseo: /usr/include/paradiseo/utils/eoFileMonitor.h
paradiseo: /usr/include/paradiseo/utils/eoFileSnapshot.h
paradiseo: /usr/include/paradiseo/utils/eoFuncPtrStat.h
paradiseo: /usr/include/paradiseo/utils/eoGnuplot.h
paradiseo: /usr/include/paradiseo/utils/eoGnuplot1DMonitor.h
paradiseo: /usr/include/paradiseo/utils/eoGnuplot1DSnapshot.h
paradiseo: /usr/include/paradiseo/utils/eoHowMany.h
paradiseo: /usr/include/paradiseo/utils/eoIntBounds.h
paradiseo: /usr/include/paradiseo/utils/eoMOFitnessStat.h
paradiseo: /usr/include/paradiseo/utils/eoMonitor.h
paradiseo: /usr/include/paradiseo/utils/eoParam.h
paradiseo: /usr/include/paradiseo/utils/eoParser.h
paradiseo: /usr/include/paradiseo/utils/eoPopStat.h
paradiseo: /usr/include/paradiseo/utils/eoRNG.h
paradiseo: /usr/include/paradiseo/utils/eoRealBounds.h
paradiseo: /usr/include/paradiseo/utils/eoRealVectorBounds.h
paradiseo: /usr/include/paradiseo/utils/eoRndGenerators.h
paradiseo: /usr/include/paradiseo/utils/eoScalarFitnessStat.h
paradiseo: /usr/include/paradiseo/utils/eoStat.h
paradiseo: /usr/include/paradiseo/utils/eoState.h
paradiseo: /usr/include/paradiseo/utils/eoStdoutMonitor.h
paradiseo: /usr/include/paradiseo/utils/eoTimeCounter.h
paradiseo: /usr/include/paradiseo/utils/eoTimedMonitor.h
paradiseo: /usr/include/paradiseo/utils/eoUniformInit.h
paradiseo: /usr/include/paradiseo/utils/eoUpdatable.h
paradiseo: /usr/include/paradiseo/utils/eoUpdater.h
paradiseo: /usr/include/paradiseo/utils/moeoArchiveObjectiveVectorSavingUpdater.h
paradiseo: /usr/include/paradiseo/utils/moeoArchiveUpdater.h
paradiseo: /usr/include/paradiseo/utils/moeoAverageObjVecStat.h
paradiseo: /usr/include/paradiseo/utils/moeoBestObjVecStat.h
paradiseo: /usr/include/paradiseo/utils/moeoBinaryMetricSavingUpdater.h
paradiseo: /usr/include/paradiseo/utils/moeoConvertPopToObjectiveVectors.h
paradiseo: /usr/include/paradiseo/utils/moeoDominanceMatrix.h
paradiseo: /usr/include/paradiseo/utils/moeoFullEvalByCopy.h
paradiseo: /usr/include/paradiseo/utils/moeoObjVecStat.h
paradiseo: /usr/include/paradiseo/utils/moeoObjectiveVectorNormalizer.h
paradiseo: /usr/include/paradiseo/utils/pipecom.h
paradiseo: /usr/include/paradiseo/utils/rnd_generators.h
paradiseo: /usr/include/paradiseo/utils/selectors.h
paradiseo: /usr/lib/paradiseo/libcma.a
paradiseo: /usr/lib/paradiseo/libeo.a
paradiseo: /usr/lib/paradiseo/libeomoo.a
paradiseo: /usr/lib/paradiseo/libeoutils.a
paradiseo: /usr/lib/paradiseo/libes.a
paradiseo: /usr/lib/paradiseo/libga.a
paradiseo: /usr/lib/paradiseo/libmoeo.a
paradiseo: /usr/share/doc/paradiseo/changelog.Debian.gz
paradiseo: /usr/share/doc/paradiseo/copyright
Yes, your lapack did not find blas With dynamic linking it should be possible to use --with-lapack=-llapack. But of course the lapack so-file needs to be able to find blas if it is dynamically linked.
make clean? Or a log file? The makefiles do not keep any reference to libblas.so.0 anywhere I think.
Some third-party code does (Boehm-GC if I remember correctly)
Verify in the file system that you actually have a symlink /usr/lib/libblas.so. For me, in Ubuntu:
Code:
$ ls -l /usr/lib/libblas.so* /etc/alternatives/libblas.so*
lrwxrwxrwx 1 root root 36 Dec 5 10:38 /etc/alternatives/libblas.so -> /usr/lib/atlas-base/atlas/libblas.so
lrwxrwxrwx 1 root root 38 Dec 5 10:38 /etc/alternatives/libblas.so.3 -> /usr/lib/atlas-base/atlas/libblas.so.3
lrwxrwxrwx 1 root root 38 Dec 5 10:38 /etc/alternatives/libblas.so.3gf -> /usr/lib/atlas-base/atlas/libblas.so.3
lrwxrwxrwx 1 root root 28 Apr 19 2013 /usr/lib/libblas.so -> /etc/alternatives/libblas.so
lrwxrwxrwx 1 root root 30 Apr 19 2013 /usr/lib/libblas.so.3 -> /etc/alternatives/libblas.so.3
lrwxrwxrwx 1 root root 32 Apr 19 2013 /usr/lib/libblas.so.3gf -> /etc/alternatives/libblas.so.3gf
You will need to use --with-lapack="-llapack -lblas" (or leave it out of configure and it will find lapack and blas automatically).
You will need to use --with-lapack="-llapack -lblas" (or leave it out of configure and it will find lapack and blas automatically).
If sudo apt-get install build-essential does not work, you are missing some important ubuntu repository. Did the mirror you are using discontinue support for 13.04? Or did you not enable most repositories? Either way I suggest you download to a version of Ubuntu that still gets security updates.
No, that is only one repository (looks for i386 and amd64 on 64-bit platforms).
Check that you do not have several omc repositories active at the same time:
$ apt-cache policy | grep openmodelica
Otherwise, try sudo apt-get install omc and see which packages it depends on that you do not have access to. Note that 13.04 (raring) reached end-of-life support January 27, 2014. OpenModelica does not build new packages for it, and the old ones might have been broken unintentionally due to removing some package that was thought to be unused.
Use getErrorString() after the loadFile and buildModel commands. Use ./BouncingBall as I expect your PATH does not contain ./ in it.
Of course. Read up on regular expressions. You will be happy you did. Easiest way should be to just use a_0[[]1[]] or a_0.1. as the string.
No, if the variableFilter matches a variable, it *will* be in the result file. But it is a regular expression, and the above matches body.a_01 since [1] is equivalent to 1.
Adrian, weren't there some thermal demo for Modelica3D that changed the colour based on some measurements? Or am I thinking of something else?
I use geany and make If you prefer Eclipse, use the MDT plugin: https://trac.openmodelica.org/MDT
I suggest using the MSL3 version of ThermoPower within OMEdit since OMEdit does not support MSL2
You can try:
https://build.openmodelica.org/Document … ltime.html
+d=interactive has nothing to do with OMI. Which is very old indeed and no longer part of omc.
So you have apt-get build-dep openmodelica, build-essential, pkg-config? Then make clean and try again
Install all of the dependencies
https://trac.openmodelica.org/OpenModelica/ticket/3061
Read the libgc documentation:
# Note: "syntax error near unexpected token ATOMIC_OPS" reported by configure
# means Autotools pkg.m4 file was not found during aclocal.m4 generation.
apt-file says:
pkg-config: /usr/share/aclocal/pkg.m4
Then choose either --without-paradiseo or install paradiseo.
The README says to run ./configure; that's the only way the build will work.
Are you running ./configure or did you enter a different working directory? OpenModelica will only works correctly when run using the command sequence in the README.
You can use CORBA. It is the same thing as +d=interactive
For the OMI interface, you need a rather old OpenModelica version (2010?). In current OpenModelica versions, I would say creating your own FMI master algorithm is a simpler way of doing real-time control. At least that way you can control root finding for zero-crossing functions which otherwise can take an undefined time to find.
https://build.openmodelica.org/Document … ()%27.html
Or just fill an array before the loop so you can assign each element (much faster; cat is expensive).
Code:
arr := fill(0.0, 6);
for ... loop
arr[i] := ...;
end for;
They are built-in to the language:
https://build.openmodelica.org/Document … ()%27.html
https://build.openmodelica.org/Document … ()%27.html
The result of a for-loop is nothing (a void value). If you want to print all values, you can use print(String(j)), writeFile, etc (note that print prints to stdout, not OMShell). Or construct the entire array.
For example using a for-reduction:
Code:
{i for i in 1:100}
Or as such:
Code:
j:=fill(0,100);for i in 1:100 loop j[i]:=i; end for;j
Yes, but you need to write it on a single line, for example:
j:=0; for i in 1:3 loop j:=j+i; end for; j
An o-file is not a library. You need to make it an a-file called libext_lib.a and put it in the Resources/Library folder of the package. The alternative is to use the Include annotation and write the C-code directly in the mo-file.
Always write your own
PyFMI seems to be able to do what you want though:
check fmu_with_input_function.py - it seems to get the current time as input, so you should be able to read the controls in the GUI from this functions and return the input value to the simulation in progress.
Your FMI master algorithm controls all the inputs of the FMU, so you can can change any input signal to whatever you desire.
The master algorithm can be written in any language that can import shared objects, and if this programming languages allows TCP/IP or similar of course you can send signals to the FMU.
You could also integrate the GUI with the FMU master by directly calling the FMI API from GUI.
The OpenModelica compiler flattens the model to produce a set of equations and variables. Only traces of the object orientation remains as component names are prefixed. It then prints this representation as a string.
They can only be applied to discrete signals.
The only way you can access the previous value of something is by sampling/discrete events in Modelica.
I think you need to look for discontinuities in some way similar to:
Code:
algorithm
v_angle = atan2(v_beta, v_alpha);
if v_angle+n*pi > pi then
n := n - 1;
elsif v_angle+n*pi < -pi then
n := n + 1;
end when;
unwrapped_angle := v_angle - 2*n*pi;
der(v_freq) := unwrapped_angle;
I had another idea using a derivative that followed v_freq and tracked that instead, but I think the above is simpler. I didn't check if it is correct though.
Start OMEdit using the command "OMEdit --OMCLogger=true". Then Tools->OMC CLI will allow you to send commands instead of just reading them.
runScript("file.mos") will run the given mos-script.
For complaints about Modelica_Stategraph2 go to: https://trac.modelica.org/Modelica/newticket and select component _Modelica_Stategraph2. The image links in the library are wrong (relative paths instead of modelica:// URL's).
Modelica 3.3 is being worked on in omc, but not yet OMEdit as far as I know.
parameter fixed=false and initial equations.
That's FMI for co-simulation. Our support for FMI co-simulation is very limited.
It depends what kind of porting you need done (what is it that needs OpenModelica generates that you want done differently?). Some things are easy to generate.
What kind of external code is it that you are writing? An FMU master algorithm with some of your own solvers that you want to import generated Modelica code into?
I suggest looking into FMIL in that case (to parse the FMI XML data, etc): http://www.jmodelica.org/FMILibrary
Full script running daily:
Code:
#!/bin/bash -x
TMP=/tmp/build-doc/
DOC=ModelicaDocumentation.tar.xz
ZIP=ModelicaDocumentation.zip
DEST=/var/www/Documentation/
sudo -n apt-get -qq update || exit 1
sudo -n apt-get -qqy upgrade || exit 1
sudo -n apt-get -qqy install '^omlib-.*' || exit 1
rm -rf "$TMP"
mkdir -p "$TMP"
cd $TMP
omc /usr/share/doc/omc/testmodels/GenerateDoc.mos | tee log
test -f "OpenModelica.html" || exit 1
test -f "index.html" || exit 1
test -f "$DOC" || exit 1
test -f "$ZIP" || exit 1
cp "$DOC" "$DEST/$DOC"
cp "$ZIP" "$DEST/$ZIP"
cd "$DEST"
tar xJf "$DOC"
You might want to tweak the first few lines (loadModel(Modelica) and getAvailableLibraries() are used to generate documentation for all libraries; changing these lines to loadModel(MyPackage) will generate documentation only for this; genBuiltin and genMetaModelica can also be disabled to skip some OpenModelica-specific documentation)
The etc steps include source -b, dpkg -i, ... You need to install the paradiseo package before continuing with the openmodelica package.
There are no binary packages for ARM in OpenModelica. You will need to do apt-get build-dep paradiseo, etc for that as well.
apt-get source is unrelated to the svn version you checked out. It is what you put in your apt sources.
rml-mmc is not required and not part of the latest builds (nightly). Don't try to build the old release version on ARM; it is known to fail.
Try the readme files for instructions (OpenModelica uses autoconf). Or use the source package (not tested on ARM):
Code:
sudo apt-get install devscripts debhelper
mkdir -p ~/tmp
cd ~/tmp
sudo apt-get build-dep openmodelica
sudo apt-get install libsundials-kinsol1 libqtwebkit-dev # Might be needed depending on platform
apt-get -b source openmodelica
sudo dpkg -i *.deb
Internal bug. Probably related to https://trac.openmodelica.org/OpenModelica/ticket/2788
The coming nightly build should handle Streams.print correctly, but not the OpenModelica print extension
print() is sent to stdout directly and thus messes up the OMEdit output parsing. https://build.openmodelica.org/Document … print.html should work as expected. But it also does not. Seems we send it directly to stdout
The same thing will happen with the symbolic solver according to the presentation today at the OpenModelica workshop. While solving the equation, an additional equation will be added and the solution chosen will be the one closest to the previous value (for continuous time), which should mean the value closer to the start value for initialisation problems. If the ExpressionSolve module cannot solve the equation, a non-linear system will be added and again the start value influences the initial solution.
https://build.openmodelica.org/Document … nReal.html
OpenModelica has a stringReal function if you use the MetaModelica extensions, but you probably don't want that.
Rs is a parameter record, which means you need to create a record where all its elements are parameters.
You might want to look at the code of Modelica.Blocks.Continuous.PI:
Code:
block PI "Proportional-Integral controller"
import Modelica.Blocks.Types.Init;
parameter Real k(unit="1")=1 "Gain";
parameter SIunits.Time T(start=1,min=Modelica.Constants.small)
"Time Constant (T>0 required)";
parameter Modelica.Blocks.Types.Init initType=Modelica.Blocks.Types.Init.NoInit
"Type of initialization (1: no init, 2: steady state, 3: initial state, 4: initial output)"
annotation(Evaluate=true,
Dialog(group="Initialization"));
parameter Real x_start=0 "Initial or guess value of state"
annotation (Dialog(group="Initialization"));
parameter Real y_start=0 "Initial value of output"
annotation(Dialog(enable=initType == Init.SteadyState or initType == Init.InitialOutput, group=
"Initialization"));
extends Interfaces.SISO;
output Real x(start=x_start) "State of block";
initial equation
if initType == Init.SteadyState then
der(x) = 0;
elseif initType == Init.InitialState then
x = x_start;
elseif initType == Init.InitialOutput then
y = y_start;
end if;
equation
der(x) = u/T;
y = k*(x + u);
end PI;
(Note: I updated OpenModelica to check if you are in function context when you try to use der; users should get nicer error messages if they try to do this in the future)
Flatten the model (instantiate model) and you see:
Code:
class test_pi
Real controller.y(start = 0.0);
Real controller.u(start = 0.0);
parameter Real controller.K = 1.0;
parameter Real controller.Ti = 1.0;
Real fbck;
equation
controller.u = controller.K * controller.y + controller.Ti * controller.u;
controller.y = der(controller.u);
fbck = 1.0;
controller.y = fbck;
end test_pi;
You pretty much have:
Code:
controller.y := fbck;
controller.y := der(controller.u);
Modelica has a single assignment rule. Remove controller.t = fbck and the model translates. Note that it is unbalanced because controller.u is not given an initial value: u(start=0, fixed=true) solves that.
Yes. derivative operator is forbidden in functions. Maybe you want to use a block instead of a function?
Also, keep in mind that the integrator needs der(u) in order to calculate u. Not the other way around.
Well. You can't really have parameters in a function as there is no initialization. The warning is correct that only inputs and outputs may be public.
Make them either protected constants or simply protected:
Code:
function pi
input Real y;
output Real u;
protected
Real K = 1 "Proportional gain";
Real Ti = 1 "Integral time";
algorithm
u := K * y + Ti * der(u);
end pi;
You could also filter only interesting variables in your simulation.
The 64-bit Linux version should be able to handle large files without any changes.
MSL = Modelica Standard Library. Versions before 3.1 are much slower than 3.2.1 w.r.t. file reading. If loadResource is the problem, it could be an OpenModelica issue. If readRealParameter is the issue, it might be a modelica.org issue.
Which version of MSL are you using (version and revision)? And OpenModelica revision? On Linux, the example finishes very quickly.
It could just be that loadResource doesn't work because it is not given a URI. Since it is already a path, you could simply try making it the path directly.
No. It was supposed to have been removed already. But probably was re-introduced during some 3-way merge of Word documents (hard to detect when we do not use LaTeX)
Yes, parameters in the Modelica spec are not supposed to be possible to change. The only things you should be able to change are tuneable parameters (at initialization), and top-level inputs (I think only via input files for now).
I tried this in Dymola as well but had to use b3 = y >= 100 and y <= 100 since you are not allowed to compare Real with equality in equation context in Modelica (and also not connect Real values since they are not connectors). Dymola seems to do it OK. OpenModelica does the == better.
Detecting the zero-crossing for y < 100 I guess is the problem. Keep in mind you are dealing with floating point which is not really precise; this model depends on exact values being calculated. https://trac.openmodelica.org/OpenModelica/newticket
The WasteWater master now works with OpenModelica out of the box.
Note that you need to use the override files: https://trac.openmodelica.org/OpenModel … #comment:6
It is in the trunk sources:
svn propget svn:externals libraries/
https://svn.modelica.org/projects/Model … elica@7415 'Modelica 2.2.2'
https://svn.modelica.org/projects/Model … e/3.1@7446 'Modelica 3.1'
https://svn.modelica.org/projects/Model … 3.2.1@8055 'Modelica 3.2.1'
The libraries are stripped from the source tarball; compile using make NOLIBRARIES=Yes
My guess would be the DeviceDrivers library: https://build.openmodelica.org/Document … lPort.html
You need to use the enumeration '1'. Probably something like:
Code:
import L = Modelica.Electrical.Digital.Interfaces.Logic;
L.'1'
help(OMPython) says:
Code:
Note: Conversion from OMPython 1.0 to OMPython 2.0 is very simple
1.0:
import OMPython
OMPython.execute(command)
2.0:
from OMPython import OMCSession
OMPython = OMCSession()
OMPython.execute(command)
Well, you shouldn't need any include in the constructor or destructor (this makes OpenModelica tool automatically generate the header, which uses void*).
The constructor/destructors should be:
Code:
void* RegelungInit( double pgain, double igain, double dTime )
{
MyController *p = (MyController*) malloc(sizeof(MyController));
p->i_anteil = 0.0;
p->pgain = pgain;
p->igain = igain;
p->dTime = dTime;
return p;
}
void RegelungExit( MyController * p )
{
free(p);
}
You shouldn't have deleted the entire line, just changed it to "extends ExternalObject;"
You must not extend "ModelicaReference...ExternalObject". External objects extend from "ExternalObject".
You do not say which OpenModelica client you are using. If it is OMEdit, you just open the library and navigate to ThermoPower.Examples and select something to simulate.
Note that OpenModelica uses MinGW, which will give you trouble trying to use some Windows API's. As I am a Linux user myself I can not help you much further.
If you are compiling using a C++ compiler, you will need to use
Code:
external "C" {
double myfunc(double d) {
return d;
}
}
Or similar in your C++ code. If you don't, the function is not visible from the Modelica code since it only looks for C functions.
By default, data is stored in a mat4 format file, which can easily be imported: https://openmodelica.org/index.php/forum/topic?id=434
OK. We'll see if it works in the next nightly build. The 1.9.1 release will not be updated. I try to let releases not change since the release date.
That is where the debian packages place them. OMC by default searches OPENMODELICAHOME (/usr) and ~/.openmodelica/libraries. But you can't very well install them into each user's home directory.
- Index
- » Users
- » sjoelund.se
- » Profile