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

Classe permettant de définir la position d'un patch dans le maillage cartésien. Plus de détails...

#include <arcane/cartesianmesh/AMRPatchPosition.h>

+ Graphe de collaboration de Arcane::AMRPatchPosition:

Fonctions membres publiques

 AMRPatchPosition ()
 Constructeur pour une position nulle. Une position nulle est définie par un level = -2.
 
 AMRPatchPosition (const AMRPatchPosition &src)
 Constructeur de copie.
 
AMRPatchPositionoperator= (const AMRPatchPosition &)=default
 
Integer level () const
 Méthode permettant de récupérer le niveau du patch.
 
void setLevel (Integer level)
 Méthode permettant de définir le niveau du patch.
 
Int64x3 minPoint () const
 Méthode permettant de récupérer la position min de la boite englobante.
 
void setMinPoint (Int64x3 min_point)
 Méthode permettant de définir la position min de la boite englobante.
 
Int64x3 maxPoint () const
 Méthode permettant de récupérer la position max de la boite englobante.
 
void setMaxPoint (Int64x3 max_point)
 Méthode permettant de définir la position max de la boite englobante.
 
Integer overlapLayerSize () const
 Méthode permettant de récupérer le nombre de couches de mailles de recouvrement du patch.
 
void setOverlapLayerSize (Integer layer_size)
 Méthode permettant de définir le nombre de couches de mailles de recouvrement du patch.
 
Int64x3 minPointWithOverlap () const
 Méthode permettant de récupérer la position min de la boite englobante en incluant la couche de mailles de recouvrement.
 
Int64x3 maxPointWithOverlap () const
 Méthode permettant de récupérer la position max de la boite englobante en incluant la couche de mailles de recouvrement.
 
Int64 nbCells () const
 Méthode permettant de connaitre le nombre de mailles du patch selon sa position.
 
std::pair< AMRPatchPosition, AMRPatchPositioncut (Int64 cut_point, Integer dim) const
 Méthode permettant de découper le patch en deux patchs selon un point de découpe.
 
bool canBeFusion (const AMRPatchPosition &other_patch) const
 Méthode permettant de savoir si notre patch peut être fusionné avec other_patch.
 
bool fusion (const AMRPatchPosition &other_patch)
 Méthode permettant de fusionner other_patch avec le nôtre.
 
bool isNull () const
 Méthode permettant de savoir si la position du patch est nulle.
 
AMRPatchPosition patchUp (Integer dim) const
 Méthode permettant de créer un AMRPatchPosition pour le niveau supérieur.
 
AMRPatchPosition patchDown (Integer dim) const
 Méthode permettant de créer un AMRPatchPosition pour le niveau inférieur.
 
Int64x3 length () const
 Méthode permettant de connaitre la taille du patch (en nombre de mailles par direction).
 
bool isIn (Int64 x, Int64 y, Int64 z) const
 Méthode permettant de savoir si une maille de position x,y,z est incluse dans ce patch.
 
bool isInWithOverlap (Int64 x, Int64 y, Int64 z) const
 Méthode permettant de savoir si une maille de position x,y,z est incluse dans ce patch avec couche de recouvrement.
 
bool isInWithOverlap (Int64 x, Int64 y, Int64 z, Integer overlap) const
 Méthode permettant de savoir si une maille de position x,y,z est incluse dans ce patch avec couche de recouvrement fourni en paramètre.
 
bool haveIntersection (const AMRPatchPosition &other) const
 Méthode permettant de savoir si notre patch est en contact avec le patch other.
 

Attributs privés

Integer m_level
 
Int64x3 m_min_point
 
Int64x3 m_max_point
 
Integer m_overlap_layer_size
 

Description détaillée

Classe permettant de définir la position d'un patch dans le maillage cartésien.

La position d'un patch est désigné par la position de deux mailles dans la grille. La position "min" et la position "max" forment une boite englobante.

Avertissement
La maille à la position "min" est incluse dans la boite, mais la maille à la position "max" est exclue.
Note
La position du patch est globale pour le maillage cartesien. Le découpage en sous-domaine n'est pas pris en compte (exemple avec la méthode nbCells() de cette classe qui donne le nombre de mailles du patch sans tenir compte des sous-domaines).

Les positions des mailles peuvent être obtenues par le CartesianMeshNumberingMng.

Avertissement
Cette classe est valide uniquement pour un pattern de raffinement de 2 (modifier ça ne devrait pas être complexe, si besoin).

Définition à la ligne 50 du fichier AMRPatchPosition.h.

Documentation des constructeurs et destructeur

◆ AMRPatchPosition() [1/2]

Arcane::AMRPatchPosition::AMRPatchPosition ( )

Constructeur pour une position nulle. Une position nulle est définie par un level = -2.

Définition à la ligne 31 du fichier AMRPatchPosition.cc.

Référencé par AMRPatchPosition(), canBeFusion(), cut(), fusion(), haveIntersection(), patchDown(), et patchUp().

+ Voici le graphe des appelants de cette fonction :

◆ AMRPatchPosition() [2/2]

Arcane::AMRPatchPosition::AMRPatchPosition ( const AMRPatchPosition & src)

Constructeur de copie.

Paramètres
srcLa position à copier.

Définition à la ligne 41 du fichier AMRPatchPosition.cc.

Références AMRPatchPosition(), level(), maxPoint(), minPoint(), et overlapLayerSize().

+ Voici le graphe d'appel pour cette fonction :

Documentation des fonctions membres

◆ canBeFusion()

bool Arcane::AMRPatchPosition::canBeFusion ( const AMRPatchPosition & other_patch) const

Méthode permettant de savoir si notre patch peut être fusionné avec other_patch.

Paramètres
other_patchLe patch à verifier.
Renvoie
True si la fusion est possible.

Définition à la ligne 190 du fichier AMRPatchPosition.cc.

Références AMRPatchPosition(), level(), maxPoint(), et minPoint().

Référencé par fusion().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ cut()

std::pair< AMRPatchPosition, AMRPatchPosition > Arcane::AMRPatchPosition::cut ( Int64 cut_point,
Integer dim ) const

Méthode permettant de découper le patch en deux patchs selon un point de découpe.

Paramètres
cut_pointLe point de découpe.
dimLa dimension qui doit être découpée.
Renvoie
Les deux positions de patch résultant de la découpe.

Définition à la ligne 159 du fichier AMRPatchPosition.cc.

Références AMRPatchPosition(), Arcane::MD_DirX, Arcane::MD_DirY, setMaxPoint(), et setMinPoint().

+ Voici le graphe d'appel pour cette fonction :

◆ fusion()

bool Arcane::AMRPatchPosition::fusion ( const AMRPatchPosition & other_patch)

Méthode permettant de fusionner other_patch avec le nôtre.

Une vérification de possibilité de fusion (via canBeFusion()) est réalisée avant de fusionner. Si la fusion est impossible, on retourne false. Sinon, on fusionne et on retourne true.

Paramètres
other_patchLe patch avec lequel fusionner.
Renvoie
true si la fusion à été réalisé, false si la fusion est impossible.

Définition à la ligne 212 du fichier AMRPatchPosition.cc.

Références AMRPatchPosition(), canBeFusion(), maxPoint(), et minPoint().

+ Voici le graphe d'appel pour cette fonction :

◆ haveIntersection()

bool Arcane::AMRPatchPosition::haveIntersection ( const AMRPatchPosition & other) const

Méthode permettant de savoir si notre patch est en contact avec le patch other.

Paramètres
otherLe patch à verifier.
Renvoie
True si les patchs sont en contact.

Définition à la ligne 336 du fichier AMRPatchPosition.cc.

Références AMRPatchPosition(), maxPoint(), et minPoint().

+ Voici le graphe d'appel pour cette fonction :

◆ isIn()

bool Arcane::AMRPatchPosition::isIn ( Int64 x,
Int64 y,
Int64 z ) const

Méthode permettant de savoir si une maille de position x,y,z est incluse dans ce patch.

Pour inclure la couche de recouvrement, utiliser la méthode isInWithOverlap().

Paramètres
xPosition X de la maille.
yPosition Y de la maille.
zPosition Z de la maille.
Renvoie
True si la maille est dans le patch.

Définition à la ligne 305 du fichier AMRPatchPosition.cc.

◆ isInWithOverlap() [1/2]

bool Arcane::AMRPatchPosition::isInWithOverlap ( Int64 x,
Int64 y,
Int64 z ) const

Méthode permettant de savoir si une maille de position x,y,z est incluse dans ce patch avec couche de recouvrement.

Paramètres
xPosition X de la maille.
yPosition Y de la maille.
zPosition Z de la maille.
Renvoie
True si la maille est dans le patch.

Définition à la ligne 314 du fichier AMRPatchPosition.cc.

Références maxPointWithOverlap(), et minPointWithOverlap().

+ Voici le graphe d'appel pour cette fonction :

◆ isInWithOverlap() [2/2]

bool Arcane::AMRPatchPosition::isInWithOverlap ( Int64 x,
Int64 y,
Int64 z,
Integer overlap ) const

Méthode permettant de savoir si une maille de position x,y,z est incluse dans ce patch avec couche de recouvrement fourni en paramètre.

Paramètres
xPosition X de la maille.
yPosition Y de la maille.
zPosition Z de la maille.
overlapLe nombre de mailles de recouvrement de la couche.
Renvoie
True si la maille est dans le patch.

Définition à la ligne 325 du fichier AMRPatchPosition.cc.

◆ isNull()

bool Arcane::AMRPatchPosition::isNull ( ) const

Méthode permettant de savoir si la position du patch est nulle.

Avertissement
On ne vérifie pas la validité de la position.
Renvoie
True si le patch est nulle.

Définition à la ligne 249 du fichier AMRPatchPosition.cc.

◆ length()

Int64x3 Arcane::AMRPatchPosition::length ( ) const

Méthode permettant de connaitre la taille du patch (en nombre de mailles par direction).

Renvoie
La taille du patch.

Définition à la ligne 296 du fichier AMRPatchPosition.cc.

◆ level()

Integer Arcane::AMRPatchPosition::level ( ) const

Méthode permettant de récupérer le niveau du patch.

Renvoie
Le niveau du patch.

Définition à la ligne 60 du fichier AMRPatchPosition.cc.

Référencé par AMRPatchPosition(), canBeFusion(), et setLevel().

+ Voici le graphe des appelants de cette fonction :

◆ maxPoint()

Int64x3 Arcane::AMRPatchPosition::maxPoint ( ) const

Méthode permettant de récupérer la position max de la boite englobante.

Renvoie
La position max.

Définition à la ligne 96 du fichier AMRPatchPosition.cc.

Référencé par AMRPatchPosition(), canBeFusion(), fusion(), et haveIntersection().

+ Voici le graphe des appelants de cette fonction :

◆ maxPointWithOverlap()

Int64x3 Arcane::AMRPatchPosition::maxPointWithOverlap ( ) const

Méthode permettant de récupérer la position max de la boite englobante en incluant la couche de mailles de recouvrement.

Renvoie
La position max avec la couche de mailles de recouvrement.

Définition à la ligne 141 du fichier AMRPatchPosition.cc.

Référencé par isInWithOverlap().

+ Voici le graphe des appelants de cette fonction :

◆ minPoint()

Int64x3 Arcane::AMRPatchPosition::minPoint ( ) const

Méthode permettant de récupérer la position min de la boite englobante.

Renvoie
La position min.

Définition à la ligne 78 du fichier AMRPatchPosition.cc.

Référencé par AMRPatchPosition(), canBeFusion(), fusion(), et haveIntersection().

+ Voici le graphe des appelants de cette fonction :

◆ minPointWithOverlap()

Int64x3 Arcane::AMRPatchPosition::minPointWithOverlap ( ) const

Méthode permettant de récupérer la position min de la boite englobante en incluant la couche de mailles de recouvrement.

Renvoie
La position min avec la couche de mailles de recouvrement.

Définition à la ligne 132 du fichier AMRPatchPosition.cc.

Référencé par isInWithOverlap().

+ Voici le graphe des appelants de cette fonction :

◆ nbCells()

Int64 Arcane::AMRPatchPosition::nbCells ( ) const

Méthode permettant de connaitre le nombre de mailles du patch selon sa position.

Avertissement
Le nombre de mailles est calculé avec les positions min et max (sans la couche de recouvrement). Ce nombre est donc le même pour tous les sous-domaines. Attention à ne pas comparer ce nombre avec le nombre de mailles du groupe de mailles qui peut être associé à cette classe et qui peut être différent pour chaque sous-domaine.
Renvoie
Le nombre de maille du patch.

Définition à la ligne 150 du fichier AMRPatchPosition.cc.

◆ overlapLayerSize()

Integer Arcane::AMRPatchPosition::overlapLayerSize ( ) const

Méthode permettant de récupérer le nombre de couches de mailles de recouvrement du patch.

Renvoie
le nombre de couches de mailles de recouvrement

Définition à la ligne 114 du fichier AMRPatchPosition.cc.

Référencé par AMRPatchPosition().

+ Voici le graphe des appelants de cette fonction :

◆ patchDown()

AMRPatchPosition Arcane::AMRPatchPosition::patchDown ( Integer dim) const

Méthode permettant de créer un AMRPatchPosition pour le niveau inférieur.

Si la position min n'est pas divisible par deux, on arrondit à l'entier inférieur.

Si la position max n'est pas divisible par deux, on arrondit à l'entier supérieur.

Pour la couche de recouvrement, cette méthode s'assure que l'on n'aura jamais plus d'un niveau de différence entre deux mailles de niveaux différents.

Avertissement
patch.patchDown(patch.patchUp(X)) != patch et patch.patchUp(patch.patchDown(X)) != patch.
Paramètres
dimLa dimension du maillage.
Renvoie
Un AMRPatchPosition de niveau inférieur.

Définition à la ligne 277 du fichier AMRPatchPosition.cc.

Références AMRPatchPosition(), setLevel(), setMaxPoint(), setMinPoint(), et setOverlapLayerSize().

+ Voici le graphe d'appel pour cette fonction :

◆ patchUp()

AMRPatchPosition Arcane::AMRPatchPosition::patchUp ( Integer dim) const

Méthode permettant de créer un AMRPatchPosition pour le niveau supérieur.

Paramètres
dimLa dimension du maillage.
Renvoie
Un AMRPatchPosition de niveau supérieur.

Définition à la ligne 258 du fichier AMRPatchPosition.cc.

Références AMRPatchPosition(), setLevel(), setMaxPoint(), setMinPoint(), et setOverlapLayerSize().

+ Voici le graphe d'appel pour cette fonction :

◆ setLevel()

void Arcane::AMRPatchPosition::setLevel ( Integer level)

Méthode permettant de définir le niveau du patch.

Paramètres
levelLe niveau du patch.

Définition à la ligne 69 du fichier AMRPatchPosition.cc.

Références level().

Référencé par patchDown(), et patchUp().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ setMaxPoint()

void Arcane::AMRPatchPosition::setMaxPoint ( Int64x3 max_point)

Méthode permettant de définir la position max de la boite englobante.

Paramètres
max_pointla position max.

Définition à la ligne 105 du fichier AMRPatchPosition.cc.

Référencé par cut(), patchDown(), et patchUp().

+ Voici le graphe des appelants de cette fonction :

◆ setMinPoint()

void Arcane::AMRPatchPosition::setMinPoint ( Int64x3 min_point)

Méthode permettant de définir la position min de la boite englobante.

Paramètres
min_pointla position min.

Définition à la ligne 87 du fichier AMRPatchPosition.cc.

Référencé par cut(), patchDown(), et patchUp().

+ Voici le graphe des appelants de cette fonction :

◆ setOverlapLayerSize()

void Arcane::AMRPatchPosition::setOverlapLayerSize ( Integer layer_size)

Méthode permettant de définir le nombre de couches de mailles de recouvrement du patch.

Paramètres
layer_sizele nombre de couches de mailles de recouvrement

Définition à la ligne 123 du fichier AMRPatchPosition.cc.

Référencé par patchDown(), et patchUp().

+ Voici le graphe des appelants de cette fonction :

Documentation des données membres

◆ m_level

Integer Arcane::AMRPatchPosition::m_level
private

Définition à la ligne 286 du fichier AMRPatchPosition.h.

◆ m_max_point

Int64x3 Arcane::AMRPatchPosition::m_max_point
private

Définition à la ligne 288 du fichier AMRPatchPosition.h.

◆ m_min_point

Int64x3 Arcane::AMRPatchPosition::m_min_point
private

Définition à la ligne 287 du fichier AMRPatchPosition.h.

◆ m_overlap_layer_size

Integer Arcane::AMRPatchPosition::m_overlap_layer_size
private

Définition à la ligne 289 du fichier AMRPatchPosition.h.


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