Multi-Physics MpCCI

Fraunhofer-Institut für Algorithmen und Wissenschaftliches Rechnen SCAI

Technical Description - System Features

    Technical Description - System Features

Architecture

The MpCCI architecture has been implemented to run on heterogeneous software and hardware combinations. MpCCI supports the coupling of parallel codes – each parallel process communicates with the MpCCI server engine.

With MpCCI the engineer can combine several codes in one single multiphysics application. Each code and the MpCCI server may run on different CPUs in a distributed network. MpCCI may be configured to use high-performance networks like Myrinet or Infiniband. Windows XP and Vista, Linux, and a variety of UNIX platforms are supported by MpCCI.

  • The MpCCI-User-Interface provides a comfortable way to define the coupling setup and to start the simulation – independent of the codes involved in the coupled application.
  • MpCCI Code Adapter allow to adapt MpCCI to commercial codes through their standard code APIs – without any changes in the source of the simulation code.
  • The MpCCI Coupling Server is the "heart" of the MpCCI system. Environment handling, communication between the codes, neighborhood computation, and interpolation are part of this kernel.

Coupling Server

MpCCI 4.0 offers a general solution to couple simulation codes from various software vendors. The coupling server is a fast and high-performance engine for the calculation of mesh neighborhoods and mapping workflows.

The MpCCI 4.0 server system was completely redesigned for more performance and data throughput. Compared to the previous MpCCI 3.x architecture the amount of memory usage and CPU load was reduced by factors. This new MpCCI 4.0 server system now provides a slim and efficient software platform for general code coupling applications.

Mapping workflows are defined per coupling quantity and may be extended on request for specific customer needs. Values are passed through several calculation steps to fulfill the specific physical requirements of the given coupling model. Operators for pre-filter actions, neighborhood calculation and mapping, filling methods, integration routines, and final post-filter actions can be used for quantity specific mapping workflows. Follow-up versions of MpCCI 4.0 will provide an open API to include user-defined operators.

Unit systems of models do not need to be changed for coupling because the coupling server performs automatic conversion of unit systems if needed.

Mapping

MpCCI 4.0 offer s improved numerical methods and handles models with incompatible geometries and mesh granularities. The neighborhood calculation is fast enough for dynamic remeshing.

Coupling Regions

Besides the most popular coupling type – surface coupling in 3D – MpCCI also supports other types of coupling regions: volume coupling in 3D and line coupling for simulation codes computing in 2D.

Additionally MpCCI supports coupling between network and mesh based codes.

Coordinates System

The coordinate systems underlying the coupled models may differ from each other. To avoid the determination of one global coordinate system for all meshes of all codes coordinate transformations may be defined in MpCCI.

Neighborhoods and Interpolation

To define a mapping scheme between coupled meshes three choices must be ma

  1. Mapping schemes
  2. Attributes of the physical quantities
  3. Element types

The basic problem is to determine how the coupling regions fit together. Based on the grid information provided by the codes and their code adapters the coupling server has to determine the neighborhood relationships between the coupled meshes. Each interpolation type in MpCCI needs a special kind of relation between the geometric components of different meshes.

Geometric relationships are defined per coupling region. For different coupling regions different geometric relationships can be computed. MpCCI offers various built-in interpolation schemes so that the interpolation aspects are totally hidden from the codes.

The interpolation scheme depends on the settings in the MpCCI input and the element types defined in the code.

MpCCI server preconditions the parameters for the geometric relationships, e.g. node tolerance parameter is automatically computed based on the minimal distance between nodes within the coupling region, precision parameter is adjusted depending on the minimal node distance.

Conservative Interpolation

MpCCI server guarantees a conservative interpolation after the quantity has been processed within the mapping workflow. Simulation accuracy is increased.

Remeshing

MpCCI 4.0 offer s improved numerical methods and handles models with incompatible geometries and mesh granularities. The neighborhood calculation is fast enough for dynamic remeshing.

Recalculation at Runtime

MpCCI 4.0 offers fast and efficient methods for data mapping. Shape function methods are used for standard elements, a variation of point-to-point algorithms has been implemented for polygon and polyhedra types.

MpCCI 4.0 allows adaptive remeshing and parallel cell migration in the coupled models – any change of the coupling area is detected and handled automatically by the server. Combinations of static and moving reference-frames can be applied for e.g. rotating systems.

Coupling Schemes

The MpCCI 4.0 server concept provides a new way of code coupling. Instead of fully synchronised messages going from CFD to FEM and back from FEM to CFD the new server now follows a more data and content driven concept.

The server may store multiple quantity buffers from a sender (writer) side. each buffer is tagged with senderID, timeTag, and iterationTag. On the other side a receiver (reading) code requests physical boundary conditions for a certain timeTag and iterationTag.

Explicit Sequential coupling scheme (Gauss-Seidel)

  • single buffer ==> works similar as in MpCCI 3
  • multiple buffers ==> same communication scheme, the data synchronization plays a more important role for that scenario.

Explicit Parallel coupling scheme (Jacobi)

  • single buffer without subcycling ==> works similar as in MpCCI 3
  • single buffer with with subcycling ==> The code B is subcycling and is exchanging data after each subcycle. By using a single buffer the code A will use the last data from code B.

 

  • multiple buffers without subcycling ==> works similar as in MpCCI 3.x
  • multiple buffer with subcycling time or iteration ==> The code B is subcycling and is exchanging data after each subcycle. The code A will request data for each iteration step. 
  1. Code B send the data to the server which maps them for code A.
  2. Code B is iterating
  3. Code B finishes its subcycling and send the data to the server. Code B is waiting for data that must match its time stamp.
  4. Code A is iterating one step
  5. Code A send the data to the server and is requesting new data. The exact data value for the require time stamp is not available on the server. But the values requested could be interpolated with the first and last delivered data from Code B. (Code B is still waiting for data because the current data on the server does not fulfill the code requirements. )
  6. Code A is reapeating the same loop until step 11
  7. ...
  8. ...
  9. ...
  10. ...
  11. Code A send the data to the server. The server maps them on the output buffer of code B.
  12. Code B will get interpolated data from time stamp 9 and 11.
  13. Code B is iterating and code A is still waiting.
  14. Code B send the data to the server
  15. Code A get interpolated  data from time stamp 3 and 14.

 

Implicit coupling scheme

Codes that support exchange of data within a time step could implement the implicit coupling scheme:

  • Communication at time step level: 1), 9) and last one
  • Communication at iteration level: 3), 5), 7)  and again 11), 13), ...

User Interface

MpCCI has been designed as a neutral interface between a lot of commercial and inhouse simulation codes. MpCCI itself provides a unique and code-independent way to specify all coupling relevant parameters and to configure and start the coupled application on a computing network. The GUI guides the application engineers through a number of basic configuration steps towards a coupled simulation run:

  • The user has to select the codes and to specify the corresponding input files containing the model data;
  • The next step is to select those element groups in each of the coupled codes which define a coupling region where the coupling interaction takes place; any number of independent coupling regions can be specified during MpCCI setup.
  • For each of these coupled components the quantities to be transferred have to be specified; quantities may be physical values like pressure or temperature.
  • Additionaly the user can select components outside the couling region for monitor. This helps the user observe the interaction of the coupling region on the full model by looking at the pressure distribution for example. Further server parameters like monitoring, trace file formats can be set.
  • Finally the job can be started on a network of computing resources. The MpCCI server has to be launched first. Then the coupled codes will be activated, either in batch or in interactive mode.

Visualiser

The MpCCI visualizer provides a detailed view on the coupled simulation areas. Based on the advanced technology from Ceetron the visualizer offers

  • synchronized views on the single case as well as the super-imposed views,
  • an animation of the simulation results,
  • quantity result visualization on single or multiple cases,
  • a selection feature on the active case for picking up nodal or element value from the mesh,
  • an extraction feature to create iso surfaces or cut planes,
  • XY Plot for plotting values from network codes,
  • and at least an online visualization through socket communication can be used to monitor even batch jobs.