Arcane  v3.15.3.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::CartesianMeshCoarsening

Déraffine un maillage cartésien par 2. Plus de détails...

#include <arcane/cartesianmesh/CartesianMeshCoarsening.h>

+ Graphe d'héritage de Arcane::CartesianMeshCoarsening:
+ Graphe de collaboration de Arcane::CartesianMeshCoarsening:

Fonctions membres publiques

void createCoarseCells ()
 Déraffine le maillage initial par 2.
 
ConstArrayView< Int32 > refinedCells (Int32 index) const
 Liste des localIds() des mailles raffinées pour la maille parente d'indice index.
 
ConstArrayView< Int32 > coarseCells () const
 Liste des localIds() des mailles grossières.
 
void removeRefinedCells ()
 Supprime les mailles raffinées.
 

Description détaillée

Déraffine un maillage cartésien par 2.

Obsolète:
Cette classe est obsolète. Il faut utiliser la version 2 de l'implémentation (CartesianMeshCoarsening2).

Cette classe permet de déraffiner un maillage cartésien. Les instances de cette classe sont créées via ICartesianMesh::createCartesianMeshCoarsening().

Le maillage initial doit être cartésien et ne doit pas avoir de patchs.

Le maillage doit être un maillage AMR (IMesh::isAmrActivated()==true).

Le nombre de mailles dans chaque dimension doit être un multiple de 2 ainsi que le nombre de mailles locales à chaque sous-domaine.

Le dé-raffinement se fait en deux phases:

  • createCoarseCells() qui créé les mailles grossières. Après appel à cette méthode il est possible d'utiliser coarseCells() pour avoir la liste des mailles grossières et refinedCells() pour avoir pour chaque maille grossière la liste des mailles raffinées correspondantes.
  • removeRefinedCells() qui supprime les mailles autres que les mailles grossière. Après cet appel, il n'y a plus qu'un maillage cartésien avec 2 fois moins de mailles dans chaque direction. Il sera ensuite possible d'appeler les méthodes de raffinement pour créer des niveaux supplémentaires.
IMesh* mesh = cartesian_mesh->mesh();
coarser->createCoarseCells();
Int32 index = 0;
for( Int32 cell_lid : coarser->coarseCells()){
Cell cell = cells[cell_lid];
info() << "Test: CoarseCell= " << ItemPrinter(cell);
ConstArrayView<Int32> sub_cells(coarser->refinedCells(index));
++index;
for( Int32 sub_lid : sub_cells )
info() << "SubCell=" << ItemPrinter(cells[sub_lid]);
}
coarser->removeRefinedCells();
ConstArrayView< Int32 > coarseCells() const
Liste des localIds() des mailles grossières.
Vue sur les informations des mailles.
Maille d'un maillage.
Definition Item.h:1191
Interface d'un maillage cartésien.
virtual Ref< CartesianMeshCoarsening > createCartesianMeshCoarsening()=0
Créé une instance pour gérer le déraffinement du maillage.
virtual IItemFamily * cellFamily()=0
Retourne la famille des mailles.
Classe utilitaire pour imprimer les infos sur une entité.
Definition ItemPrinter.h:35
Référence à une instance.

Définition à la ligne 81 du fichier CartesianMeshCoarsening.h.

Documentation des fonctions membres

◆ coarseCells()

ConstArrayView< Int32 > Arcane::CartesianMeshCoarsening::coarseCells ( ) const
inline

Liste des localIds() des mailles grossières.

Cette méthode n'est valide qu'après appel à createCoarseCells().

Définition à la ligne 116 du fichier CartesianMeshCoarsening.h.

◆ createCoarseCells()

◆ refinedCells()

ConstArrayView< Int32 > Arcane::CartesianMeshCoarsening::refinedCells ( Int32  index) const
inline

Liste des localIds() des mailles raffinées pour la maille parente d'indice index.

Cette méthode n'est valide qu'après appel à createCoarseCells().

En 2D, il y a 4 mailles raffinées par maille grossière. En 3D il y en a 8.

Définition à la ligne 107 du fichier CartesianMeshCoarsening.h.

◆ removeRefinedCells()

void Arcane::CartesianMeshCoarsening::removeRefinedCells ( )

Supprime les mailles raffinées.

Il faut avoir appeler createCoarseCells() avant.

Définition à la ligne 283 du fichier CartesianMeshCoarsening.cc.

Références ARCANE_FATAL, ENUMERATE_, Arcane::Item::isOwn(), Arcane::IMesh::modifier(), Arcane::IMeshBase::ownCells(), et Arcane::IMesh::parallelMng().


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