Extension package to farn, adding support to build OSP simulation cases using FMUs.


License
Other
Install
pip install ospx==0.2.14

Documentation

ospx

ospx is an extension package to farn, adding support to build OSP (co-)simulation cases using functional mockup units (FMUs).

ospx supports

  • building of case-specific OSP (co-)simulation configuration files
  • watching the progress of cosim, and saving final simulation results as a pandas dataframe.

Installation

pip install ospx

ospx requires the following (sub-)package:

  • dictIO: foundation package, enabling ospx to handle configuration files in dictIO dict file format.

However, dictIO gets installed automatically with ospx.

Usage Example

ospx provides both an API for use inside Python as well as a CLI for shell execution of core functions.

Reading a caseDict file and building the case-specific OSP (co-)simulation configuration files:

from ospx import OspCaseBuilder

OspCaseBuilder.build('caseDict')

The above task can also be invoked from the command line, using the 'ospCaseBuilder' command line script installed with ospx:

ospCaseBuilder caseDict

For more examples and usage, please refer to ospx's documentation.

File Format

A caseDict is a file in dictIO dict file format used with farn.

For a documentation of the caseDict file format, see File Format in ospx's documentation on GitHub Pages.

For a detailed documentation of the dictIO dict file format used by farn, see dictIO's documentation on GitHub Pages.

Development Setup

  1. Install Python 3.9 or higher, i.e. Python 3.10 or Python 3.11

  2. Update pip and setuptools:

    python -m pip install --upgrade pip setuptools
  3. git clone the dictIO repository into your local development directory:

    git clone https://github.com/dnv-opensource/ospx path/to/your/dev/ospx
  4. In the ospx root folder:

    Create a Python virtual environment:

    python -m venv .venv

    Activate the virtual environment:

    ..on Windows:

    > .venv\Scripts\activate.bat

    ..on Linux:

    source .venv/bin/activate

    Update pip and setuptools:

    (.venv) $ python -m pip install --upgrade pip setuptools

    Install ospx's dependencies:

    (.venv) $ pip install -r requirements-dev.txt

    This should return without errors.

    Finally, install ospx itself, yet not as a regular package but as an editable package instead, using the pip install option -e:

    (.venv) $ pip install -e .
  5. Test that the installation works (in the ospx root folder):

    (.venv) $ pytest .

Meta

Copyright (c) 2024 DNV SE. All rights reserved.

Frank Lumpitzsch – @LinkedIn – frank.lumpitzsch@dnv.com

Claas Rostock – @LinkedIn – claas.rostock@dnv.com

Seunghyeon Yoo – @LinkedIn – seunghyeon.yoo@dnv.com

Distributed under the MIT license. See LICENSE for more information.

https://github.com/dnv-opensource/ospx

Contributing

  1. Fork it (https://github.com/dnv-opensource/ospx/fork)
  2. Create your branch (git checkout -b my-branch-name)
  3. Commit your changes (git commit -am 'place a descriptive commit message here')
  4. Push to the branch (git push origin my-branch-name)
  5. Create a new Pull Request in GitHub

For your contribution, please make sure you follow the STYLEGUIDE before creating the Pull Request.