Dymola: Environment for Object-oriented Modeling
of Physical Systems
Introduction
Dymola was designed by Hilding Elmqvist of the Technical University at Lund (LTH)
in Sweden as part of his PhD dissertation. 
Dymola is a modeling environment that enables the user to map hardware components
of physical systems directly onto corresponding software components. 
Elmqvist recognized that there must not exist any distinction between input and
output parameters of such objects.  The direction of information flow can only
be determined during the compilation of the models based on the embedding of the
model components into the overall model. 
Since then, Dymola/Modelica matured into the best and most flexible modeling
environment for the description of physical systems currently available on the
software market. 
Historical Development
  - In 1978, Hilding Elmqvist introduced a first version of Dymola as part of
      his PhD dissertation.  The language presented at that time offered a purely
      alphanumerical user interface that today forms the basis of the modern
      modeling language Modelica.  A first version of the Dymola
      compiler had been coded in Simula 68.  However, that version
      was soon replaced by a newer version that was coded in Pascal.
      The compiler translated Dymola models to Simnon, a simulation
      environment that Elmqvist had developed in 1975 as part of his
      MS Thesis. 
   
- In 1981, Hilding Elmqvist developed a first version of a graphic user
      interface (GUI) that would enable the user to describe a physical system
      by means of graphical objects.  The graphic modules were then mapped onto
      Dymola.  Elmqvist was convinced that graphical descriptions of systems were
      easier to manage, as they support two-dimensional connections, whereas an
      alphanumerical description must necessarily be one-dimensional.  However,
      the proposed GUI could not meaningfully be utilized, as it consumed to
      many computer resources.  The computers of those days were not yet
      powerful enough to meaningfully support such a development. 
   
- After Elmqvist had left academia in 1984 to assume a job in industry, I myself
      together with my students continued in 1986 with the development of Dymola.
      In particular, we developed new translation modules that mapped Dymola models
      onto the simulation languages Desire and ACSL.  These modules
      were developed under a grant from NASA. 
   
- In 1991, I published the book 
                                       Continuous System Modeling [1], in
      which Dymola played a central role.  This book convinced Hilding Elmqvist
      to give up his position in industry and create instead a company of his
      own, called 
                            Dynasim AS, the sole purpose of which would be
      the further development of Dymola. 
   
- A still unsolved problem was the symbolic treatment of algebraic loops and
      structural singularities, as they occurred frequently in the coupling of
      Dymola models.  This problem was solved by Elmqvist in 1992.  It led to
      publication [2]. 
   
- In the summer of 1992, I worked at the German Aerospace Establishment (DLR)
      in Oberpfaffenhofen.  This contract led to a close and very fruitful
      collaboration between Hilding Elmqvist (Dynasim), Martin Otter (DLR), and
      myself.  In the sequel, DLR financed majorly the further development of
      Dymola for several years.  As a first project, an interface to the DLR
      simulation environment DSblock was developed that forms the basis
      of the Dymosim simulation environment in use today. 
   
- In 1993, the Dymola modeling environment was enriched by language elements
      for modeling discontinuous processes that replaced and improved on the
      modeling concepts that had been proposed in the modeling environment
      
         COSY [3].  In parallel, a new version of the Dymola compiler was
      issued, now coded in C. 
   
- In 1994, the symbolic treatment of algebraic loops was improved by the
      introduction of tearing variables.  Also introduced were new language
      elements that should enable the user to describe vector processes, as they
      occur for example in mechanics in the description of multibody systems (MBS),
      by means of matrices, offering a user interface similar to that available in
      Matlab. 
   
- Also in 1994, a new GUI was introduced that first took the name of
      Dymodraw.  In contrast to the earlier development of 1981, Dymodraw
      was fully functional.  Unfortunately, he tools offered in Dymodraw for the
      definition of new graphical objects still left much to be desired.  For
      this reason, it was easy to use already developed graphical objects in
      Dymodraw, but the design of new graphical objects was painful and error
      prone.  The graphic compiler was coded in C++. 
   
- In 1995, the efficiency of the compiled simulation code was significantly
      improved by the introduction of DASSL as the default integration method,
      as well as by the new concept of "inlining", i.e., the merging of the
      integrator equations with the model equations prior to the symbolic
      preprocessing of the resulting differential-algebraic equation (DAE)
      system [4]. 
   
- In 1996, the symbolic preprocessor was enhanced by yet another algorithm,
      called "relaxing" of linear equation systems.  The relaxing algorithm
      offers a symbolic implementation of the Gauss reduction algorithm [5]. 
   
- Also in 1996, the language definition of Dymola, which by now was 18 years
      old, underwent a major revision.  Die resulting new language was called
      
         Modelica.  Modelica's language definition was placed in the public
      domain.  As the name "Dymola" had been freed up, the GUI from now on assumed
      the name Dymola.  By the year 2003, Dymola Version 5 was released, which
      finally offered a completely redesigned and fully functional GUI, in which
      also the design and development of new graphical objects can be accomplished
      easily and reliably. 
   
- In 1997, a standard committee was created, the task of which was the further
      development and standardization of the language definition of Modelica.
      Unfortunately, I could no longer participate personally in this effort, as this
      would have called for 2-3 trips to Europe annually, mostly during teaching
      sessions, which I could not justify. 
   
- Already in 1993, I stopped with the further development of the Dymola compiler,
      as I would not and could not compete with Elmqvist's group in this arena.
      Instead, I subsequently focused my efforts on a task that my students and I
      could handle much more easily and successfully, namely  the design and
      development of new Dymola/Modelica libraries, such as
                                                              BondLib .
Most Important Publications
  - Cellier, F.E. (1991),
      
         Continuous System Modeling,
      Springer-Verlag, New York.
        
   
- Cellier, F.E., and H. Elmqvist (1993),
      
         Automated Formula Manipulation Supports Object-Oriented
         Continuous-System Modeling,
      IEEE Control Systems, 13(2), pp.28-38.
        
   
- Elmqvist, H., F.E. Cellier, and M. Otter (1993),
      
         Object-Oriented Modeling of Hybrid Systems,
      Proc. ESS'93, SCS European Simulation Symposium,
      Delft, The Netherlands, pp.xxxi-xli.
        
   
- Elmqvist, H., M. Otter, and F.E. Cellier (1995),
      
         Inline Integration: A New Mixed Symbolic/Numeric Approach for Solving
         Differential-Algebraic Equation Systems,
      Proc. ESM'95, SCS European Simulation MultiConference,
      Prague, Czech Republic, pp.xxiii-xxxiv.
        
   
- Otter, M., H. Elmqvist, and F.E. Cellier (1996),
      
         "Relaxing" - A Symbolic Sparse Matrix Method Exploiting the Model
         Structure in Generating Efficient Simulation Code,
      Proc. Symposium on Modelling, Analysis, and Simulation,
      CESA'96, IMACS MultiConference on Computational Engineering in Systems
      Applications, Lille, France, vol.1, pp.1-12.
        
Sponsors
  - NASA
  
- German Aerospace Establishment
 
   Deutsche Version 
   Homepage 
Last modified: July 4, 2005 -- © François Cellier