Git Product home page Git Product logo

modelicaspecification's Introduction

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.

modelicaspecification's People

Contributors

adeas31 avatar adrpo avatar beutlich avatar casella avatar christoff-buerger avatar dietmarw avatar eshmoylova avatar gallleo avatar gkurzbach avatar gwr69 avatar hansolsson avatar henrikt-ma avatar hildingelmqvist avatar maltelenz avatar martinotter avatar otronarp avatar perost avatar phannebohm avatar qlambert-pro avatar sjoelund avatar thorade avatar tobolar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

modelicaspecification's Issues

Addressable annotation data

Reported by mtiller on 6 Mar 2008 16:10 UTC
A chronic issue with annotation information is that it is not defined how annotations interact with inheritance and how annotation can be changed either at instantiation time or during inheritance.

It would be ideal to have a way to address all annotation data.


Migrated-From: https://trac.modelica.org/Modelica/ticket/53

Multiple inheritance and array types

Modified by dietmarw on 7 Mar 2008 22:26 UTC
From Stefan Vorkoetter:

Consider the following:

  model M
    // Declare a pair of simple classes.
    class T Real t; end T;
    class U Real u; end U;

    // Now create a pair of array types.
    type TVec2 = T[2];
    type UVec3 = U[3];

    // This new class extends both array types.
    class V
        extends TVec2;
	extends UVec3;
    end V;

    // What is the dimension of v?
    V v;
end M;

Reported by HansOlsson on 6 Mar 2008 12:43 UTC
From Stefan Vorkoetter:

Consider the following:

  model M
    // Declare a pair of simple classes.
    class T Real t; end T;
    class U Real u; end U;

    // Now create a pair of array types.
    type TVec2 = T[2];
    type UVec3 = U[3];

    // This new class extends both array types.
    class V
        extends TVec2;
	extends UVec3;
    end V;

    // What is the dimension of v?
    V v;
end M;}}}


Migrated-From: https://trac.modelica.org/Modelica/ticket/51

Nested simulation

Reported by mtiller on 6 Mar 2008 15:35 UTC
General Motors raised several issues related evaluations of simulations in a "nested" fashion. These means that there is a top level simulation which is running that invokes nested simulations. When these nested simulations are invoked the top level simulation is "paused" while the nested simulation is run. Then after the nested simulation is run, the results are accessible to the top level simulation.

The GM application included the following requirements:

  • It should be possible to specify simulation settings for the nested simulation independently from the top level (e.g. use fixed time step for nested but variable for top level).
  • It should be possible to set the values of states and parameter variables in the nested simulation.
  • It should be possible to read the values of all variables in the nested simulation after simulation.

Migrated-From: https://trac.modelica.org/Modelica/ticket/52

Ambiguity in specification of external functions returning arrays

Reported by casella on 27 Feb 2008 17:37 UTC
The paragraph 12.8.1.2 of the specification is ambiguous. The type of the C and Fortran code function is described in terms of T', as defined in section 12.8.1.1. However, for C functions two different T' are defined, one for input arguments and the other for output arguments, with a different level of indirection. For example, an Integer input corresponds to int, while an Integer output corresponds to int *; an Integer[:] input clearly corresponds to int *, but it is not clear whether an Integer[:] output should be int * or int **.

In fact, the double indirection in case of array outputs seems unnecessary, so I'd suggest to make the spec clearer by replacing the last sentence in the third paragraph of 12.8.1.2 with the following text:

"The type T is allowed to be any of the simple types which can be passed to C as defined in Section 12.8.1.1 or a record type as defined in Section 12.8.1.3 and it is mapped to the type T’ as defined in these sections for input arguments.

This corresponds to the current Dymola implementation, and just makes sense.
I would also suggest to add an example of an external C-function returning arrays, e.g.

function foo2 input Real x[:]; output Real y[size(a,1)]; external;end foo2;

would correspond to the following signature

void foo2(int *x, size_t dimx, int *y, size_t dimy);

(please double-check the example!)


Migrated-From: https://trac.modelica.org/Modelica/ticket/49

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.