Arcane  v4.1.2.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 (Int32 level, CartCoord3Type min_point, CartCoord3Type max_point, Int32 overlap_layer_size)
 
 AMRPatchPosition (const AMRPatchPosition &src)
 Constructeur de copie.
 
AMRPatchPositionoperator= (const AMRPatchPosition &)=default
 
Int32 level () const
 Méthode permettant de récupérer le niveau du patch.
 
void setLevel (Int32 level)
 Méthode permettant de définir le niveau du patch.
 
CartCoord3Type minPoint () const
 Méthode permettant de récupérer la position min de la boite englobante.
 
void setMinPoint (CartCoord3Type min_point)
 Méthode permettant de définir la position min de la boite englobante.
 
CartCoord3Type maxPoint () const
 Méthode permettant de récupérer la position max de la boite englobante.
 
void setMaxPoint (CartCoord3Type max_point)
 Méthode permettant de définir la position max de la boite englobante.
 
Int32 overlapLayerSize () const
 Méthode permettant de récupérer le nombre de couches de mailles de recouvrement du patch.
 
void setOverlapLayerSize (Int32 layer_size)
 Méthode permettant de définir le nombre de couches de mailles de recouvrement du patch.
 
CartCoord3Type minPointWithOverlap () const
 Méthode permettant de récupérer la position min de la boite englobante en incluant la couche de mailles de recouvrement.
 
CartCoord3Type 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 (CartCoordType 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.
 
CartCoord3Type length () const
 Méthode permettant de connaitre la taille du patch (en nombre de mailles par direction).
 
bool isIn (CartCoordType x, CartCoordType y, CartCoordType z) const
 Méthode permettant de savoir si une maille de position x,y,z est incluse dans ce patch.
 
bool isIn (CartCoord3Type coord) const
 Méthode permettant de savoir si une maille est incluse dans ce patch.
 
bool isInWithOverlap (CartCoordType x, CartCoordType y, CartCoordType 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 (CartCoord3Type coord) const
 Méthode permettant de savoir si une maille est incluse dans ce patch avec couche de recouvrement.
 
bool isInWithOverlap (CartCoordType x, CartCoordType y, CartCoordType 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 isInWithOverlap (CartCoord3Type coord, Integer overlap) const
 Méthode permettant de savoir si une maille 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

Int32 m_level
 
CartCoord3Type m_min_point
 
CartCoord3Type m_max_point
 
Int32 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/3]

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/3]

Arcane::AMRPatchPosition::AMRPatchPosition ( Int32 level,
CartCoord3Type min_point,
CartCoord3Type max_point,
Int32 overlap_layer_size )

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

◆ AMRPatchPosition() [3/3]

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

Constructeur de copie.

Paramètres
srcLa position à copier.

Définition à la ligne 51 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 200 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 ( CartCoordType 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 169 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 222 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 377 du fichier AMRPatchPosition.cc.

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

+ Voici le graphe d'appel pour cette fonction :

◆ isIn() [1/2]

bool Arcane::AMRPatchPosition::isIn ( CartCoord3Type coord) const

Méthode permettant de savoir si une maille est incluse dans ce patch.

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

Paramètres
coordPosition de la maille.
Renvoie
True si la maille est dans le patch.

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

◆ isIn() [2/2]

bool Arcane::AMRPatchPosition::isIn ( CartCoordType x,
CartCoordType y,
CartCoordType 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 315 du fichier AMRPatchPosition.cc.

◆ isInWithOverlap() [1/4]

bool Arcane::AMRPatchPosition::isInWithOverlap ( CartCoord3Type coord) const

Méthode permettant de savoir si une maille est incluse dans ce patch avec couche de recouvrement.

Paramètres
coordPosition de la maille.
Renvoie
True si la maille est dans le patch.

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

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

+ Voici le graphe d'appel pour cette fonction :

◆ isInWithOverlap() [2/4]

bool Arcane::AMRPatchPosition::isInWithOverlap ( CartCoord3Type coord,
Integer overlap ) const

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

Paramètres
coordPosition 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 366 du fichier AMRPatchPosition.cc.

◆ isInWithOverlap() [3/4]

bool Arcane::AMRPatchPosition::isInWithOverlap ( CartCoordType x,
CartCoordType y,
CartCoordType 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 333 du fichier AMRPatchPosition.cc.

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

+ Voici le graphe d'appel pour cette fonction :

◆ isInWithOverlap() [4/4]

bool Arcane::AMRPatchPosition::isInWithOverlap ( CartCoordType x,
CartCoordType y,
CartCoordType 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 355 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 259 du fichier AMRPatchPosition.cc.

◆ length()

CartCoord3Type 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 306 du fichier AMRPatchPosition.cc.

◆ level()

Int32 Arcane::AMRPatchPosition::level ( ) const

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

Renvoie
Le niveau du patch.

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

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

+ Voici le graphe des appelants de cette fonction :

◆ maxPoint()

CartCoord3Type 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 106 du fichier AMRPatchPosition.cc.

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

+ Voici le graphe des appelants de cette fonction :

◆ maxPointWithOverlap()

CartCoord3Type 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 151 du fichier AMRPatchPosition.cc.

Référencé par isInWithOverlap(), et isInWithOverlap().

+ Voici le graphe des appelants de cette fonction :

◆ minPoint()

CartCoord3Type 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 88 du fichier AMRPatchPosition.cc.

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

+ Voici le graphe des appelants de cette fonction :

◆ minPointWithOverlap()

CartCoord3Type 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 142 du fichier AMRPatchPosition.cc.

Référencé par isInWithOverlap(), et 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 160 du fichier AMRPatchPosition.cc.

◆ overlapLayerSize()

Int32 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 124 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 287 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 268 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 ( Int32 level)

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

Paramètres
levelLe niveau du patch.

Définition à la ligne 79 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 ( CartCoord3Type 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 115 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 ( CartCoord3Type 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 97 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 ( Int32 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 133 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

Int32 Arcane::AMRPatchPosition::m_level
private

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

◆ m_max_point

CartCoord3Type Arcane::AMRPatchPosition::m_max_point
private

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

◆ m_min_point

CartCoord3Type Arcane::AMRPatchPosition::m_min_point
private

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

◆ m_overlap_layer_size

Int32 Arcane::AMRPatchPosition::m_overlap_layer_size
private

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


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