{"id":20031200,"url":"https://github.com/kratosmultiphysics/cosimio","last_synced_at":"2025-10-11T13:20:29.351Z","repository":{"id":37012601,"uuid":"256540396","full_name":"KratosMultiphysics/CoSimIO","owner":"KratosMultiphysics","description":"Small standalone tool for interprocess communication in CoSimulation contexts for coupling and exchanging data between different solvers or other software-tools.","archived":false,"fork":false,"pushed_at":"2025-06-13T15:22:13.000Z","size":6363,"stargazers_count":17,"open_issues_count":6,"forks_count":5,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-08-13T07:09:04.280Z","etag":null,"topics":["co-simulation","coupling","multi-physics"],"latest_commit_sha":null,"homepage":"https://kratosmultiphysics.github.io/CoSimIO/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KratosMultiphysics.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-04-17T15:27:03.000Z","updated_at":"2025-06-22T13:50:52.000Z","dependencies_parsed_at":"2023-10-29T22:22:16.445Z","dependency_job_id":"715c10e5-ae32-4080-93cc-fcd9d8ce9068","html_url":"https://github.com/KratosMultiphysics/CoSimIO","commit_stats":{"total_commits":731,"total_committers":9,"mean_commits":81.22222222222223,"dds":"0.10670314637482903","last_synced_commit":"a1feb8fe6e1ca7ba42e56c39202aa9e519129ea8"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/KratosMultiphysics/CoSimIO","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KratosMultiphysics%2FCoSimIO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KratosMultiphysics%2FCoSimIO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KratosMultiphysics%2FCoSimIO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KratosMultiphysics%2FCoSimIO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KratosMultiphysics","download_url":"https://codeload.github.com/KratosMultiphysics/CoSimIO/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KratosMultiphysics%2FCoSimIO/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279007317,"owners_count":26084280,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["co-simulation","coupling","multi-physics"],"created_at":"2024-11-13T09:31:34.320Z","updated_at":"2025-10-11T13:20:29.314Z","avatar_url":"https://github.com/KratosMultiphysics.png","language":"C++","readme":"~~~\n   ______     _____ _           ________\n  / ____/___ / ___/(_)___ ___  /  _/ __ |\n / /   / __ \\\\__ \\/ / __ `__ \\ / // / / /\n/ /___/ /_/ /__/ / / / / / / // // /_/ /\n\\____/\\____/____/_/_/ /_/ /_/___/\\____/\nKratos CoSimulationApplication\n~~~\n\n\u003c!--- [![CI](https://github.com/KratosMultiphysics/CoSimIO/actions/workflows/ci.yml/badge.svg?event=schedule)](https://github.com/KratosMultiphysics/CoSimIO/actions/workflows/ci.yml)--\u003e\n# CoSimIO\n\nThe _CoSimIO_ is a small library for interprocess communication in CoSimulation contexts. It is designed for exchanging data between different solvers or other software-tools. For performing coupled simulations it is used in combination with the [_CoSimulationApplication_](https://github.com/KratosMultiphysics/Kratos/tree/master/applications/CoSimulationApplication).\\\nIt is implemented as a _detached interface_. This means that it follows the interface of Kratos but is independent of Kratos, which allows for an easy integration into other codes / solvers\n\nThe implementation is defined in [co_sim_io](https://github.com/KratosMultiphysics/CoSimIO/blob/master/co_sim_io)\n\nDocumentation and tutorials can be found [here](https://kratosmultiphysics.github.io/CoSimIO/)\n\nDifferent methods for interprocess communication are available, their documentation can be found [here](https://kratosmultiphysics.github.io/CoSimIO/communication)\n\nThe tests are contained in [tests](https://github.com/KratosMultiphysics/CoSimIO/blob/master/tests)\n\nThe [changelog](https://github.com/KratosMultiphysics/CoSimIO/blob/master/CHANGELOG.md) contains information about relevant changes in the different versions.\n\n## Dependencies\n- The _CoSimIO_ is implemented as a standalone tool in C++. The only dependency is C++11. This includes most of the major C++ compilers in Windows, Linux, and Mac. A detailed list of C++11 compatible compilers [here](https://en.cppreference.com/w/cpp/compiler_support#cpp11).\n- Dependency on Kratos: There is **NO** dependency on Kratos. The _CoSimIO_ can be used completely without including or linking against Kratos.\n\n## Available languages\nBesides the native C++ interface, the _CoSimIO_ also provides interfaces to other languages. Currently the following languages are supported:\n- C\n- Python\n- Fortran\n\nThese interfaces are implemented as consistent as possible with the C++ interface.\n\n## Usage\nThis section provides a brief overview on how to use the _CoSimIO_. For more detailed explanations please check the [documentation](https://kratosmultiphysics.github.io/CoSimIO/) in the corresponding language.\n\n### **C++**\nThe C++ interface is defined in [co_sim_io.hpp](https://github.com/KratosMultiphysics/CoSimIO/blob/master/co_sim_io/co_sim_io.hpp). In addition to including this header it is required to compile _CoSimIO_ into a shared library and link against it.\n\n### **C**\nThe C interface is defined in [co_sim_io_c.h](https://github.com/KratosMultiphysics/CoSimIO/blob/master/co_sim_io/c/co_sim_io_c.h). In addition to including this header it is required to compile _CoSimIO_ into a shared library and link against it.\n\n### **Python**\nThe Python interface is defined in [_CoSimIO_ python module](https://github.com/KratosMultiphysics/CoSimIO/blob/master/co_sim_io/python/co_sim_io_python.cpp). The [pybind library](https://github.com/pybind/pybind11) is used for the Python exposure of the C++ interface.\n\n### **Fortran**\nThe Fortran interface is defined in [co_sim_io.f90](https://github.com/KratosMultiphysics/CoSimIO/blob/master/co_sim_io/fortran/co_sim_io.f90). In addition to including this file it is required to compile _CoSimIO_ into a shared library and link against it.\n\n## Parallelism\nThe _CoSimIO_ supports pure sequential and mpi-parallel executions. Shared memory parallelism is currently not planned but might be added at a later stage.\n\n## Memory Management\nCoupling requires frequent exchange of data. Therefore the _CoSimIO_ uses the memory provided by the including solvers/software-tools directly, without copying it to an auxiliar data structure.\n\n## Special Thanks To\n- [Boost](http://www.boost.org/) for the `intrusive_ptr`\n- [pybind11](https://github.com/pybind/pybind11) for exposing C++ to python\n- [filesystem](https://github.com/gulrak/filesystem) Header-only single-file std::filesystem compatible helper library, based on the C++17 specs\n- [asio](https://think-async.com/Asio/) for socket based interprocess communication\n- [doctest](https://github.com/onqtam/doctest) C++ testing framework for the unit tests\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkratosmultiphysics%2Fcosimio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkratosmultiphysics%2Fcosimio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkratosmultiphysics%2Fcosimio/lists"}