Skip to main content

Feel++ modelica to fmu converter package

Project description

Feel++ mo2fmu converter

Modelica to FMU converter based on dymola

Installation

From PyPI (Recommended)

Install the latest stable release from PyPI:

pip install feelpp-mo2fmu

Or using uv (faster):

uv pip install feelpp-mo2fmu

From Source

For development or to use the latest unreleased features:

git clone https://github.com/feelpp/mo2fmu.git
cd mo2fmu
uv venv .venv-mo2fmu
source .venv-mo2fmu/bin/activate  # On Windows: .venv-mo2fmu\Scripts\activate
uv pip install -e ".[all]"

Configuration

Dymola Location

The Dymola installation location can be configured via environment variables:

export DYMOLA_ROOT=/opt/dymola-2025xRefresh1-x86_64/
export DYMOLA_EXECUTABLE=/usr/local/bin/dymola
export DYMOLA_WHL=Modelica/Library/python_interface/dymola-2025.1-py3-none-any.whl

These environment variables are used by:

  • Tests (avoiding hardcoded paths)
  • CI/CD workflows
  • Command-line interface defaults

Environment Variables:

  • DYMOLA_ROOT: Path to Dymola installation root directory (default: /opt/dymola-2025xRefresh1-x86_64/)
  • DYMOLA_EXECUTABLE: Path to Dymola executable binary (default: /usr/local/bin/dymola)
  • DYMOLA_WHL: Relative path to Dymola Python wheel from DYMOLA_ROOT (default: Modelica/Library/python_interface/dymola-2025.1-py3-none-any.whl)

Usage in command line

$ mo2fmu --help
Usage: mo2fmu [OPTIONS] MO OUTDIR

Options:
  --fmumodelname TEXT          change the model name of the FMU (default: .mo
                               file stem)
  --load TEXT                  load one or more Modelica packages.
  --flags TEXT                 one or more Dymola flags for FMU translation.
  --type [all|cs|me|csSolver]  the FMI type: cs, me, all, or csSolver.
  --version TEXT               the FMI version.
  --dymola PATH                path to Dymola root.
  --dymolapath PATH            path to Dymola executable.
  --dymolawhl PATH             path to Dymola whl file, relative to Dymola
                               root.
  -v, --verbose                verbose mode.
  -f, --force                  force FMU generation even if file exists.
  --help                       Show this message and exit.----

Usage in Python

Here is an example of how to use the mo2fmu function in Python that would convert a Modelica file to an FMU:

from feelpp.mo2fmu import mo2fmu
mo2fmu(
    mo_file="path/to/model.mo",
    outdir="path/to/output/dir",
    fmumodelname="MyFMUModel",
    load=["Modelica", "SomePackage"],
    flags=["-d=initialization"],
    fmi_type="cs",
    fmi_version="2.0",
    dymola_root="/path/to/dymola/root",
    dymola_executable="/path/to/dymola/executable",
    dymola_whl="/path/to/dymola.whl",
    verbose=True,
    force=False
)

Continuous Integration

Our GitHub Actions workflow (.github/workflows/ci.yml) includes:

  • build_wheel: Python wheel compilation and artifact upload.
  • docs: Builds the Antora site, deploys to GitHub Pages on master.
  • deliver: Docker image build & push to GHCR.
  • release: On tags vX.Y.Z, publishes binaries, wheels, datasets, and creates a GitHub release.

Versioning & Release

Project version is centrally defined in:

  • docs/antora.yml
  • docs/package.json

Contributing

We welcome contributions! Please:

  • Fork the repository and create a feature branch.
  • Adhere to existing coding conventions; add python tests where appropriate.
  • Update documentation (docs/) for any new features.
  • Submit a pull request with a clear description of your changes.

License

This project is licensed under the MIT License. See LICENSE for full details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

feelpp_mo2fmu-0.6.0-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file feelpp_mo2fmu-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: feelpp_mo2fmu-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 8.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for feelpp_mo2fmu-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 745b1ff0ace5da9f93e33c3723c37789052cfb5f5db354b2c9ebe11d7746dc3f
MD5 c251bf32d948bd2474c95c8a8983e9db
BLAKE2b-256 613ab98ff8cdbd103eecf61ccda64bc3ae209a4b485401dff19843110389449b

See more details on using hashes here.

Provenance

The following attestation bundles were made for feelpp_mo2fmu-0.6.0-py3-none-any.whl:

Publisher: ci.yml on feelpp/mo2fmu

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page