Co-simulation


In co-simulation, the different subsystems which form a coupled problem are modeled and simulated in a distributed manner. Hence, the modeling is done on the subsystem level without having the coupled problem in mind. Furthermore, the coupled simulation is carried out by running the subsystems in a black-box manner. During the simulation the subsystems will exchange data. Co-simulation can be considered as the joint simulation of the already well-established tools and semantics; when they are simulated with their suitable solvers. Co-simulation proves its advantage in validation of multi-domain and cyber physical system by offering a
flexible solution which allows consideration of multiple domains with different time steps, at the same time. As the calculation load is shared among simulators, co-simulation also enables the possibility of large scale system assessment.

Abstraction layers of co-simulation framework

The following introduction and structuration is proposed in.
Establishing a co-simulation framework can be a challenging and complex task because it requires a strong interoperability among the participating elements, especially in case of multiple-formalism co-simulation. Harmonization, adaptation and eventually changes of actual employed standards and protocols in individual models need to be done to be able to integrate into the holistic framework. The generic layered structuration of co-simulation framework highlights the intersection of domains and the issues that need to be solved in the process of designing a co-simulation framework. In general, a co-simulation framework constitutes of five abstraction layers:
Abstraction layerDescriptionAssociated issues
ConceptualHighest level where the models are considered as black boxes and the level concerns the co-simulation framework representation.Generic structure of the framework; Meta-Modeling of the components.
SemanticThe level concerns the signification and the role of the co-simulation framework with respect to the open questions of the investigated system and studied phenomenon.Signification of individual models; Interaction graph among the models; Signification of each interaction.
SyntacticThe level concerns the formalization of the co-simulation framework.Formalization of individual models in the respective domains; Specification and handling the difference between a formalism to another one.
DynamicThe level concerns the execution of the co-simulation framework, the synchronization techniques and harmonization of different models of computation.Order of execution and causality of models; Harmonization of different models of computation; Resolution for potential conflict in simultaneity of actions.
TechnicalThe level concerns the implementation details and evaluation of simulation.Distributed or centralized implementation; Robustness of the simulation; Reliability and efficiency of the simulation.

From conceptual structuration, the architecture on which the co-simulation framework is developed and the formal semantic relations/syntactic formulation are defined. The detailed technical implementation and synchronization techniques are covered in dynamic and technical layers.

Problem Partitioning - Architecture of co-simulation

The partitioning procedure identifies the process of spatial separation of the coupled problem into multiple partitioned subsystems. Information is exchanged through either ad-hoc interfaces or via intermediate buffer governed by a master algorithm. Master algorithm is responsible for instantiating the simulators and for orchestrating the information exchange.

Coupling methods

Co-simulation coupling methods can be classified into operational integration and formal integration, depending on abstraction layers. In general, operational integration is used in co-simulation for a specific problem and aims for interoperability at dynamic and technical layers. On the other hand, formal integration allows interoperability in semantic and syntactic level via either model coupling or simulator coupling. Formal integration often involves a master federate to orchestrate the semantic and syntactic of the interaction among simulators.
From a dynamic and technical point of view, it is necessary to consider the synchronization techniques and communication patterns in the process of implementation.

Communication Patterns

There exist two principal communication patterns for master algorithms. The Gauss-Seidel and the Jacobi variants.
The names of these two methods are derived from the structural similarities to the numerical methods by the same name.
The reason is that the Jacobi method is easy to convert into an equivalent parallel algorithm while there are difficulties to do so for the Gauss-Seidel method.

Gauss-Seidel (serial)

Jacobi (parallel)

Synchronization techniques

Conservative

Optimistic

Synchronization techniques for continuous vs. discrete event simulators

Standards and Software realization

High Level Architecture

Functional Mock-up Interface

For signals co-simulation can be performed with a standardized interface called Functional Mock-up Interface.

Agent-based model

is a modeling approach of complex systems. Each simulator is seen as an agent and "behaves" according to its associated simulator. The agents interact, exchange data between each other in a network. The simulation environment Mecysco is an implementation of this approach

Examples

1D Spring

Steady State Problem

Interface Constraints
Stability

1D/3D Fluid Dynamics