User Tools

Site Tools


start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
start [2022/06/09 09:58] bpstart [2022/06/09 10:44] bp
Line 1: Line 1:
-{{ :wiki:images:mupif-logo.png?200|}}+{{ :wiki:images:mupif-logo.png?100|}}
  
 ====== 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 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 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.
 +{{ :wiki:images:mupif-distributed-v2-cropped.png?nolink |}}
 +
 +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 highlights ====  ==== MuPIF highlights ==== 
-  * Design based on interacting, distributed components (objects).  +  * Design based on interacting, distributed components (objects), representing simulation models, workflows, and data (such as properties, spatial fields, microstructures, etc.)  
-  * Components are encapsulation of datametadata and related services. In MuPIF components repsent models, workflows, and data (such as properties, spatial fields, microstructures, etc.)  +  * Instead of trying to standardize data structures, MuPIF is focused on identification and standardization of component services  
-  * Instead of trying to standardize data structures, MuPIF is focused on identification and standardization of services on component classes  +
-  * Each generic class (model, workflow, complex data types) represented by abstract class which defines abstract interface (set of standardized services)  +
-  * Interfaces allow to communicate with any object using generic services, hiding the particular implementation details and allowing plug-and-play architecture+
   * 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   * 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
   * 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   * 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
Line 18: Line 29:
   * Graphical workflow editor     * Graphical workflow editor  
  
-==== Framework Design ===== +====== Documentation & Resources ======
-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.   +
-{{ :wiki:images:mwg_full.gif?nolink|}} +
- +
-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.  +
- +
- +
- +
-===== 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. +
- +
-====== Documentation ======+
   * 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]]   * 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:    * 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: 
Line 36: Line 35:
      * [[https://www.youtube.com/watch?v=NFmCYtou_hM | 2nd webinar on Build your own API]],      * [[https://www.youtube.com/watch?v=NFmCYtou_hM | 2nd webinar on Build your own API]],
      * [[https://www.youtube.com/watch?v=72vj_Uf5YQo| 3rd webinar on Perform a platform run]].      * [[https://www.youtube.com/watch?v=72vj_Uf5YQo| 3rd webinar on Perform a platform run]].
-===== Demonstration of platform use ===== +  * [[https://github.com/mupif/mupif.git| MuPIF github repository]] 
-  * [[wiki:examples:thermo-mechanical-demo|Coupled thermo-mechanical analysis]] +  * [[wiki:workfloweditor|Workflow Editor and Code Generator]] A graphical tool to compose a workflow structure and generate a Python code of the simulation. 
-  * [[wiki:examples:multiscale-heat-transfer-demo|Multiscale heat transfer]]+ 
 +  * 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 =====
Line 61: Line 63:
 Contact: info@oofem.org Contact: info@oofem.org
  
-====== 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).   * 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).
start.txt · Last modified: 2023/04/27 23:10 by bp