Table of Contents

MuPIF

MuPIF platform is an open-source, modular, and object-oriented simulation platform designed to create complex, distributed, multiphysics simulation workflows. It integrates existing simulation tools to handle various scales and processing chains.

Key features of MuPIF include:

MuPIF utilizes an object-oriented approach, with abstract classes defining standardized interfaces introduced to represent simulation models and data types. This concept allows to manipulate and steer all models using generic interface. It will also allow to abstract from a particular internal data representation of a data type, including storage and location. In turn, the models working with the data obtain required information from data objects using services, rather than obtaining them by interpreting raw data (which yields the data format dependence). One can think of abstract classes as representing data as “data bricks” with standardized connectors able to be used in their appropriate place in workflows to represent abstract data containers. MuPIF achieves interoperability with standardization of application and data component interfaces and it is not reliant on standardized data structures or protocols. Any existing data representation or simulation model can be plugged in and used transparently, provided the corresponding data interface is implemented.

Even though the platform can be used locally on a single computer orchestrating installed applications, the real strength of the MuPIF platform is its distributed design, allowing to execute simulation scenarios involving remote applications and data. MuPIF provides a transparent distributed object system, which takes care of the network communication between the objects when they are distributed over different machines on the network.

The simulation workflows are implemented as Python scripts built on top of MuPIF. The graphical workflow editor is available to make the workflow implementation more accessible and convenient.

MuPIF comes with a Data Management System (DMS) called MuPIFDB. The DMS is used to track integrated simulation workflows, their executions including execution inputs and outputs. It also provides a generic Digital Twin model, which is based on Entity Data Model (EDM). The EDM identifies the individual entities, their attributes and relations between them. The EDM is defined using JSON schema, and the DMS structure is generated from this schema. The EDM allows to map entity attributes to simulation workflow inputs (determining the initial conditions) and simulation workflow outputs can be mapped to newly cloned entities representing updated configuration(s). The EDM can be regarded as hypergraph, where nodes represent entity states and edges representing processes.

Documentation & Resources

How to get MuPIF

The easiest installation happens through Python Package Index (pip) which takes care of dependencies and installs/updates missing modules automatically. Run as a command

pip3 install --upgrade git+https://github.com/mupif/mupif.git

Alternatively, you may download and install MuPIF from MuPIF git repository

git clone https://github.com/mupif/mupif.git

License

MuPIF is available under GNU Library or Lesser General Public License version 3.0 (LGPLv3)

Support

The GitHub issue subsystem to report any bugs or get a support MuPIF GitHub page

Authors & Credits

Mupif developpers:

Contact: Borek.Patzak(at)cvut.cz

Projects using MuPIF

Events

Course

We offer intensive, one-day course on multi-scale and multi-physics modeling using MuPIF platform. The course covers following topics:

Acknowledgements

At present, the MuPIF development is supported by following projects

Access counter:

(Since February, 2023)