/ModelicaSpecification

Specification of the Modelica Language

Primary LanguageTeXCreative Commons Attribution Share Alike 4.0 InternationalCC-BY-SA-4.0

Modelica Language Logo

Modelica Language Logo

ModelicaSpecification

This repository contains the Modelica Language Specification, hosted at https://github.com/modelica/ModelicaSpecification. Development is organized within the Modelica Association Project Language (MAP-Lang) according to the project rules.

Description

Modelica® is a language for modeling of cyber-physical systems, supporting acausal connection of components governed by mathematical equations to facilitate modeling from first principles. It provides object-oriented constructs that facilitate reuse of models, and can be used conveniently for modeling complex systems containing, e.g., mechanical, electrical, electronic, magnetic, hydraulic, thermal, control, electric power or process-oriented subcomponents.

Releases

Version Link Published Changes
3.7-dev Master branch HTML PDF not yet Search
3.6 3.6 branch HTML PDF 2023 Search HTML
3.5 3.5 branch HTML PDF 2021 HTML
3.4 3.4 branch HTML PDF 2017 HTML
3.3rev1 PDF 2014 HTML
3.2rev2 PDF 2013 HTML
3.2rev1 PDF 2012 HTML
3.3 PDF 2012 HTML
3.2 PDF 2010 HTML
3.1 PDF 2009 HTML
3.0 PDF 2007 HTML
2.2 PDF 2005 HTML
2.1 PDF 2004 HTML
2.0 PDF 2002 HTML
1.4 PDF 2000 HTML
1.3 PDF 1999 HTML
1.2 PDF 1999 HTML
1.1 PDF 1998 HTML
1.0 PDF 1997

Contribution

  1. If you find an error and are not certain that you can correct it, first check that it is not already reported and then open an issue describing it in detail - focusing on why it should be changed.
  2. If you are confident that you can correct the issue, fork this repository and create a pull-request and in the pull-request explain the issue and the correction; you will also have to sign a CLA.
  3. Significant extensions are handled as Modelica Change Proposals (MCPs). This can start as a simple description of the proposed extension. It will then be worked on to have a rationale explaining how the change help users, and demonstrating that it can be implemented efficiently; and finally a pull-request with the changes.

For more details, see the Development Process. A list of MCPs can be found here: RationaleMCP.

CLA: Contributor's license agreement. (Details to follow.)

How to edit and generate final documents

  • Read the style guide.
  • For online editing you can use www.overleaf.com (details to follow)
  • The pdf-documents are generated with pdflatex, which is part of most LaTeX installations, we used http://miktex.org/download
  • The HTML-documents are generated with LaTeXML. That is more complicated to install - and can optionally be skipped:
  1. First you need perl, we used http://strawberryperl.com/
  2. And then the official LaTeXML package (0.8.5 or later): http://dlmf.nist.gov/LaTeXML/get.html#SS4.SSS0.Px1 or https://github.com/brucemiller/LaTeXML
  3. The exact commands are in the Makefile

It is also possible to get a preview in the pull request. There will be a link to the status check, which checks that the documents can be generated and gives you an option to download them.