Co-simulation is often used to perform a comprehensive simulation across
multiple physical domains; for example, mechanical, thermal, electromagnetic,
or fluids. The simulation code for each physical domain can be an independent
executable with its own internal algorithms specific to that domain.
When a simulation code is capable of exchanging information with other
executing codes (for example, to exchange boundary conditions) it is
referred to as a co-simulation code.
Typically a multiphysics co-simulation consists of multiple simulation
codes from the same or different vendors for different physical domains.
There may be any number of simulation codes in a co-simulation; two or
three is common.
The co-simulation infrastructure in Isight
and the SIMULIA Execution Engine
provides the following:
-
Support for inclusion of co-simulation codes into the simulation flow
by encapsulating them in Isight
components.
-
Modeling of the collection of co-simulation codes in the simulation
flow structure. The collection of codes is called a co-simulation group
in Isight.
-
Visual highlighting of the co-simulation group in the simulation flow
diagram.
-
Support for concurrent execution of the co-simulation group members
with guaranteed sufficient resources for the entire group.
-
Runtime services for co-simulation components to discover each other
and establish communications.
The co-simulation infrastructure does not do the following:
-
Define the communications protocol or mechanisms for co-simulation codes
to talk to each other. Communications between co-simulation codes at
runtime does not pass through any SIMULIA Execution Engine
infrastructure; thus, any suitable communications protocol such as Message
Passing Interface (MPI) can be used.
-
Make any assumptions about the nature of individual members of the co-simulation
group. For example, if one member of the group acts as a controller or
manager of the others, the SIMULIA Execution Engine
does not manage or model this.