##
Documentation de la bibliothèque MED-fichier V2.3 : Qu'est-ce que MED-fichier ?

Sommaire de la rubrique

- La problématique des échanges de données
- Le modèle d'échange de données MED
- La bibliothèque MED-fichier et son intégration dans un code de calcul
- Cas d'utilisation
- Ce qu'il faut retenir
- Ce que MED-fichier apporte
- Historique des développements

## La problématique des échanges de données.

Les échanges de données sont devenus une nécessité dans le cadre des études de simulation multi-physiques faisant collaborer différents logiciels de calcul scientifique. Pour réaliser ces échanges, il est nécessaire de développer entre les codes des passerelles logicielles. Pour cela deux approches sont possibles :

1. L'approche au cas par cas où pour chaque couple de code devant communiquer, on réalise une passerelle spécifique et non réutilisable.
2. L'approche standardisée qui consiste à réaliser des passerelles logicielles à base de modules externes réutilisables par différents couples de codes.

La démarche MED (Modélisation et Echanges de Données) s'inscrit dans cette seconde optique. Cette démarche consiste à :

1. ETAPE 1 : Préciser la nature des données échangées. Cette étude est guidée par l'expression des besoins utilisateurs et doit aboutir à la définition d'un modèle d'échange de données balayant l'ensemble du spectre des données échangeables. Ce travail doit s'accompagner d'une évaluation :
   - Des volumes de données échangées.
   - Des fréquences et des conditions d'échanges.
2. ETAPE 2 : A l'issue de la première étape, il s'agit de définir un outil logiciel qui permette :
   - De créer et représenter les données du modèle commun.
   - De transférer ces données d'un code vers un autre. Pour cela, il faut définir les points suivants :
     - Le support informatique des échanges.
     - Le mode d'accès à ce support.
     - Le mode de représentation des données du modèle commun.
     - Le mode d'accès aux données du modèle commun.
     - Le mode d'intégration et d'utilisation du logiciel au sein d'un code de calcul.

Pour MED, cela nous a conduit à :

- Etape 1 : La définition du modèle de données MED.
- Etape 2 : La spécification et au développement de la bibliothèque informatique MED-fichier.

## Le modèle d'échange de données MED

Le modèle de données MED représente actuellement les maillages et les champs de résultats. Ce sont ces données que MED propose d'échanger entre les codes.

L'idée est de pouvoir échanger lors d'études multi-physiques des maillages de plusieurs millions de noeuds.

Vous pouvez consulter la description complète du modèle de données associé à la V2.3.

## La bibliothèque MED-fichier et son intégration dans un code de calcul

L'idée directrice a été de définir un module logiciel ré-utilisable (la bibliothèque MED-fichier) qui permette à des codes de calcul scientifique d'échanger des fichiers contenant les données du modèle.

Intégrer la bibliothèque MED-fichier dans un code de calcul revient à définir une architecture fonctionnelle comprenant les couches suivantes :

1. La couche basse qui fournit les fonctions d'accès au support d'échange (fichier sur disque).
2. La couche intermédiaire qui définit le mode de représentation et d'accès aux données du modèle commun et utilise les services de la couche basse.
3. La couche haute qui gère l'import/export des données du modèle commun à partir ou vers les structures de données propres à chaque code de calcul. La couche haute utilise les services de la couche intermédiaire.

L'architecture technique découle tout naturellement de l'architecture fonctionnelle :

1. La couche basse devient une couche logicielle adhérente au support physique des échanges. Cette couche constitue un module réutilisable et externe au code de calcul. De plus elle est totalement indépendante du modèle de données commun : elle offre uniquement un service d'accès à des structures de données générales (tableaux, listes, matrices, ...). Dans le cadre de MED, étant donnés les volumes de donnés ciblés (maillages à plusieurs millions de noeuds), c'est le format de fichier binaire HDF qui a été choisi. HDF est un format de fichier développé par le NCSA. Pour plus d'informations vous pouvez consulter le site WEB dédié à HDF.
2. La couche intermédiaire est l'outil informatique d'accès aux données du modèle commun :
   - Elle capitalise les connaissances métier du modèle.
   - Elle utilise les services de la couche basse pour représenter et transférer les données du modèle.
   Cette couche constitue également un module réutilisable et externe au code de calcul. La bibliothèque informatique MED-fichier constitue ce module. Elle offre une API (Application Programming Interface) C et FORTRAN.
3. Enfin chaque code de calcul compatible avec le modèle de données commun peut intégrer en son sein une interface avec la couche intermédiaire. Cette interface constitue la couche logicielle haute. Une interface avec la bibliothèque MED permet à un code de calcul de lire/écrire dans un fichier au format HDF les données du modèle commun.

## Cas d'utilisation

- Echanges de maillages et de résultats entre deux codes disposant d'une interface MED.
- Archivage de données (maillages et champs de résultats).

## Ce qu'il faut retenir

- Le modèle de données définit les données communes échangées entre les codes. Il permet de lever toute ambiguité sur la nature et la sémantique de ces données.
- L'API de MED-fichier permet d'accéder aux données définies dans ce modèle commun.
- HDF est un format de fichier binaire, neutre, portable et compact qui est largement diffusé dans le monde de la communauté scientifique.
- Chaque code disposant d'une interface avec MED-fichier peut créer/lire des maillages et ou des résultats de calcul dans des fichiers MED au format HDF. L'intérêt d'une telle interface est sa réutilisabilité : si vous voulez communiquer avec un autre code disposant également de sa propre interface MED, vous n'avez rien à développer.

## Ce que MED-fichier apporte

- Un modèle de données externe standard.
- Une réduction des coûts de développements.
- Des pratiques logicielles unifiées :
  - Pas d'ambiguité sur les données échangées.
  - Des protocoles d'échanges de données stricts.
  - Des modèles de programmation documentés.

## Historique des développements

- 1997 : Définition de la première version du modèle de données.
- 1997-1999 : MED-fichier V1.0 (format HDF V4).
- 1999-2001 : MED-fichier V2.0 (passage sous format HDF V5).
- 2001-2003 : MED-fichier V2.1. (évolution du modèle de données).
- 2003-2005 : MED-fichier V2.2. (nouvelle évolution du modèle de données).
- 2006 : MED-fichier V2.3 (dernière évolution du modèle de données (E/S //).