Interface CWIPI Thierry Morel Formation OpenPALM avril 2012

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

Chaîne de Synthèse Réel Modélisation Rendu Image Fichier Scène
AUTRES ASPECTS DU GPS Partie I : tolérance de Battement
Licence pro MPCQ : Cours
LOD et Progressive Meshes (maillages progressifs) Hugue Hoppes 1996
Simplification Out-of-Core des modèles polygonales complexes
Synchronisation des processus père - fils
GEF 243B Programmation informatique appliquée
1 UMLV 1. Introduction 2. Hachage ouvert 3. Hachage fermé 4. Implémentation des fonctions Méthodes de hachage.
Approfondissement du langage
Plan du cours La sérialisation: – comment stocker et restaurer les Objets? Les interfaces graphiques et la programmation évènementielle. –Comment concevoir.
C.
13 – 16 Décembre 2005 Laurence Viry Introduction à MPI MPI_2.
Introduction à MPI Types dérivés MPI Décembre 2005
Programmation Orientée Objet (POO)
Virtools Olivier Lamotte.
TP 3-4 BD21.
Chap. 1 Structures séquentielles : listes linéaires
Jérôme CUTRONA PHP objet Jérôme CUTRONA 01:08:01 Programmation Web
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Introduction à la POO: Les classes vs les objets
بسم الله الرحمن الرحيم. Institut Supérieure des Etudes Technologiques de Kébili.
Initiation à la programmation et algorithmique cours 3
Parallel Programming in C with MPI and OpenMP
MPI et programmation par passage de messages
Interface Homme Machine IHM Pro
1 © Bull, 2012 Bull Video Server – Demonstrator July, 25 th 2012 Contact : Bull Telecommunications & Media.
Développement d’applications web
ALGORITHMES RECURSIFS
Programmation orientée objet
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Unité 4: Formes et espace Introduction
Administration de SharePoint
Langage Oriente Objet Cours 4.
Journée ds-catia 09/11/06 – IUT de Nantes
Transformations de visualisation en OpenGL
Chapitre VIII Structures dobjets. Chapitre VIII - Structures d'objets2 Structures d objets Il existe plusieurs relations entre les classes. Lhéritage.
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
C++ : classes Introduction aux Langages Orientés Objets
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Chapitre 21 Collections Partie I Introduction Une collection : est un objet qui regroupe multiple éléments dans une unité. Une collection est.
Leçon 2 : Surcharge des opérateurs IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
FICHIERS : Définition : Algorithme général:
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 7 : Classes et fonctions paramétrables Département.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
IFT 6800 Atelier en Technologies d’information
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Le diagramme de séquences
Structures des données
Dynamique des constructions
Modélisation géométrique
La notion de type revisitée en POO
PHP 5° PARTIE : LES COOKIES
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 1 – Objets et Classes Master 1 SIGLIS1Java Lecteur - Chapitre 1 Objets et classes.
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
ETNA – 1ème année Guillaume Belmas –
3.1 Dessiner différentes vues d’un solide
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Les classes Introduction aux Langages Orientés Objets
Chapitre VII Techniques plus avancées à travers le concept de classe.
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
Novembre 2003 Simulation numérique en vibro-acoustique par couplage de deux codes parallèles Unité de Recherche Calcul à Haute Performance François-Xavier.
Transcription de la présentation:

Interface CWIPI Thierry Morel Formation OpenPALM avril 2012 Se présenter Remercier organisateurs Expliquer le contenu des 2 cours  présentation générale du logiciel (création, concepts, services, utilisation)  une appli pour voir concrètement l’intérêt et les possibilités du logiciel Thierry Morel Formation OpenPALM avril 2012

Fonctionnalités Échanges de champs interpolés entre un maillage source et un maillage cible Maillages non coïncidents Maillages partitionnés distribués sur différents processus (une partition par processus) Types de communication : Échanges unidirectionnels synchrones Échanges croisés synchrones Échanges asynchrones Parallélisme : Transparent pour l’utilisateur Le contexte de la création L’idée sur laquelle repose le logiciel Ses caractéristiques Comment on l’utilise Quelques projet qui l’utilisent

Maillage Type de maillages Échanges Linéique : arêtes Surfacique : triangles, quadrangles, polygones Volumique : tétraèdres, pyramides, prismes, hexaèdres, polyèdres Échanges Types de maillages identiques entre source et cible : Échange à travers une interface Types de maillages distincts entre source et cible : Surface plongée dans un volume Maillage 2D axisymétrique plongé dans un volume …

Interpolation Points d’interpolation Méthodes Centres cellules du maillage cible Sommets du maillage cible Points définis par l’utilisateur Méthodes Pour les champs définis aux centres cellules du maillage source : Valeur de la cellule contenant le point Pour les champs définis aux sommets du maillage source : Matrice d’interpolation basée sur le résultat de localisation géométrique et de calcul de coordonnées barycentriques Interpolation utilisateur Possibilité de définir ses propres méthodes à partir des résultats de localisation géométrique

Localisation géométrique Résultats : Élément du maillage source contenant le point A défaut : Élément le plus proche parmi les éléments candidats Point défini comme non localisé Tolérance géométrique Permet de jouer sur la distance de recherche autour du point pour augmenter le nombre d’éléments candidats Paramètre utilisateur Valeur > 0 (par défaut : 0.001) Plus la valeur est grande : Plus le nombre de points localisés augmente Plus l’algorithme est lent Points non localisés : Liste accessible à l’utilisateur Attention : Le champ reçu n’est défini que sur les points localisés. Contrôle et définition des valeurs sur ces points à faire par l’utilisateur

Visualisation Format Post-traitement Partition de l’interface Points non localisés Champs envoyés Champs reçus Format Ensight, CGNS, MED

PCW_set_output_listing Primitives générales PCW_Init Création des communicateurs MPI liant les application PCW_Finalize Destruction de communicateurs MPI PCW_set_output_listing Redirection des affichages dans un fichier donné

Création d’un objet de couplage PCW_Create_coupling Retourne un identificateur (id) Principaux paramètres : Nature du maillage : linéique, surfacique, volumique Tolérance géométrique Maillage mobile ou statique Définition de la nature des champs Valeurs aux centres cellules Valeurs aux sommets Activation des sorties graphiques Plusieurs objets de couplages peuvent être créés simultanément

Définition d’un maillage PCW_define_mesh : Paramètres Id de l’objet de couplage Nombre de sommets et coordonnées Nombre d’éléments et connectivité Les tableaux en entrée sont mappés en mémoire Possibilité de partager le même maillage entre plusieurs objets de couplage

Connectivité Les éléments doivent être triés Deux tableaux : Surfacique : triangles, quadrangles, polygones Volumique : tétraèdre, pyramides, prismes, hexaèdres Deux tableaux : connecindex : tableau d’index permettant l’accès au tableau connec connec : concaténation de la connectivité cellule/sommets de l’ensemble des éléments Exemple pour un élément ielt : Nombre de sommets : n_som = connecindex[ielt+1] – connecindex[ielt] Connectivité de l’élément : connec[connecidx[ielt]] … connec[connecidx[ielt] + n_som]

Numérotation interne des éléments

PCW_Add_polyhedra : Polyèdres Connectivité cellules/faces orientée Pour une face de numéro numfac Mettre numfac si la normale de la face est sortante Mettre - numfac si la normale de la face est entrante L’orientation des faces est implicitement définie par l’ordre des sommets dans la connectivité faces/sommets Connectivité faces/sommets

Communications synchrones Primitives PCW_Sendrecv : Échanges croisés PCW_Send : Envoi simple PCW_Recv : Réception simple En C/C++ les échanges unidirectionnels se font par PCW_Sendrecv en positionnant à NULL les champs d’envoi ou réception. Localisation géométrique réalisée automatiquement au premier échange

Communications asynchrones Primitives PCW_Issend : Envoi PCW_Wait_issend : Attente de fin d’envoi PCW_Irecv : Réception PCW_Wait_irecv : Attente de fin de réception En asynchrone : La localisation est explicite : Appel de PCW_Locate obligatoire

Nombre de points non localisés Liste des point non localisés: Obtenu en retour des fonctions d’échange Liste des point non localisés: PCW_get_not_located_points

Répertoire de stockage Nom des variables Post-traitement Répertoire de stockage cwipi/<nom_couplage>_<nom appli1>_<nom_appli2> Nom des variables Champ source : s_<nom_var> Champ reçu : r_<nom_var> Localisation (si présence de points non localisés) : location Partitionnement : partitioning

PCW_set_points_to_locate PCW_Set_interpolation_function Fonctions avancées PCW_set_points_to_locate Définition des points d’interpolation PCW_Set_interpolation_function Prise en compte d’une fonction d’interpolation utilisateur C Prototype imposé PCW_Set_interpolation_function_f Prise en compte d’une fonction d’interpolation utilisateur Fortran

Prototype d’une interpolation utilisateur static void _userInterpolation(const int entities_dim, const int n_local_vertex, const int n_local_element, const int n_local_polhyedra, const int n_distant_point, const double local_coordinates[], const int local_connectivity_index[], const int local_connectivity[], const int local_polyhedra_face_index[], const int local_polyhedra_cell_to_face_connectivity[], const int local_polyhedra_face_connectivity_index[], const int local_polyhedra_face_connectivity[], const double distant_points_coordinates[], const int distant_points_location[], const float distant_points_distance[], const int distant_points_barycentric_coordinates_index[], const double distant_points_barycentric_coordinates[], const int stride, const cwipi_solver_type_t solver_type, const void *local_field, void *distant_field)

Différence d’utilisation entre CWIPI et son interface dans Open-Palm Fonctions interfacées Même nom, seul le préfixe change CWIPI_ → PCW_ Moins d’arguments Prise en charge par PrePALM Contrôle des couplage Pas d’utilisation des fonctions de contrôles CWIPI Gestion par PrePALM