About Co-Simulation

You can develop co-simulation components that run at the same time in Isight and the SIMULIA Execution Engine. A co-simulation in Isight is a single logical simulation that is composed of multiple distinct executable codes that execute concurrently and communicate with each other. It can also include a controller process that coordinates the work of the individual simulation codes. It is common for each co-simulation component to have extensive resource requirements: multiple CPUs, memory, or disk space. It is also typical for each code to run on its own host (or set of hosts) in a distributed computing grid environment.

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.