View on GitHub

CoSimIO

Small standalone tool for interprocess communication in CoSimulation contexts for coupling and exchanging data between different solvers or other software-tools.

Tutorials for integrating the CoSimIO

Main Page of Documentation

Table of Contents


The tutorials contain step-by-step instructions for integrating the CoSimIO, establishing a connection to Kratos, doing mapping with Kratos and performing CoSimulation with Kratos.

Each language has its specific tutorials:

C++ Interface

Is the natural interface of the CoSimIO providing its full capabilities.

The first three tutorials show the basics:

  1. Integration of CoSimIO link
  2. Basic data exchange with Kratos link
  3. Mesh exchange with Kratos link

Optional: Using the CoSimIO with MPI link

After the basics are done, one can do:

C Interface

A subset of the C++ interface providing the interface for double and common C arrays with set of functions representing the C++ class methods.

The first three tutorials show the basics:

  1. Integration of CoSimIO link
  2. Basic data exchange with Kratos link
  3. Mesh exchange with Kratos link

Optional: Using the CoSimIO with MPI link

After the basics are done, one can do:

Python Interface

Is an extensive interface based on the C++ one which provides the most capabilities.

The first three tutorials show the basics:

  1. Integration of CoSimIO link
  2. Basic data exchange with Kratos link
  3. Mesh exchange with Kratos link

Optional: Using the CoSimIO with MPI link

After the basics are done, one can do:

Selection of language

The Python interface is recommended for solvers/software-tools implemented in Python. Furthermore it is recommend to be used if the solver/software-tool has an efficient Python interface (efficient in the sense of compute and memory-overhead). The C++ is the most complete one and the C is a practical substitute for solvers/software-tools in other languages avoiding the incompatibilities and complexities of C++ interface.