Arcane  v4.1.1.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::CartesianMeshAMRMng

Classe permettant d'accéder aux méthodes spécifiques AMR du maillage cartesien. Plus de détails...

#include <arcane/cartesianmesh/CartesianMeshAMRMng.h>

+ Graphe de collaboration de Arcane::CartesianMeshAMRMng:

Fonctions membres publiques

 CartesianMeshAMRMng (ICartesianMesh *cmesh)
 Constructeur.
 
Int32 nbPatch () const
 Nombre de patchs du maillage.
 
CartesianPatch amrPatch (Int32 index) const
 Retourne le index-ième patch du maillage.
 
CartesianMeshPatchListView patches () const
 Vue sur la liste des patchs.
 
void refineZone (const AMRZonePosition &position) const
 Raffine un bloc du maillage cartésien.
 
void coarseZone (const AMRZonePosition &position) const
 Dé-raffine un bloc du maillage cartésien.
 
void adaptMesh () const
 Méthode permettant d'adapter le raffinement du maillage selon les mailles à raffiner.
 
void clearRefineRelatedFlags () const
 Méthode permettant de supprimer les flags liés au raffinement de toutes les mailles.
 
void enableOverlapLayer (bool enable) const
 
Integer reduceNbGhostLayers (Integer level, Integer target_nb_ghost_layers) const
 Méthode permettant de supprimer une ou plusieurs couches de mailles fantômes sur un niveau de raffinement défini.
 
void mergePatches () const
 Méthode permettant de fusionner les patchs qui peuvent l'être.
 
void createSubLevel () const
 Méthode permettant de créer un sous-niveau ("niveau -1").
 

Attributs privés

ICartesianMeshm_cmesh
 

Description détaillée

Classe permettant d'accéder aux méthodes spécifiques AMR du maillage cartesien.

Une instance de cette classe est valide tant que le ICartesianMesh passé en paramètre du constructeur est valide.

Définition à la ligne 40 du fichier CartesianMeshAMRMng.h.

Documentation des constructeurs et destructeur

◆ CartesianMeshAMRMng()

Arcane::CartesianMeshAMRMng::CartesianMeshAMRMng ( ICartesianMesh * cmesh)
explicit

Constructeur.

Définition à la ligne 39 du fichier CartesianMeshAMRMng.cc.

Documentation des fonctions membres

◆ adaptMesh()

void Arcane::CartesianMeshAMRMng::adaptMesh ( ) const

Méthode permettant d'adapter le raffinement du maillage selon les mailles à raffiner.

Avertissement
Méthode expérimentale.

Cette méthode ne peut être appelée que si le maillage est un maillage AMR (IMesh::isAmrActivated()==true) et que le type de l'AMR est 3 (PatchCartesianMeshOnly).

Avant d'appeler cette méthode, il faut ajouter le flag "II_Refine" sur les mailles qui doivent être raffinées. Il est possible de le faire niveau par niveau ou plusieurs niveaux d'un coup (si plusieurs niveaux existent déjà). Pour être sûr de n'avoir aucun flag déjà présent sur le maillage, il est possible d'appeler la méthode clearRefineRelatedFlags().

Les mailles n'ayant pas de flag "II_Refine" seront déraffinées.

Afin d'éviter les mailles orphelines, si une maille est marquée "II_Refine", alors la maille parente est marquée "II_Refine".

Exemple d'exécution :

CartesianMeshAMRMng amr_mng(cmesh());
amr_mng.clearRefineRelatedFlags();
for (Integer level = 0; level < 2; ++level){
// Va faire ses calculs et mettre des flags II_Refine sur les mailles
// du niveau 0 jusqu'au niveau level.
computeInLevel(0, level);
amr_mng.adaptMesh();
}
CartesianMeshAMRMng(ICartesianMesh *cmesh)
Constructeur.
Int32 Integer
Type représentant un entier.

Cette opération est collective.

Définition à la ligne 92 du fichier CartesianMeshAMRMng.cc.

Références ARCANE_FATAL, et Arcane::Cell.

◆ amrPatch()

CartesianPatch Arcane::CartesianMeshAMRMng::amrPatch ( Int32 index) const

Retourne le index-ième patch du maillage.

Si le maillage est cartésien, il n'y a qu'un seul patch.

L'instance retournée reste valide tant que cette instance n'est pas détruite.

Définition à la ligne 56 du fichier CartesianMeshAMRMng.cc.

◆ clearRefineRelatedFlags()

void Arcane::CartesianMeshAMRMng::clearRefineRelatedFlags ( ) const

Méthode permettant de supprimer les flags liés au raffinement de toutes les mailles.

Les flags concernés sont :

Définition à la ligne 134 du fichier CartesianMeshAMRMng.cc.

◆ coarseZone()

void Arcane::CartesianMeshAMRMng::coarseZone ( const AMRZonePosition & position) const

Dé-raffine un bloc du maillage cartésien.

Cette méthode ne peut être appelée que si le maillage est un maillage AMR (IMesh::isAmrActivated()==true).

Les mailles dont les positions des centres sont comprises entre position et (position+length) sont dé-raffinées et les informations de connectivité correspondantes sont mises à jour.

Toutes les mailles dans la zone de dé-raffinement doivent être du même niveau.

Les patchs ne contenant plus de mailles après l'appel à cette méthode seront supprimés.

Cette opération est collective.

Définition à la ligne 83 du fichier CartesianMeshAMRMng.cc.

◆ createSubLevel()

void Arcane::CartesianMeshAMRMng::createSubLevel ( ) const

Méthode permettant de créer un sous-niveau ("niveau -1").

Cette méthode ne peut être appelée que si le maillage est un maillage AMR (IMesh::isAmrActivated()==true).

Dans le cas d'utilisation de l'AMR type 3 (PatchCartesianMeshOnly), il est possible d'appeler cette méthode en cours de calcul et autant de fois que nécessaire (tant qu'il est possible de diviser la taille du niveau 0 par 2). Une fois le niveau -1 créé, tous les niveaux sont "remontés" (donc le niveau -1 devient le niveau 0 "ground").

Définition à la ligne 181 du fichier CartesianMeshAMRMng.cc.

Références ARCANE_FATAL, Arcane::Cell, Arcane::CartesianMeshUtils::createCartesianMeshCoarsening2(), Arcane::Patch, et Arcane::PatchCartesianMeshOnly.

+ Voici le graphe d'appel pour cette fonction :

◆ enableOverlapLayer()

void Arcane::CartesianMeshAMRMng::enableOverlapLayer ( bool enable) const

Définition à la ligne 143 du fichier CartesianMeshAMRMng.cc.

◆ mergePatches()

void Arcane::CartesianMeshAMRMng::mergePatches ( ) const

Méthode permettant de fusionner les patchs qui peuvent l'être.

Cette méthode ne peut être appelée que si le maillage est un maillage AMR (IMesh::isAmrActivated()==true). Si le type de l'AMR n'est pas 3 (PatchCartesianMeshOnly), la méthode ne fait rien.

Cette méthode peut être utile après plusieurs appels à refineZone() et à coarseZone(). En revanche, un appel à cette méthode est inutile après un appel à adaptMesh() car adaptMesh() s'en occupe.

Définition à la ligne 166 du fichier CartesianMeshAMRMng.cc.

Références Arcane::Cell.

◆ nbPatch()

Int32 Arcane::CartesianMeshAMRMng::nbPatch ( ) const

Nombre de patchs du maillage.

Il y a toujours au moins un patch qui représente le maillage cartésien.

Définition à la ligne 47 du fichier CartesianMeshAMRMng.cc.

◆ patches()

CartesianMeshPatchListView Arcane::CartesianMeshAMRMng::patches ( ) const

Vue sur la liste des patchs.

Définition à la ligne 65 du fichier CartesianMeshAMRMng.cc.

◆ reduceNbGhostLayers()

Integer Arcane::CartesianMeshAMRMng::reduceNbGhostLayers ( Integer level,
Integer target_nb_ghost_layers ) const

Méthode permettant de supprimer une ou plusieurs couches de mailles fantômes sur un niveau de raffinement défini.

Le nombre de couches de mailles fantômes souhaité peut être augmenté par la méthode. Il est nécessaire de récupérer la valeur retournée pour avoir le nombre de couches de mailles fantômes final.

Paramètres
levelLe niveau de raffinement concerné par la suppression des mailles fantômes.
target_nb_ghost_layersLe nombre de couches souhaité après appel à cette méthode. ATTENTION : Il peut être ajusté par la méthode.
Renvoie
Le nombre de couches de mailles fantômes final.

Définition à la ligne 157 du fichier CartesianMeshAMRMng.cc.

◆ refineZone()

void Arcane::CartesianMeshAMRMng::refineZone ( const AMRZonePosition & position) const

Raffine un bloc du maillage cartésien.

Cette méthode ne peut être appelée que si le maillage est un maillage AMR (IMesh::isAmrActivated()==true).

Les mailles dont les positions des centres sont comprises entre position et (position+length) sont raffinées et les informations de connectivité correspondantes sont mises à jour.

Cette opération est collective.

Définition à la ligne 74 du fichier CartesianMeshAMRMng.cc.

Documentation des données membres

◆ m_cmesh

ICartesianMesh* Arcane::CartesianMeshAMRMng::m_cmesh
private

Définition à la ligne 209 du fichier CartesianMeshAMRMng.h.


La documentation de cette classe a été générée à partir des fichiers suivants :