File: README.md

package info (click to toggle)
code-saturne 7.0.2%2Brepack-1~exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 62,868 kB
  • sloc: ansic: 395,271; f90: 100,755; python: 86,746; cpp: 6,227; makefile: 4,247; xml: 2,389; sh: 1,091; javascript: 69
file content (60 lines) | stat: -rw-r--r-- 2,360 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
What is FMI2 ?
==============

The __Functional Mock-up Interface standard__ (FMI2) provides an interface
standard for coupling of simulation tools in a co-simulation environment. A
master algorithm controls the data exchange and synchronization between all
simulation solvers (slaves).

What is a FMU ?
===============

A co-simulation slave is called a __FMU__ (Functional Mock-up Unit) and is
distributed in one ZIP file which contains several files:
* An XML file defining every variables in the FMU and other static information
(path for example);
* All required model equations or the access to co-simulation tools are provided
with a small set of C or C++ functions.

How to use code_saturne as a FMU
================================

Building a code_saturne FMU
---------------------------

A FMU Builder tool has been developed allowing to use code_saturne as a FMU.
Access to this tool should be requested to saturne-support@edf.fr

The main steps are the following:
* Open the FMU Builder;
* Define every needed variables and static informations and save
them in a .fpd file;
* Generate the project, creating a directory containing the XML file,
auto-generated C++ files that should not be modified, and a C++ file named
after the project (project.cpp) which much be filled;
* Once every methods are completed (mainly init, doStep, terminate, getters and
setters of every used variable types), the FMU can be built;

Using code_saturne as a FMU
---------------------------

When the code_saturne FMU is built, a .fmu file is created. In order to test it,
a few test environments are available. Most tests have been made using a free
python library to simulate FMUs called
[FMPy](https://github.com/CATIA-Systems/FMPy).

The .fmu file can be opened in FMPy and variables can be plotted during the
simulation.

Example
=======

An example is provided in the current directory. This example is based on a
code_saturne simulation on a stratified case (such as the stratified_junction
tutorial) where the cold inlet velocity is set and outlet temperatures are
retrievied using the FMU.

A .fpd file as well as the main project C++ file allow one to build a full
code_saturne FMU. In order to use it, one can follow the steps defined in the 
[Building a code_saturne FMU](#building-a-code_saturne-fmu) section. Paths in
the .fpd file have to be modified.