“The OpenModelica Integrated Environment for Modeling, Simulation, and Model-Based Development”

Authors: Peter Fritzson, Adrian Pop, Karim Abdelhak, Adeel Ashgar, Bernhard Bachmann, Willi Braun, Daniel Bouskela, Robert Braun, Lena Buffoni, Francesco Casella, Rodrigo Castro, Rüdiger Franke, Dag Fritzson, Mahder Gebremedhin, Andreas Heuermann, Bernt Lie, Alachew Mengist, Lars Mikelsons, Kannan Moudgalya, Lennart Ochel, Arunkumar Palanisamy, Vitalij Ruge, Wladimir Schamai, Martin Sjölund, Bernhard Thiele, John Tinnerholm and Per Östlund,
Affiliation: Linköping University, Fachhochschule Bielefeld, Politecnico di Milano (Italy), Indian Institute of Technology Bombay, Universidad de Buenos Aires, ABB, University of South-Eastern Norway, Danfoss and Electricité de France
Reference: 2020, Vol 41, No 4, pp. 241-295.

Keywords: Modelica, OpenModelica, MetaModelica, FMI, modeling, simulation, optimization, development, environment, numeric, symbolic, compilation, embedded system, real-time

Abstract: OpenModelica is a unique large-scale integrated open-source Modelica- and FMI-based modeling, simulation, optimization, model-based analysis and development environment. Moreover, the OpenModelica environment provides a number of facilities such as debugging; optimization; visualization and 3D animation; web-based model editing and simulation; scripting from Modelica, Python, Julia, and Matlab; efficient simulation and co-simulation of FMI-based models; compilation for embedded systems; Modelica-UML integration; requirement verification; and generation of parallel code for multi-core architectures. The environment is based on the equation-based object-oriented Modelica language and currently uses the MetaModelica extended version of Modelica for its model compiler implementation. This overview paper gives an up-to-date description of the capabilities of the system, short overviews of used open source symbolic and numeric algorithms with pointers to published literature, tool integration aspects, some lessons learned, and the main vision behind its development.

PDF PDF (5545 Kb)        DOI: 10.4173/mic.2020.4.1

References:
[1] Sameer Agarwal, Keir Mierle, and Others. (2018). Ceres solver, URL http://ceres-solver.org, Note: Accessed 2018.
[2] Giovanni Agosta, Emanuele Baldino, Francesco Casella, Stefano Cherubin, Alberto Leva, and Federico Terraneo. (2019). Towards a High-Performance Modelica Compiler, In Proc. of the 13th International Modelica Conference, Regensburg, Germany, March 2019. doi:10.3384/ecp19157313
[3] Johan Aakesson. (2008). Optimica---An Extension of Modelica Supporting Dynamic Optimization, In Proc. of the 6th International Modelica Conference, Bielefeld, Germany, March 2008.
[4] Tunc Aldemir. (1987). Computer-Assisted Markov Failure Modeling of Process Control Systems, IEEE Transactions on Reliability, 360 (4):0 133--144. doi:10.1109/tr.1987.5222318
[5] Anders Andersson and Lena Buffoni. (2018). Powertrain Model Assessment for Different Driving Tasks through Requirement Verification, In Proc. of The 9th EUROSIM Congress on Modelling and Simulation, pages 721--727. doi:10.3384/ecp17142721
[6] Peter Aronsson. (2006). Automatic Parallelization of Equation-Based Simulation Programs, PhD thesis, Linkoeping University, Department of Computer and Information Science, June 2006. URL http://urn.kb.se/resolve?urn=urn%3Anbn%3Ase%3Aliu%3Adiva-7446.
[7] Inderpreet Arora, Kannan Moudgalya, and Sachitanand Malewar. (2010). A low cost, open source, single board heater system, In Proc. 4th IEEE International Conference on E-Learning in Industrial Electronics. IEEE, November 2010. doi:10.1109/icelie.2010.5669868
[8] Adeel Asghar, Sonia Tariq, Mohsen Torabzadeh-Tari, Peter Fritzson, Adrian Pop, Martin Sjoelund, Parham Vasaiely, and Wladimir Schamai. (2011). An Open Source Modelica Graphic Editor Integrated with Electronic Notebooks and Interactive Simulation, In Proc. from the 8th International Modelica Conference, Dresden, Germany, March 2011. doi:10.3384/ecp11063739
[9] Mikael Axin, Robert Braun, Alessandro Dell'Amico, Bjoern Eriksson, Peter Nordin, Karl Pettersson, Ingo Staack, and Petter Krus. (2010). Next Generation Simulation Software using Transmission Line Elements, In Proc. of Fluid Power and Motion Control, pages 265--276. Centre for Power Transmission and Motion Control. ISBN 978-1-86197-181-4.
[10] Bernhard Bachmann, Lennart Ochel, Vitalij Ruge, Mahder Gebremedhin, Peter Fritzson, Vaheed Nezhadali, Lars Eriksson, and Martin Sivertsson. (2012). Parallel Multiple-Shooting and Collocation Optimization with OpenModelica, In Proc. of the 9th International Modelica Conference, Munich, Germany, September 2012. doi:10.3384/ecp12076659
[11] Bernhard Bachmann, Kaja Balzereit, Willi Braun, Jan Hagemann, Lennart Ochel, Vitalij Ruge, and Patrick-Marcel Tauber. (2015). Symbolical and Numerical Approaches for Solving Nonlinear Systems, February 2015, URL https://www.openmodelica.org/images/docs/openmodelica2015/OpenModelica2015-talk04-Bernhard-Bachmann-NLSinOpenModelica.pdf. Annual OpenModelica Workshop, Linkoeping University, Linkoeping, Sweden.
[12] Belsim. (2019). Vali tool, URL http://www.belsim.com/business/solution/vali-energy/, Accessed: October.
[13] Lutz Berger, Martin Sjoelund, and Bernhard Thiele. (2017). Code generation for STM32F4 boards with Modelica device drivers, In Proc. of the 8th International Workshop on Equation-Based Object-Oriented Modeling Languages and Tools (EOOLTquotesingle17), Munich, Germany, December 2017. ACM Digital Library. doi:10.1145/3158191.3158204
[14] Jeff Bezanson, Alan Edelman, Stefan Karpinski, and ViralB. Shah. (2017). Julia: A Fresh Approach to Numerical Computing, SIAM Review, 590 (1):0 65--98. doi:10.1137/141000671
[15] Marc Bouissou, Henri Bouhadana, Marc Bannelier, and Nathalie Villatte. (1991). Knowledge Modelling and Reliability Processing: Presentation of the Figaro Language and Associated Tools, IFAC Proceedings Volumes, 240 (13):0 69–75, October 1991. doi:10.1016/s1474-6670(17)51368-3
[16] Marc Bouissou, Hilding Elmqvist, Martin Otter, and Albert Benveniste. (2014). Efficient Monte Carlo Simulation of Stochastic Hybrid Systems, In Proc. of the 10th International Modelica Conference, Lund, Sweden, March 2014. doi:10.3384/ecp14096715
[17] Marc Bouissou, Lena Buffoni, and Bernhard Thiele. (2016). From Design to Dependability: A Bridge Between Physical Simulation and Risk Analysis, In Proc. of Lambda-mu 20, Saint Malo, October 2016. doi:10.4267/2042/61810
[18] Willi Braun, Stephanie Gallardo-Yances, Kilian Link, and Bernhard Bachmann. (2012). Fast Simulation of Fluid Models with Colored Jacobians, In Proc. of the 9th International Modelica Conference, Munich, Germany, September 2012. doi:10.3384/ecp12076247
[19] Willi Braun, Francesco Casella, and Bernhard Bachmann. (2017). Solving Large-scale Modelica Models: New Approaches and Experimental Results using OpenModelica, In Proc. of the 12th International Modelica Conference, Prague, Czech Republic, May 15-17, 2017, Prague, Czech Republic, May 2017. doi:10.3384/ecp17132557
[20] Dag Bruck, Hilding Elmqvist, Sven-Erik Mattsson, and Hans Olsson. (2002). Dymola for Multi-Engineering Modeling and Simulation, In Proc. of the 2nd International Modelica Conference, Oberpfaffenhofen, Germany, March 2002.
[21] Frederic Bruder and Lars Mikelsons. (2019). Towards Grey Box Modeling in Modelica, Robotics and Mechatronics. ISRM 2019. Mechanisms and Machine Science, 78. doi:10.1007/978-3-030-30036-4_17
[22] Lena Buffoni. (2019). VVDRlib, URL https://github.com/lenaRB/VVDRlib. Accessed: December.
[23] Lena Buffoni and Peter Fritzson. (2015). Expressing Requirements in Modelica, In Proc. of the 55th Scandinavian Conference on Simulation and Modeling (SIMSquotesingle2014), Aalborg, Denmark, October 2015. doi:10.11128/sne.25.tn.10314
[24] Lena Buffoni, Adrian Pop, and Alachew Mengist. (2017). Traceability and Impact Analysis in Requirement Verification, In Proc. of the 8th International Workshop on Equation-Based Object-Oriented Modeling Languages and Tools (EOOLTquotesingle17), Munich, Germany, December 2017. ACM Digital Library. doi:10.1145/3158191.3158207
[25] Francesco Casella. (2015). Simulation of Large-Scale Models in Modelica: State of the Art and Future Perspectives, In Proc. of the 11th International Modelica Conference, Versailles, France, September 2015. doi:10.3384/ecp15118459
[26] Francesco Casella and Adrien Guironnet. (2020). Tutorial, Modelling and Simulation of Power Systems with OpenModelica and the PowerGrids library, February 2020, URL www.modprod.se. MODPROD Workshop on Model-Based Cyber-physical Product Development, https://github.com/PowerGrids/PowerGrids, Linkoeping Universitet, Linkoeping, Sweden.
[27] Francesco Casella, Filippo Donida, and Johan Aakesson. (2011). Object-Oriented Modeling and Optimal Control: A Case Study in Power Plant Start-Up, IFAC Proceedings Volumes, 440 (1):0 9549--9554, January 2011. doi:10.3182/20110828-6-it-1002.03229
[28] Francesco Casella, Michael Sielemann, and Luca Savoldelli. (2011). Steady-State Initialization of Object-Oriented Thermo-Fluid Models by Homotopy Methods, In Proc. of the 8th International Modelica Conference, Dresden, Germany, June 2011. doi:10.3384/ecp1106386
[29] Rodrigo Castro. (2012). Arguments on the Imminence of Global Collapse Are Premature when Based on Simulation Models, GAIA - Ecological Perspectives for Science and Society, 210 (4):0 271--273. doi:10.14512/gaia.21.4.9
[30] François Cellier. (2008). World3 in Modelica: Creating System Dynamics Models in the Modelica Framework, In Proc. of the 6th International Modelica Conference, Bielefeld, Germany, March 2008.
[31] François Cellier and Ernesto Kofman. (2006). Continuous System Simulation, Springer Science & Business Media, Berlin Heidelberg. ISBN 978-0-387-26102-7.
[32] Alejandro Danos, Willi Braun, Peter Fritzson, Adrian Pop, Hugo Scolnik, and Rodrigo Castro. (2017). Towards an OpenModelica-Based Sensitivity Analysis Platform Including Optimization-Driven Strategies, In Proceedings of the 8th International Workshop on Equation-Based Object-Oriented Modeling Languages and Tools, EOOLT '17, page 87–93, New York, NY, USA. Association for Computing Machinery. ISBN 9781450363730. doi:10.1145/3158191.3158206
[33] Dassault Systemes. (2018). Dymola, systems engineering overview. URL https://www.3ds.com/products-services/catia/products/dymola/. Accessed: September.
[34] Timothy Davis. (2004). Algorithm 832: UMFPACK V4, 3---An Unsymmetric-Pattern Multifrontal Method. ACM Transactions on Mathematical Software (TOMS), 300 (2):0 196--199, June 2004. doi:10.1145/992200.992206
[35] JohnE. DennisJr. and RobertB. Schnabel. (1996). Numerical Methods for Unconstrained Optimization and Nonlinear Equations, SIAM. ISBN 978-1-611-97120-0.
[36] JohnE. DennisJr., Nelia Echebest, M.T. Guardarucci, JoseMario Martinez, HugoD. Scolnik, and M.C. Vacchino. (1991). A Curvilinear Search Using Tridiagonal Secant Updates for Unconstrained Optimization, SIAM Journal on Optimization, 10 (3):0 333--357. doi:10.1137/0801022
[37] IainS. Duff, AlbertM. Erisman, and JohnK. Reid. (2017). Direct Methods for Sparse Matrices, Oxford University Press. doi:10.1093/acprof:oso/9780198508380.001.0001
[38] Hilding Elmqvist, Dag Bruck, and Martin Otter. (1996). Dymola---User's Manual, .
[39] Hilding Elmqvist, Toivo Henningsson, and Martin Otter. (2017). Innovations for Future Modelica, In Proc. of the 12th International Modelica Conference, Prague, Czech Republic, May 2017. doi:10.3384/ecp17132693
[40] Atiyah MohamedGamal Elsheikh. (2012). Modelica based computational tools for sensitivity analysis via automatic differentiation, PhD thesis, Aachen. URL https://publications.rwth-aachen.de/record/229154. Prüfungsjahr: 2012. - Publikationsjahr: 2014; Aachen, Techn. Hochsch., Diss.
[41] Anders Fernstroem, Ingemar Axelsson, Peter Fritzson, Anders Sandholm, and Adrian Pop. (2006). OMNotebook -- Interactive WYSIWYG Book Software for Teaching Programming, In Proc. of the Workshop on Developing Computer Science Education -- How Can It Be Done?, Linkoeping University, Dept. Computer & Inf. Science, Linkoeping, Sweden, March 2006. URL www.openmodelica.org.
[42] FOSSEE-Flowsheets. (2020). FOSSEE OpenModelica Team, Flowsheets in OpenModelica. URL https://om.fossee.in/chemical/flowsheeting-project/completed-flowsheet. Accessed: September.
[43] FOSSEE-Modelica. (2020). Step-by-step Audio-Video tutorials on how to use Modelica and OpenModelica, URL https://spoken-tutorial.org/tutorial-search/?search_foss=OpenModelica&search_language=English. Accessed: 2020-09-11.
[44] FOSSEE-OM-Textbook. (2020). FOSSEE OpenModelica Team, Crowdsourced OpenModelica textbook companions. URL https://om.fossee.in/textbook-companion/completed-books. Accessed: September.
[45] FOSSEE-OMChemSim. (2020). FOSSEE OpenModelica Team, GitHub link to FOSSEE OpenModelica Chemical Engineering Code. URL https://github.com/FOSSEE/OMChemSim. Accessed: September.
[46] FOSSEE-Power. (2020). FOSSEE OpenModelica Team, Power System Simulation in OpenModelica, 2020. URL https://om.fossee.in/powersystems/pssp/completed-pssp. Accessed: 2020-09-11.
[47] Rüdiger Franke, Manfred Rode, and Klaus Krüger. (2003). On-line Optimization of Drum Boiler Startup, In Proc. of the 3rd International Modelica Conference, Linkoeping, Sweden, November 2003. URL https://www.modelica.org/events/Conference2003/index_html/papers/h29_Franke.pdf.
[48] Rüdiger Franke, Marcus Walther, Niklas Worschech, Willi Braun, and Bernhard Bachmann. (2015). Model-based Control with FMI and a C++ Runtime for Modelica, In Proc. of the 11th International Modelica Conference, Versailles, France, September 2015. doi:10.3384/ecp15118339
[49] Rüdiger Franke, SvenErik Mattsson, Martin Otter, Karl Wernersson, Hans Olsson, Lennart Ochel, and Torsten Blochwitz. (2017). Discrete-time Models for Control Applications with FMI, In Proc. of the 12th International Modelica Conference, Prague, Czech Republic, May 2017. doi:10.3384/ecp17132507
[50] Dag Fritzson. (2018). Transient conformal TEHL algorithms for multibody simulation, Modeling, Identification and Control, 390 (3):0 209--232. doi:10.4173/mic.2018.3.6
[51] Dag Fritzson, Lars-Erik Stacke, and Jens Anders. (2014). Dynamic simulation --- Building knowledge in product development, SKF Evolution, 10 (1):0 21--26. URL http://evolution.skf.com/dynamic-simulation-building-knowledge-in-product-development/.
[52] Dag Fritzson, Robert Braun, and Jan Hartford. (2018). Composite modelling in 3-D mechanics utilizing Transmission Line Modelling (TLM) and Functional Mock-up Interface (FMI), Modeling, Identication and Control, 390 (3):0 179--190, 2018. doi:10.4173/mic.2018.3.4
[53] Peter Fritzson. (2006). MathModelica --- An Object Oriented Mathematical Modeling and Simulation Environment, Mathematica Journal, 100 (1), February 2006.
[54] Peter Fritzson. (2014). Principles of Object Oriented Modeling and Simulation with Modelica 3, 3: A Cyber-Physical Approach. Wiley IEEE Press. ISBN 9781-118-859124.
[55] Peter Fritzson and Vadim Engelson. (1998). Modelica --- A Unified Object-Oriented Language for System Modeling and Simulation, In Proc. of the 12th European Conference on Object-Oriented Programming, volume 1445 of LNCS, pages 67--90, Brussels, Belgium, July 1998. Springer Berlin Heidelberg.
[56] Peter Fritzson and David Kaagedal. (1998). Generating a Modelica Compiler from Natural Semantics Specifications, In Proc. of the 1998 Summer Computer Simulation Conference (SCSCquotesingle98), Reno, Nevada, July 1998.
[57] Peter Fritzson, Lars Viklund, Johan Herber, and Dag Fritzson. (1995). High Level Mathematical Modeling and Programming in Scientific Computing, IEEE Software, 120 (4):0 77--87, July 1995. doi:10.1109/52.391838
[58] Peter Fritzson, Peter Aronsson, Haakan Lundvall, Kaj Nystroem, Adrian Pop, Levon Saldamli, and David Broman. (2005). The OpenModelica Modeling, Simulation, and Software Development Environment, Simulation News Europe, 44/45, December 2005. See also: http://www.openmodelica.org, An earlier version in itProceedings of the 46th Conference on Simulation and Modelling of the Scandinavian Simulation Society (SIMSquotesingle2005), Trondheim, Norway, October 13-14.
[59] Peter Fritzson, Adrian Pop, David Broman, and Peter Aronsson. (2009). Formal Semantics Based Translator Generation and Tool Development in Practice, In Proc. of the 20th Australian Software Engineering Conference (ASWEC 2009), Gold Coast, Queensland, Australia, April 2009.
[60] Peter Fritzson, Pavol Privitzer, Martin Sjoelund, and Adrian Pop. (2009). Towards a Text Generation Template Language for Modelica, In Proc. of the 7th International Modelica Conference, Como, Italy, September 2009. doi:10.3384/ecp09430124
[61] Peter Fritzson, Adrian Pop, and Martin Sjoelund. (2011). Towards Modelica 4 Meta-Programming and Language Modeling with MetaModelica 2, 0. Technical Report 2011:10, Linkoeping University, PELAB - Programming Environment Laboratory. URL http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-68361.
[62] Peter Fritzson, Bernhard Bachmann, Kannan Moudgalya, Francesco Casella, Bernt Lie, Jiri Kofranek, and Massimo Ceraolo. (2018). Introduction to Modelica with Examples in Modeling, Technology, and Applications, Linköping University Interdisciplinary Studies, ISSN: 1650-9625. Linköping University Electronic Press, 2018. URL http://omwebbook.openmodelica.org/, Accessed: September.
[63] Peter Fritzson, Adrian Pop, Martin Sjoelund, and Adeel Asghar. (2019). MetaModelica --- A Symbolic-Numeric Modelica Language and Comparison to Julia, In Proc. of the 13th International Modelica Conference, Regensburg, Germany, March 2019. doi:10.3384/ecp19157289
[64] Mahder Gebremedhin. (2011). ParModelica: Extending the Algorithmic Subset ofModelica with Explicit Parallel LanguageConstructs for Multi-core Simulation, Master's thesis, Linkoeping University, Department of Computer and Information Science. doi:10.3384/diss.diva-152789
[65] Mahder Gebremedhin. (2019). Automatic and Explicit Parallelization Approaches for Equation Based Mathematical Modeling and Simulation, PhD thesis, Linkoeping University, Department of Computer and Information Science. doi:10.3384/diss.diva-152789
[66] Mahder Gebremedhin and Peter Fritzson. (2017). Parallelizing Simulations with Runtime Profiling and Scheduling, In Proc. of the 8th International Workshop on Equation-Based Object-Oriented Modeling Languages and Tools (EOOLTquotesingle17), Munich, Germany. ACM Digital Library. doi:10.1145/3158191.3158194
[67] Mahder Gebremedhin, AfshinHemmati Moghadam, Peter Fritzson, and Kristian Stavaaker. (2012). A Data-Parallel Algorithmic Modelica Extension for Efficient Execution on Multi-Core Platforms, In Proc. of the 9th International Modelica Conference, Munich, Germany, September 2012. doi:10.3384/ecp12076393
[68] AlanC. Hindmarsh, PeterN. Brown, KeithE. Grant, StevenL. Lee, Radu Serban, DanE. Shumaker, and CarolS. Woodward. (2005). SUNDIALS: suite of nonlinear and differential/algebraic equation solvers, ACM Transactions on Mathematical Software (TOMS), 310 (3):0 363--396.
[69] Boris Houska, HansJoachim Ferreau, and Moritz Diehl. (2011). ACADO toolkit --- An open-source framework for automatic control and dynamic optimization, Optimal Control Applications and Methods, 320 (3):0 298--312.
[70] Rahul Jain, Priyam Nayak, A.S Rahul, Pravin Dalve, Kannan Moudgalya, P.R. Naren, Daniel Wagner, and Peter Fritzson. (2019). Implementation of a Property Database and Thermodynamic Calculations in OpenModelica for Chemical Process Simulation, Industrial & Engineering Chemistry Research, 580 (18):0 7551--7560, February 2019. doi:10.1021/acs.iecr.8b05147
[71] JuliaControl. (2019). ControlSystems --- A Control Systems Toolbox for Julia, URL https://github.com/JuliaControl/ControlSystems.jl. Accessed: 2020-09-11.
[72] Julialang. (2018). Julia Language Documentation, Release 1, 0. URL https://julialang.org. Accessed: 2020-09-11.
[73] HerbertB. Keller. (1978). Global Homotopies and Newton Methods, In Recent Advances in Numerical Analysis, pages 73--94. Academic Press. doi:10.1016/b978-0-12-208360-0.50009-7
[74] Hassan Khalil. (2002). Nonlinear Systems, Prentice Hall, third edition. ISBN 978-0130673893.
[75] Mohammad Khalili and Bernt Lie. (2018). Comparison of Linear Controllers for Nonlinear Openloop Unstable Reactor, In Proc. of the 59th Conference on Simulation and Modelling (SIMS 59), Oslo Metropolitan University, Norway, September 2018. doi:10.3384/ecp18153185
[76] Feng Liang, Wladimir Schamai, Olena Rogovchenko, Sara Sadeghi, Mattias Nyberg, and Peter Fritzson. (2012). Model-Based Requirement Verification: A Case Study, In Proce. of the 9th International Modelica Conference, Linkoeping, Sweden, September 2012. doi:10.3384/ecp12076385
[77] Bernt Lie, Sudeep Bajrachary, Alachew Mengist, Lena Buffoni, ArunKumar Palanisamy, Martin Sjoelund, Adeel Asghar, Adrian Pop, and Peter Fritzson. (2016). API for Accessing OpenModelica Models from Python, In Proc. of The 9th EUROSIM Congress on Modelling and Simulation, pages 707--713, Oulu, Finland, September 2016. IEEE. ISBN 978-91-7685-399-3. and in itProc. of the 57th SIMS Conference on Simulation and Modelling (SIMS 2016), https://www.ep.liu.se/ecp/142/103/ecp17142103.pdf.
[78] Bernt Lie, Arunkumar Palanisamy, Alachew Mengist, Lena Buffoni, Martin Sjoelund, Adeel Asghar, Adrian Pop, and Peter Fritzson. (2019). OMJulia: An OpenModelica API for julia-modelica interaction, In Proc. of the 13th International Modelica Conference, Regensburg, Germany, March 2019. doi:10.3384/ecp19157699
[79] MathWorks. (2018). Matlab Product Overview, URL https://www.mathworks.com/products/matlab.html. Accessed: September.
[80] MathWorks. (2019). MathWorks, Simulink - Simulation and Model-Based Design, 2019. URL https://www.mathworks.com/products/simulink.html. Accessed: October.
[81] MathWorks. (2019). MathWorks, Control System Toolbox Documentation, 2019. URL https://se.mathworks.com/help/control/getting-started-with-control-system-toolbox.html. Accessed: October.
[82] Dennis Meadows, William Behrens, Donella Meadows, Roger Naill, Jorgen Randers, and Erich Zahn. (1974). Dynamics of growth in a finite world, Wright-Allen Press Cambridge, MA, USA.
[83] Donella Meadows, Jorgen Randers, and Dennis Meadows. (2004). Limits to Growth: The 30-year Update, Chelsea Green Publishing, 3rd edition.
[84] Nils Menager, Niklas Worschech, and Lars Mikelsons. (2014). Toolchain for Rapid Control Prototyping using Rexroth Controllers and Open Source Software, In Proc. of the 10th International Modelica Conference, Lund, Sweden, March 2014. doi:10.3384/ecp14096371
[85] Gustavo Migoni, Ernesto Kofman, and Francois Cellier. (2011). Quantization-based new integration methods for stiff ordinary differential equations, SIMULATION, 880 (4):0 387--407, June 2011. doi:10.1177/0037549711403645
[86] Robert Milner, Mads Tofte, Robert Harper, and David MacQueen. (1997). The Definition of Standard ML (Revised), MIT Press. ISBN 0-262-63181-4.
[87] Modelica Association. (2017). Modelica: A Unified Object-oriented Language for Physical Systems Modeling, Language Specification Version 3, 4. URL http://www.modelica.org/.
[88] Modelica Association. (2018). SSP – MA Project for System Structure and Parameterization of Components for Virtual System Design, URL https://www.modelica.org/projects. Accessed: September.
[89] Nima Mohajerin, Melissa Mozifian, and Steven Waslander. (2018). Deep learning a quadrotor dynamic model for multi-step prediction, In Proc. of the 2018 IEEE International Conference on Robotics and Automation (ICRA), pages 2454--2459, May 2018. doi:10.1109/ICRA.2018.8460840
[90] Kannan Moudgalya. (2018). Crowdsourced Information Technology Content for Education and Employment, In Proc. of the 18th IEEE International Conference on Advanced Learning Technologies (ICALT), pages 39--41, IIT Bombay, 2018, July 2018. doi:10.1109/ICALT.2018.00016
[91] Kannan Moudgalya, Bhargava Nemmaru, Kaushik Datta, Priyam Nayak, Rahul Jain, Peter Fritzson, and Adrian Pop. (2017). Large Scale Training through Spoken Tutorials to Promote and use OpenModelica, In Proc. of the 12th International Modelica Conference, May 2017. doi:10.3384/ecp17132275
[92] MSCSoftware. (2020). Adams Multibody Dynamics Simulation Software, URL https://www.mscsoftware.com/product/adams. Accessed: March.
[93] Richard Murray and Scott Livingston. (2019). Python Control Systems Library, URL https://sourceforge.net/p/python-control/wiki/Home. Accessed: September.
[94] Ekanathan Natarajan. (2005). KLU---A High Performance Sparse Linear Solver for Circuit Simulation Problems, Master's thesis, University of Florida. URL https://ufdcimages.uflib.ufl.edu/UF/E0/01/17/21/00001/palamadai_e.pdf.
[95] Priyam Nayak, Pravin Dalve, RahulAnandi Sai, Rahul Jain, Kannan Moudgalya, P.R. Naren, Peter Fritzson, and Daniel Wagner. (2019). Chemical Process Simulation Using OpenModelica, Industrial & Engineering Chemistry Research, 580 (26):0 11164--11174, May 2019. doi:10.1021/acs.iecr.9b00104
[96] Akira Nishida. (2010). Experience in Developing an Open Source Scalable Software Infrastructure in Japan, In Computational Science and Its Applications -- ICCSA 2010, pages 448--462, Berlin, Heidelberg, March 2010. Lecture Notes in Computer Science, vol 6017. Springer. doi:10.1007/978-3-642-12165-4_36
[97] Nvidia. (2008). Nvidia, CUDA Compute Unified Device Architecture programming guide Version: 2.0.
[98] OCaml. (2018). Ocaml web site, URL https://ocaml.org/. Accessed: September.
[99] Lennart Ochel. (2017). Petri-Netz-basierte Simulation biologischer Prozesse mit OpenModelica, Doctoral thesis, Universität Bielefeld, AG Bioinformatik Technische Fakultät. URL https://pub.uni-bielefeld.de/record/2913956.
[100] OMSimulator. (2020). OMSimulator, OSMC -- Open Source Modelica Consortium. URL https://www.openmodelica.org/doc/OpenModelicaUsersGuide/1.16/omsimulator.html. Accessed: 2020-10-02.
[101] OMSimulator 1.0. (2017). OpenModelica User's Guide, Chapter 6, OMSimulator 1.0. OSMC -- Open Source Modelica Consortium. URL https://www.openmodelica.org/doc/OpenModelicaUsersGuide/v1.12.0/omsimulator.html. Accessed: September, 2018.
[102] OMSysIdent. (2020). OMSysIdent, OSMC -- Open Source Modelica Consortium. URL https://www.openmodelica.org/doc/OpenModelicaUsersGuide/1.16/systemidentification.html. Accessed: 2020-10-01.
[103] OpenCL. (2018). The OpenCL Specification Version: 1, 0. Khronos OpenCL Working Group. URL https://www.khronos.org/registry/cl/specs/opencl-1.0.29.pdf. Accessed: November.
[104] OpenModelica. (2020). OpenModelica User's Guide Version 1, 16. OSMC -- Open Source Modelica Consortium. URL https://www.openmodelica.org/doc/OpenModelicaUsersGuide/1.16/. Accessed: 2020-09-11.
[105] Constantinos Pantelides. (1988). The Consistent Initialization of Differential-Algebraic Systems, SIAM Journal on Scientific and Statistical Computing, 90 (2):0 213--231. doi:10.1137/0909014
[106] Linda Petzold. (1982). A Description of DASSL: A Differential/Algebraic System Solver, In Proc. of the 10th IMACS World Congress, Montreal, August 1982.
[107] Linda Petzold, Shengtai Li, Yang Cao, and Radu Serban. (2006). Sensitivity Analysis of Differential-Algebraic Equations and Partial Differential Equations, Computers & Chemical Engineering, 300 (10):0 1553 -- 1559. doi:10.1016/j.compchemeng.2006.05.015
[108] Adrian Pop. (2008). Integrated Model-Driven Development Environments for Equation-Based Object-Oriented Languages, PhD thesis, Linkoeping University, Department of Computer and Information Science. URN: http://urn.kb.se/resolve?urn=urn%3Anbn%3Ase%3Aliu%3Adiva-11416urn:nbn:se:liu:diva-11416.
[109] Adrian Pop and Peter Fritzson. (2006). MetaModelica: A Unified Equation-Based Semantical and Mathematical Modeling Language, In David Lightfoot and Clemens Szyperski, editors, Modular Programming Languages, pages 211--229, Berlin / Heidlberg. Modular Programming Languages. JMLC 2006. Lecture Notes in Computer Science, Vol. 4228. Springer. doi:10.1007/11860990_14
[110] Adrian Pop, Peter Fritzson, Andreas Remar, Elmir Jagudin, and David Akhvlediani. (2006). OpenModelica Development Environment with Eclipse Integration for Browsing, Modeling, and Debugging, In Proc. of the 5th International Modelica Conference, Vienna, Austria, September 2006.
[111] Adrian Pop, Martin Sjoelund, Adeel Ashgar, Peter Fritzson, and Francesco Casella. (2014). Integrated Debugging of Modelica Models, Modeling, Identification and Control, 350 (2):0 93--107. doi:10.4173/mic.2014.2.3
[112] Adrian Pop, Per Östlund, Francesco Casella, Martin Sjölund, and Rüdiger Franke. (2019). A New OpenModelica Compiler High Performance Frontend, In Proc. of the 13th International Modelica Conference, Regensburg, Germany, March 2019. doi:10.3384/ecp19157689
[113] Sabrina Proß and Bernhard Bachmann. (2012). PNlib - An Advanced Petri Net Library for Hybrid Process Modeling, In Proc. of the 9th International Modelica Conference, Munich, Germany, September 2012, https://github.com/AMIT-FHBielefeld/PNlib doi:10.3384/ecp1207647
[114] Project Jupyter. (2016). Jupyter notebooks, URL https://jupyter.org/. Accessed: 2020-09-11.
[115] Python Software Foundation. (2018). Python Programming Language, URL https://www.python.org/. Accessed: Sept.
[116] Xiaolin Qin, Juan Tang, Yong Feng, Bernhard Bachmann, and Peter Fritzson. (2016). Efficient index reduction algorithm for large scale systems of differential algebraic equations, Applied Mathematics and Computation, 277:0 10--22, 2016. doi:10.1016/j.amc.2015.11.091
[117] Xiaolin Qin, LuYang, Yong Feng, Bernhard Bachmann, and Peter Fritzson. (2018). Index reduction of differential algebraic equations by differential dixon resultant, Applied Mathematics and Computation, 328:0 189--202, 2018. ISSN 0096-3003. doi:10.1016/j.amc.2017.12.029
[118] Vitalij Ruge, Willi Braun, Bernhard Bachmann, Andrea Walther, and Kshitij Kulshreshtha. (2014). Efficient Implementation of Collocation Methods for Optimization using OpenModelica and ADOL-C, In Proc. of the International Modelica Conference, Lund, Sweden, March 2014. doi:10.3384/ecp140961017
[119] Eva-Lena Sandelin, Susanna Monemar, Peter Fritzson, and Peter Bunus. (2003). DrModelica An Interactive Tutoring Environment for Modelica, In Proc. of the 3rd International Modelica Conference, Linkoeping, Sweden, November 2003. URL www.openmodelica.org.
[120] Wladimir Schamai. (2013). Model-Based Verification of Dynamic System Behavior against Requirements: Method, Language, and Tool, PhD thesis, Linkoeping University, Department of Computer and Information Science, November 2013. doi:10.3384/diss.diva-98107
[121] Wladimir Schamai, Lena Buffoni, and Peter Fritzson. (2014). An Approach to Automated Model Composition Illustrated in the Context of Design Verification, Modeling, Identification and Control, 350 (2):0 79--91. doi:10.4173/mic.2014.2.2
[122] Wladimir Schamai, Lena Buffoni, Nicolas Albarello, Pablo FontesDe Miranda, and Peter Fritzson. (2015). An Aeronautic Case Study for Requirement Formalization and Automated Model Composition in Modelica, In Proc. of the 11th International Modelica Conference, Versailles, France, September 2015. doi:10.3384/ecp15118911
[123] HugoD. Scolnik. (1979). A critical review of some global models, In Global and Large Scale System Models, Berlin, Heidlberg, 1979. Lecture Notes in Control and Information Sciences, vol 19. Springer. doi:10.1007/bfb0049022
[124] Dale Seborg, Thomas Edgar, Duncan Mellichamp, and Francis Doyle. (2011). Process Dynamics and Control, Wiley. ISBN 978-1-119-28591-5.
[125] Alachew Shitahun, Vitalij Ruge, Mahder Gebremedhin, Bernhard Bachmann, Lars Eriksson, Joel Andersson, Moritz Diehl, and Peter Fritzson. (2013). Model-Based Dynamic Optimization with OpenModelica and CasADi, IFAC Proceedings Volumes, 460 (21):0 446--451. doi:10.3182/20130904-4-jp-2042.00166
[126] Michael Sielemann, Francesco Casella, Martin Otter, Christop Clauß, Jonas Eborn, SvenErik Matsson, and Hans Olsson. (2011). Robust Initialization of Differential-Algebraic Equations Using Homotopy, In Proc. of the 8th International Modelica Conference, Dresden, Germany, June 2011. doi:10.3384/ecp1106375
[127] Martin Sjoelund. (2015). Tools and Methods for Analysis, Debugging, and Performance Improvement of Equation-Based Models, PhD thesis, Linkoeping University, Department of Computer and Information Science. doi:10.3384/diss.diva-116346
[128] Martin Sjoelund, Peter Fritzson, and Adrian Pop. (2014). Bootstrapping a compiler for an equation-based object-oriented language, Modeling, Identification and Control, 350 (1):0 1--19. doi:10.4173/mic.2014.1.1
[129] Gustaf Soederlind and Sven Erik Mattsson. (1993). Index reduction in differential-algebraic equations using dummy derivatives, SIAM Journal of Scientific and Statistical Computing, 140 (3):0 677--692.
[130] AllanG. Taylor and AlanC. Hindmarsh. (1998). User Documentation for KINSOL, a Nonlinear Solver for Sequential and Parallel Computers, Technical report, Lawrence Livermore Technical Laboratory, July 1998. https://computing.llnl.gov/projects/sundials/kinsol.
[131] Watten Teitelman. (1974). INTERLISP Reference Manual, Xerox Palo Alto Research Center.
[132] Tensorflow.org. (2019). An end-to-end open source machine learning platform, URL https://www.tensorflow.org/. Accessed: Sept.
[133] Bernhard Thiele, Thomas Beutlich, Volker Waurich, Martin Sjoelund, and Tobias Bellmann. (2017). Towards a Standard-Conform, Platform-Generic and Feature-Rich Modelica Device Drivers Library, In Proc. of the 12th International Modelica Conference, Prague, Czech Republic, May 2017. doi:10.3384/ecp17132713
[134] Bernhard Thiele, Bernt Lie, Martin Sjoelund, Adrian Pop, and Peter Fritzson. (2019). Controller Design for a Magnetic Levitation Kit using OpenModelica's Integration with the Julia Language, In Proceedings of the 13th International Modelica Conference, Regensburg, Germany, March 2019. doi:10.3384/ecp19157303
[135] Hubert Thieriot, Maroun Nemera, Mohsen Torabzadeh-Tari, Peter Fritzson, Rajiv Singh, and JohnJohn Kocherry. (2011). Towards Design Optimization with OpenModelica Emphasizing Parameter Optimization with Genetic Algorithms, In Proc. of the 8th International Modelica Conference, Dresden, Germany, March 2011. doi:10.3384/ecp11063756
[136] John Tinnerholm. (2019). An LLVM backend for the Open Modelica Compiler, Master's thesis, Linköping University, Department of Computer and Information Science. URL http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-154291.
[137] John Tinnerholm, Martin Sjolund, and Adrian Pop. (2019). Towards introducing just-in-time compilation in a modelica compiler, In Proceedings of the 9th International Workshop on Equation-Based Object-Oriented Modeling Languages and Tools, EOOLT '19, page 11–19, New York, NY, USA. Association for Computing Machinery. ISBN 9781450377133. doi:10.1145/3365984.3365990
[138] PieterJacobus Vermeulen and Dawid CorneliusJohannes de Jongh. (1976). Parameter sensitivity of the ‘limits to growth’ world model, Applied Mathematical Modelling, 10 (1):0 29 -- 32. ISSN 0307-904X. doi:10.1016/0307-904X(76)90021-4
[139] Andreas Wachter and LorenzT. Biegler. (2006). On the Implementation of a Primal-Dual Interior Point Filter Line Search Algorithm for Large-Scale Nonlinear Programming, Mathematical Programming, 1060 (1):0 25--57, April 2006. doi:10.1007/s10107-004-0559-y
[140] Marcus Walther, Volker Waurich, Christian Schubert, and Ines Gubsch. (2014). Equation based parallelization of Modelica models, In Proc. of the 10th International Modelica Conference, Lund, Sweden, March 2014. doi:10.3384/ecp140961213
[141] Volker Waurich and Jurgen Weber. (2017). Interactive FMU-Based Visualization for an Early Design Experience, In Proc. of the 12th International Modelica Conference, Prague, Czech Republic, May 2017. doi:10.3384/ecp17132879
[142] Susann Wolf, Joachim Haase, Christoph Clauss, Michael Joeckel, and Jurgen Loesch. (2008). Methods of Sensitivity Calculation Applied to a Multi-Axial Test Rig for Elastomer Bushings, In Proc. of the 6th International Modelica Conference, Bielefeld, Germany, March 2008. URL http://www.modelica.org/events/modelica2008/Proceedings/html/proceedings.html.
[143] Stephen Wolfram. (2003). The Mathematica Book, Wolfram Media, Inc, 5th edition.
[144] Wolfram Research. (2018). Wolfram System Modeler Documentation and Overview, Accessed: September. URL http://www.wolfram.com/system-modeler/.
[145] Zeltom LLC. (2019). Zeltom Electromagnetic Levitation System, URL http://zeltom.com/emls.html, Accessed: September.
[146] QuanMin Zhu, LiFengZhang, and Ashley Longden. (2007). Development of omni-directional correlation functions for nonlinear model validation, Automatica, 43:0 1519--1531. ISSN 0005-1098. doi:10.1016/j.automatica.2007.02.010
[147] Dirk Zimmer. (2012). A Planar Mechanical Library for Teaching Modelica, In Proc. of the 9th International Modelica Conference, Munich, Germany, September 2012. doi:10.3384/ecp12076681


BibTeX:
@article{MIC-2020-4-1,
  title={{The OpenModelica Integrated Environment for Modeling, Simulation, and Model-Based Development}},
  author={Fritzson, Peter and Pop, Adrian and Abdelhak, Karim and Ashgar, Adeel and Bachmann, Bernhard and Braun, Willi and Bouskela, Daniel and Braun, Robert and Buffoni, Lena and Casella, Francesco and Castro, Rodrigo and Franke, Rüdiger and Fritzson, Dag and Gebremedhin, Mahder and Heuermann, Andreas and Lie, Bernt and Mengist, Alachew and Mikelsons, Lars and Moudgalya, Kannan and Ochel, Lennart and Palanisamy, Arunkumar and Ruge, Vitalij and Schamai, Wladimir and Sjölund, Martin and Thiele, Bernhard and Tinnerholm, John and Östlund, Per},
  journal={Modeling, Identification and Control},
  volume={41},
  number={4},
  pages={241--295},
  year={2020},
  doi={10.4173/mic.2020.4.1},
  publisher={Norwegian Society of Automatic Control}
};