Télécharger la présentation
Publié parMorgaine Gillet Modifié depuis plus de 10 années
1
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
2
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
3
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 …
4
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
5
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
6
Visualisation Format Post-traitement Partition de l’interface
Points non localisés Champs envoyés Champs reçus Format Ensight, CGNS, MED
7
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é
8
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
9
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
10
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]
11
Numérotation interne des éléments
12
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
13
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
14
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
15
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
16
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
17
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
18
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)
19
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.