omfrontend.jl

Experimental implementation of NF. That is a Modelica frontend in 100% Julia

https://github.com/jkrt/omfrontend.jl

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.7%) to scientific vocabulary

Keywords

compiler differential-equations julia modelica

Keywords from Contributors

julia-package numerical-methods
Last synced: 6 months ago · JSON representation ·

Repository

Experimental implementation of NF. That is a Modelica frontend in 100% Julia

Basic Info
  • Host: GitHub
  • Owner: JKRT
  • License: other
  • Language: Modelica
  • Default Branch: master
  • Homepage:
  • Size: 7.82 MB
Statistics
  • Stars: 3
  • Watchers: 5
  • Forks: 2
  • Open Issues: 7
  • Releases: 0
Topics
compiler differential-equations julia modelica
Created over 5 years ago · Last pushed 11 months ago
Metadata Files
Readme License Citation

README.md

Github Action CILicense: OSMC-PL

OMFrontend.jl

Experimental implementation of NF. That is a Modelica frontend in Julia.

For the entire suite of software components that make up this compiler see OpenModelica.jl

Notes regarding the first public release

This should be considered an alpha. This means that changes may happen quickly, and that they might be breaking.

Example use

Assuming you have the following Modelica model: model HelloWorld Real x( start = 1, fixed = true ); parameter Real a = 1; equation der(x) = - a * x; end HelloWorld;

You can use the API in the following way (Assuming the file is in the active directory):

import OMFrontend modelFile = "HelloWorld.mo" modelName = "HelloWorld" p = OMFrontend.parseFile(modelFile) scodeProgram = OMFrontend.translateToSCode(p); (FM, cache) = OMFrontend.instantiateSCodeToFM(modelName, scodeProgram); OMFrontend.toString(FM)

This should result in the following string representation of FlatModelica:

"class HelloWorld\n Real x(fixed = true, start = 1.0);\n parameter Real a = 1.0;\nequation\n der(x) = -a * x;\nend HelloWorld;\n"

Note: In this case the flat Modelica code is almost indentical to the original model.

Representation

This particular model uses the FlatModelica datastructure. An alternative is to use the DAE datastructure defined by DAE.jl

Other API functions

There is also an API defined for using libraries, however, as of this writing the documentations for these procedures are not yet finalized and is subject to change. If you are a developer please see OMFrontend.jl/src/OMFrontend.jl for the other methods.

Issues/Questions

For any questions or ideas on how we could collaborate on something please see my LiU email at my page LiU-page

Owner

  • Name: John Tinnerholm
  • Login: JKRT
  • Kind: user
  • Location: Linköping
  • Company: Linköping University

Just another GitHub user... Other Interests: Cars, history, sociology, literature... PhD student at Linköping University:)

Citation (CITATION.bib)

@inproceedings{tinnerholm2021openmodelica,
  title={OpenModelica. jl: A modular and extensible Modelica compiler framework in Julia targeting ModelingToolkit. jl},
  author={Tinnerholm, John and Pop, Adrian and Heuermann, Andreas and Sj{\"o}lund, Martin},
  booktitle={Modelica Conferences},
  pages={109--117},
  year={2021}
}

@article{tinnerholm2020towards,
  title={Towards an Open-Source Modelica Compiler in Julia},
  author={Tinnerholm, John and Pop, Adrian and Sj{\"o}lund, Martin and Heuermann, Andreas and Abdelhak, Karim},
  year={2020}
}

GitHub Events

Total
  • Watch event: 1
  • Push event: 14
Last Year
  • Watch event: 1
  • Push event: 14

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 121
  • Total Committers: 4
  • Avg Commits per committer: 30.25
  • Development Distribution Score (DDS): 0.231
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
John Tinnerholm j****m@g****m 93
Adrian Pop a****p@l****e 24
Mahder Gebremedhin m****e 2
John Tinnerholm j****m@l****e 2
Committer Domains (Top 20 + Academic)
liu.se: 2

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 15
  • Total pull requests: 60
  • Average time to close issues: 4 months
  • Average time to close pull requests: 18 days
  • Total issue authors: 4
  • Total pull request authors: 4
  • Average comments per issue: 1.87
  • Average comments per pull request: 0.53
  • Merged pull requests: 44
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 5 months
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 1.5
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • JKRT (11)
  • PGimenez (2)
  • dafred94 (1)
  • adrpo (1)
Pull Request Authors
  • JKRT (48)
  • adrpo (11)
  • mahge (2)
  • Aether-create (1)
Top Labels
Issue Labels
enhancement (2) CI (1)
Pull Request Labels