Both sides previous revisionPrevious revisionNext revision | Previous revision |
start [2022/06/07 12:19] – bp | start [2025/05/07 11:07] (current) – bp |
---|
{{ :wiki:images:mupif-logo-3-color.png?250|}} | {{ :wiki:images:mupif-logo.png?100|}} |
| {{keywords> Open Simulation Platform, Digital twin, Interoperability, Modelling, Simulations, Workflows}} |
====== MuPIF ====== | ====== MuPIF ====== |
| |
MuPIF is open-source, modular, object-oriented integration platform allowing to create complex, distributed, multiphysics simulation workflows across the scales and processing chains by combining existing simulation tools. MuPIF uses Python 3.5 standards and is independent on operating system (Linux, UNIX, Windows, Mac, ...). | MuPIF is an open-source, modular, and object-oriented simulation platform designed to create complex, distributed, multiphysics simulation workflows and execute them on distributed resources. It integrates existing simulation tools to handle various scales and processing chains. |
[[https://twitter.com/@ComposelectorH|{{ :wiki:images:twitter-bird.png?50|}}]] | |
| |
==== MuPIF highlights ==== | **Key features of MuPIF include:** |
* Design based on interacting, distributed components (objects). | * Distributed Design: Allows execution of simulation scenarios involving remote applications and data. |
* Components are encapsulation of data, metadata and related services. In MuPIF components repsent models, workflows, and data (such as properties, spatial fields, microstructures, etc.) | * Data Management System (DMS): Builds digital twin representations of physical systems, enhancing predictive simulations. |
* Instead of trying to standardize data structures, MuPIF is focused on identification and standardization of services on component classes | * Interoperability: Standardizes application and data component interfaces, enabling seamless integration of different simulation models and data types. |
* Each generic class (model, workflow, complex data types) represented by abstract class which defines abstract interface (set of standardized services) | * Graphical Workflow Editor: Facilitates low-code workflow development and makes implementation more accessible. |
* Interfaces allow to communicate with any object using generic services, hiding the particular implementation details and allowing plug-and-play architecture | * Security: Supports SSL or VPN-based secure communication and data exchange. |
* Data, metadata and services (algorithms) operating on data encapsulated in a component are exchanged between applications → Models will get data and operations on data in one consistent package, do not have to interpret data themselves | * Portability: Written in Python supporting various operating systems, making it a versatile tool for various applications. |
* MuPIF components can be local as well as remote objects → distributed workflows, distributed data, enabling business model based on software or data as service and marketplaces integration | * Performance: HPC integration to address high computational needs |
* MuPIF supports SSL or VPN based secure communication and data exchange | * Open Source: Available under LGPL Open source license |
* Interfacing to commercial, closed source as well as open source simulation tools and databases. | |
* MuPIF comes with own database solution (MuPIFDB) to track and store simulations and workflow scheduler. Both tools come with REST API allowing easy integration | |
* Graphical workflow editor | |
| |
==== Framework Design ===== | MuPIF utilizes an object-oriented approach, with abstract classes defining standardized interfaces introduced to represent simulation models and data types. |
A reliable multiscale/multiphysics numerical modeling requires including all relevant physical phenomena along the process chain, typically involving multiple scales, and the combination of knowledge from multiple fields. A pragmatic approach lies in combining existing tools, The approach followed in MuPIF is based on an system of distributed, interacting components designed to solve given problem. The individual components represent different entities, including individual simulation packages and simulation workflows, high level data, external databases, etc. The top-level abstract classes are introduced covering all entities in the model space, defining common interfaces that need to be implemented by any derived class, representing particular implementation of specific component. Such interface concept allows using any derived class on a very abstract level, using common services defined by abstract class, without being concerned with the implementation details of an individual software component. This essentially allows to manipulate all models, data, and workflows using standardized interfaces. Moreover, as the complex simulation data are represented by objects as well, the platform is independent on particular data format(s), as they can be manipulated using same abstract interfaces. Therefore, the focus is on services provided by objects (object interfaces) and not on underlying object's data. In addition, the distributed design allows to treat local as well as remote objects using the same interface making the platform naturally distributed. | 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. |
{{ :wiki:images:mwg_full.gif?nolink|}} | 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 MMP platform is its distributed design, allowing to execute simulation scenarios involving remote applications. 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. One can just call a method on a remote object as if it were a local object – the use of remote objects is (almost) transparent. This is achieved by using the concept of proxies representing remote objects, which forward the calls to the remote objects and pass the results back to the calling code. In this way, there is no difference between simulation script for local or distributed case, except for the initialization, where, instead of creating local object, one has to connect to the remote object. | |
| |
| {{ :wiki:images:mupif-distributed-v2-cropped.png?nolink&400|}} |
| |
| 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. |
| |
===== Implementation ===== | |
Rather than writing programs, the Python language is extended by modules, representing interfaces to existing codes and data structures with specific functionality. The emphasis is on building infrastructure to facilitate the implementation of multi-physic and multi-level simulations. The high-level language serves as a “glue” to tie the modules or components together, to create specialized application. Python language provides the flexibility, interactivity, and extensibility needed for such an approach, thanks to its concise and pseudocode-like syntax, modularity and object-oriented design, introspection and self documentation capability, and the availability of a Numerics extension allowing the efficient storage and manipulation of large amounts of numerical data. The application interface can be conveniently realized by wrapping application code. The process of wrapping code can be automated to a fair extent using [[http://www.swig.org/|SWIG]], [[http://www.boost.org|Boost]], or similar tools, which can generate wrapper code for several languages. This approach also allows a single source version of the component code to be maintained. | |
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. | 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. |
| |
====== Documentation ====== | 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. |
* Online [[https://github.com/mupif/mupif/blob/master/mupif/doc/userManual/MuPIF-userman-2.3.pdf|User manual]] and [[https://github.com/mupif/mupif/blob/master/mupif/doc/refManual/MuPIFReferencemanual-2.3.pdf|Reference manual]] | |
* Three webinars on MuPIF platform design, installation, and use are available on [[http://mmp-project.eu/doku.php?id=public_events|MMP project website]] and also available on YouTube: | ====== Documentation & Resources ====== |
* [[https://www.youtube.com/watch?v=Q9FRviRo0TE| 1st webinar on Generic platform design]], | * The Musicode project MuPIF training video recording is available on YouTube: [[https://youtu.be/oaN78pB8vxw | Musicode MuPIF training]]. |
* [[https://www.youtube.com/watch?v=NFmCYtou_hM | 2nd webinar on Build your own API]], | * The mupif/jupyter-demos repository on GitHub contains |
* [[https://www.youtube.com/watch?v=72vj_Uf5YQo| 3rd webinar on Perform a platform run]]. | * [[https://github.com/mupif/jupyter-demos/blob/main/Introduction/index.ipynb | MuPIF Tutorial for beginners]] |
===== Demonstration of platform use ===== | * [[https://github.com/mupif/jupyter-demos/blob/main/API-development/index.ipynb | MuPIF Model API development tutorial]] |
* [[wiki:examples:thermo-mechanical-demo|Coupled thermo-mechanical analysis]] | * Online [[https://mupif.readthedocs.io/en/latest/#|User manual]] and [[https://mupif.readthedocs.io/en/latest/ref.html|Reference manual]] |
* [[wiki:examples:multiscale-heat-transfer-demo|Multiscale heat transfer]] | * [[https://github.com/mupif/mupif.git| MuPIF github repository]] |
| * [[wiki:workfloweditor|Workflow Editor and Code Generator]] A graphical tool to compose a workflow structure and generate a Python code of the simulation. |
| |
| * Examples |
| * [[wiki:examples:thermo-mechanical-demo|Example of Coupled thermo-mechanical analysis]] |
| * [[wiki:examples:multiscale-heat-transfer-demo|Demo of Multiscale heat transfer]] |
| |
===== How to get MuPIF ===== | ===== 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 | The easiest installation happens through Python Package Index (pip) which takes care of dependencies and installs/updates missing modules automatically. Run as a command |
<code> | <code> |
pip install mupif | pip3 install --upgrade git+https://github.com/mupif/mupif.git |
| </code> |
| Alternatively, you may download and install MuPIF from [[https://github.com/mupif/mupif.git|MuPIF git repository]] |
| <code> |
| git clone https://github.com/mupif/mupif.git |
</code> | </code> |
Alternatively, you may download and install MuPIF from [[https://github.com/mupif/mupif.git|git repository]]. | |
===== License ===== | ===== License ===== |
MuPIF is available under GNU Library or Lesser General Public License version 3.0 (LGPLv3) | 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 [[https://github.com/mupif/mupif| MuPIF GitHub page]] | |
| |
===== Authors & Credits ===== | ===== Authors & Credits ===== |
| |
| {{ :wiki:images:mupif_team_2024.jpg?nolink&280|MuPIF 2024 team (From left S.Šulc, B. Patzák and V. Šmilauer)}} |
Mupif developpers: | Mupif developpers: |
* [[http://mech.fsv.cvut.cz/~bp|Bořek Patzák]] (Lead Developper) | * [[http://mech.fsv.cvut.cz/~bp|Bořek Patzák]] (Lead Developper) |
* Stanislav Šulc | * Stanislav Šulc |
* Former developpers: Daniel Rypl, Jaroslav Kruis, Guillaume Pacquaut | * Former developpers: Daniel Rypl, Jaroslav Kruis, Guillaume Pacquaut |
Contact: info@oofem.org | Contact: Borek.Patzak(at)cvut.cz |
| |
| ===== How to cite MuPIF ===== |
| When referencing MuPIF in a publication, please cite at least one of the following papers: |
| * B. Patzák, S. Šulc and V. Šmilauer. Towards digital twins: Design of an entity data model in the MuPIF simulation platform, Advances in Engineering Software, Volume 197, 2024. |
| * B. Patzák, D. Rypl, and J. Kruis. Mupif – a distributed multi-physics integration tool. Advances in Engineering Software, 60–61(0):89 -- 97, 2013. |
| |
| In addition, you can also cite MuPIF web pages as |
| |
| * B. Patzák, MuPIF project home page. http://www.mupif.org, 2024. |
| |
====== Resources ====== | |
* [[https://github.com/mupif/mupif.git| MuPIF github repository]] | |
* [[wiki:workfloweditor|Workflow Editor and Code Generator]] A graphical tool to compose a workflow structure and generate a Python code of the simulation. | |
===== Related tools ===== | |
* Python Programming Language, [[http://www.python.org/]]. | |
* Boost - C++ wrapper generator, [[http://www.python.org/]]. | |
* Pyro project home page, [[http://pyro.sourceforge.net/]]. | |
===== Related Publications ===== | ===== Related Publications ===== |
* B. Patzák, D. Rypl, and J. Kruis. Mupif – a distributed multi-physics integration tool. Advances in Engineering Software, 60–61(0):89 -- 97, 2013 (http://www.sciencedirect.com/science/article/pii/S0965997812001329). | * <wrap hi>New, Open Access:</wrap> **B. Patzák, S. Šulc and V. Šmilauer. Towards digital twins: Design of an entity data model in the MuPIF simulation platform, Advances in Engineering Software, Volume 197, 2024 (https://www.sciencedirect.com/science/article/pii/S0965997824001406).** |
* B. Patzák. Design of a multi-physics integration tool. In B. H. V. Topping, J. M. Adam, F. J. Pallares, R. Bru, and M. L. Romero, editors, Proceedings of the Seventh International Conference on Engineering Computational Technology, Stirlingshire, United Kingdom, 2010. Civil-Comp Press. paper 127. | * <wrap hi>New</wrap> D. Campagna, A. Del Piccolo, K. Kaklamanis, S. Šulc, M. De Bernardi, F. Ellero, S. Kalourazi, K. Reimann, M. Andrea, K. Kordos, M. Selzer, B. Nestler, D. Papageorgiou, A. Kneer, D. Di Stefano, B. Patzák, and E Lidorikis. Streamlining multi-scale materials modeling: The musicode low-code approach for simulation workflows and executable modas. Integrating Materials and Manufacturing Innovation, April 2025 (https://link.springer.com/article/10.1007/s40192-025-00395-5). |
* B. Patzak, V. Smilauer, and G. Pacquaut, presentation & paper “Design of a Multiscale Modelling Platform” at the 15 th International Conference on Civil, Structural, and Environmental Engineering Computing, 1st - 4th of September 2015, Prague (Czech Republic). | * B. Patzák , S. Šulc , V. Šmilauer. MuPIF: Framework for Digital Twins and Interoperable Simulation Platform for Advanced Material Design. 9th European Congress on Computational Methods in Applied Sciences and Engineering (ECCOMAS 2024), 3-7 June 2024, Lisboa, Portugal. |
* B. Patzák, V. Šmilauer, M. Apel, R. Altenfeld, L. Thielen, A. Lankhorst, [[http://congress.cimne.com/icme2016/admin/files/filepaper/p67.pdf|Multi-Physics Integration Framework MuPIF – design, operation and application to simulate CIGS thin film growth for photovoltaics]], 2nd International Workshop on Software Solutions for ICME, April 2016, Barcelona, Spain. | * S. Belouettar, C. Kavka, B. Patzák, H. Koelman, G. Rauchs, G. Giunta, A. Madeo, S. Pricl, S. et al. Integration of material and process modelling in a business decision support system: Case of COMPOSELECTOR H2020 project. Composite Structures, 204, 778-790, 2018. |
* B. Patzák, V. Šmilauer and M. Horák. MuPIF: Multi-Physics Integration Platform. 6th European Conference on Computational Mechanics (ECCM 6), Glasgow, 2018. | * B. Patzák, V. Šmilauer and M. Horák. MuPIF: Multi-Physics Integration Platform. 6th European Conference on Computational Mechanics (ECCM 6), Glasgow, 2018. |
* S. Belouettar, C. Kavka, B. Patzák, H. Koelman, G. Rauchs, G. Giunta, A. Madeo, S. Pricl, S. et al. Integration of material and process modelling in a business decision support system: Case of COMPOSELECTOR H2020 project. Composite Structures, 204, 778-790, 2018. | * B. Patzák, V. Šmilauer, M. Apel, R. Altenfeld, L. Thielen, A. Lankhorst, [[http://congress.cimne.com/icme2016/admin/files/filepaper/p67.pdf|Multi-Physics Integration Framework MuPIF – design, operation and application to simulate CIGS thin film growth for photovoltaics]], 2nd International Workshop on Software Solutions for ICME, April 2016, Barcelona, Spain. |
| * B. Patzak, V. Smilauer, and G. Pacquaut, presentation & paper “Design of a Multiscale Modelling Platform” at the 15 th International Conference on Civil, Structural, and Environmental Engineering Computing, 1st - 4th of September 2015, Prague (Czech Republic). |
| * B. Patzák. Design of a multi-physics integration tool. In B. H. V. Topping, J. M. Adam, F. J. Pallares, R. Bru, and M. L. Romero, editors, Proceedings of the Seventh International Conference on Engineering Computational Technology, Stirlingshire, United Kingdom, 2010. Civil-Comp Press. paper 127. |
| * **B. Patzák, D. Rypl, and J. Kruis. Mupif – a distributed multi-physics integration tool. Advances in Engineering Software, 60–61(0):89 -- 97, 2013 (http://www.sciencedirect.com/science/article/pii/S0965997812001329).** |
| |
| |
| |
| |
| |
===== Projects using MuPIF===== | ===== Projects using MuPIF===== |
| * MuPIF used in INODIN project (Innovative methods for materials diagnostics and monitoring of engineering infrastructure to improve its durability and service life) to provide digital twin platform, MŠMT project CZ.02.01.01/00/23_020/0008487 |
* **MuPIF spotted by EU Innovation Radar as innovation exploring value creation opportunities** [[https://www.innoradar.eu/innovation/35416]] | * **MuPIF spotted by EU Innovation Radar as innovation exploring value creation opportunities** [[https://www.innoradar.eu/innovation/35416]] |
* MuPIF used as modeling platform in H2020 [[http://composelector.net|Composelector]] and [[http://musicode.eu|Musicode]] projects | * MuPIF used as modeling platform in EU H2020 [[http://composelector.net|Composelector]] and [[http://musicode.eu|Musicode]] projects |
* Platform is used to simulate the effect of fire on structural response, project GACR 16-18448S | * MuPIF has been used to simulate CIGS selenization and Light conversion in LEDs in EU FP7 [[http://mmp-project.eu|MMP]] project |
| * SUMO: Sustainable design empowered by materials modelling, semantic interoperability and multi-criteria optimization, Czech Science Foundation, project no. 22-35755K, 2022-2024. |
| * DeeMa project (Deep-Learning and Optimisation Enabled Material Microstructure Design), funded by Technology Agency of the Czech Republic, grant agreement no. TH75020002. |
| * Platform has facilitated simulations of the effect of fire on structural response, project GACR 16-18448S |
* Platform has been used to model moisture condensation in tunnels, project [[http://cesti.cz|CESTI]] | * Platform has been used to model moisture condensation in tunnels, project [[http://cesti.cz|CESTI]] |
* MuPIF has been used to simulate CIGS selenization and Light conversion in LEDs in EU FP7 [[http://mmp-project.eu|MMP]] project. | * MuPIF has been used to simulate CIGS selenization and Light conversion in LEDs in EU FP7 [[http://mmp-project.eu|MMP]] project. |
===== Events ===== | ===== Events ===== |
* Ioannina Summer School on Multiscale Modelling and Open Innovation Platforms, 18-23 July 2022, Ioannina, Greece (online event), http://musicode.eu/events/summer-schools/2022 | * Ioannina Summer School on Multiscale Modelling and Open Innovation Platforms, 18-23 July 2022, Ioannina, Greece (online event), http://musicode.eu/events/summer-schools/2022 |
| |
| ===== Support ===== |
| The GitHub issue subsystem to report any bugs or get a support [[https://github.com/mupif/mupif| MuPIF GitHub page]] |
| |
===== Course ===== | ===== Course ===== |
===== Acknowledgements===== | ===== Acknowledgements===== |
* The original development of MuPIF has been funded by Grant Agency of the Czech Republic - Project No. P105/10/1402. | * The original development of MuPIF has been funded by Grant Agency of the Czech Republic - Project No. P105/10/1402. |
* The development has been supported by several EU project: | * The development has been supported by several EU/Natinal project: |
* MMP - Multiscale Modelling Platform: Smart design of nano-enabled products in green technologies (FP7 project number 604279), | * MMP - Multiscale Modelling Platform: Smart design of nano-enabled products in green technologies (FP7 project number 604279), |
* [[http://composelector.net|COMPOSELECTOR: Multi-scale Composite Material Selection Platform with a Seamless Integration of Materials Models and Multidisciplinary Design Framework]] (H2020 project no 721105, 2017-2020). | * [[http://composelector.net|COMPOSELECTOR: Multi-scale Composite Material Selection Platform with a Seamless Integration of Materials Models and Multidisciplinary Design Framework]], Project no 721105, 2017-2020. |
* At present, the MuPIF is part of H2020 MuSICODE project (An experimentally-validated multi-scale materials, process and device modeling & design platform enabling non-expert access to open innovation in the organic and large area electronics industry, 2021-2024). | * [[http://musicode.eu|H2020 MuSICODE project: An experimentally-validated multi-scale materials, process and device modeling & design platform enabling non-expert access to open innovation in the organic and large area electronics industry]], Grant agreement no. 953187, 2021-2024. |
| * DeeMa project (Deep-Learning and Optimisation Enabled Material Microstructure Design), funded by Technology Agency of the Czech Republic, grant agreement no. TH75020002. |
| * INODIN project (Innovative methods for materials diagnostics and monitoring of engineering infrastructure to improve its durability and service life), funded by MŠMT, grant agreement CZ.02.01.01/00/23_020/0008487. |
| |
| |
<WRAP centeralign> | <WRAP centeralign> |
Access counter: <html> | Access counter: <html> |
<a href="https://www.free-count.com/" target="blank"><img src="https://www.free-count.com/countme.php?id=2156466&la=1001&no=1&fn=7&rs=60" title="Webcounter from Free-Count.com" style="border:0"></a> | <!-- Histats.com (div with counter) --><div id="histats_counter"></div> |
</html> (Since May, 2016) | <!-- Histats.com START (aync)--> |
| <script type="text/javascript">var _Hasync= _Hasync|| []; |
| _Hasync.push(['Histats.start', '1,4736990,4,2049,280,25,00001010']); |
| _Hasync.push(['Histats.fasi', '1']); |
| _Hasync.push(['Histats.track_hits', '']); |
| (function() { |
| var hs = document.createElement('script'); hs.type = 'text/javascript'; hs.async = true; |
| hs.src = ('//s10.histats.com/js15_as.js'); |
| (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(hs); |
| })();</script> |
| <noscript><a href="/" target="_blank"><img src="//sstatic1.histats.com/0.gif?4736990&101" alt="free counter" border="0"></a></noscript> |
| <!-- Histats.com END --> |
| </html> (Since February, 2023) |
</WRAP> | </WRAP> |
| |
| |