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, CartCoord3 min_point, CartCoord3 max_point, Int32 overlap_layer_size) | |
| AMRPatchPosition (const AMRPatchPosition &src) | |
| Constructeur de copie. | |
| AMRPatchPosition & | operator= (const AMRPatchPosition &)=default |
| bool | operator== (const AMRPatchPosition &other) const =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. | |
| CartCoord3 | minPoint () const |
| Méthode permettant de récupérer la position min de la boite englobante. | |
| void | setMinPoint (CartCoord3 min_point) |
| Méthode permettant de définir la position min de la boite englobante. | |
| CartCoord3 | maxPoint () const |
| Méthode permettant de récupérer la position max de la boite englobante. | |
| void | setMaxPoint (CartCoord3 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. | |
| CartCoord3 | minPointWithOverlap () const |
| Méthode permettant de récupérer la position min de la boite englobante en incluant la couche de mailles de recouvrement. | |
| CartCoord3 | 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, AMRPatchPosition > | cut (CartCoord 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 (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, Int32 higher_level, Int32 overlap_layer_size_top_level) const |
| Méthode permettant de créer un AMRPatchPosition pour le niveau supérieur. | |
| AMRPatchPosition | patchDown (Integer dim, Int32 higher_level, Int32 overlap_layer_size_top_level) const |
| Méthode permettant de créer un AMRPatchPosition pour le niveau inférieur. | |
| CartCoord3 | length () const |
| Méthode permettant de connaitre la taille du patch (en nombre de mailles par direction). | |
| bool | isIn (CartCoord x, CartCoord y, CartCoord z) const |
| Méthode permettant de savoir si une maille de position x,y,z est incluse dans ce patch. | |
| bool | isIn (CartCoord3 coord) const |
| Méthode permettant de savoir si une maille est incluse dans ce patch. | |
| bool | isInWithOverlap (CartCoord x, CartCoord y, CartCoord 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 (CartCoord3 coord) const |
| Méthode permettant de savoir si une maille est incluse dans ce patch avec couche de recouvrement. | |
| bool | isInWithOverlap (CartCoord x, CartCoord y, CartCoord 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 (CartCoord3 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. | |
| void | computeOverlapLayerSize (Int32 higher_level, Int32 overlap_layer_size_top_level) |
| Méthode permettant de calculer le nombre de couches de mailles de recouvrement pour notre patch. | |
Fonctions membres publiques statiques | |
| static Int32 | computeOverlapLayerSize (Int32 level, Int32 higher_level, Int32 overlap_layer_size_top_level) |
| Méthode permettant de calculer le nombre de couches de mailles de recouvrement pour un niveau donné. | |
Attributs privés | |
| Int32 | m_level |
| CartCoord3 | m_min_point |
| CartCoord3 | m_max_point |
| Int32 | m_overlap_layer_size |
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.
Les positions des mailles peuvent être obtenues par le CartesianMeshNumberingMng.
Définition à la ligne 50 du fichier AMRPatchPosition.h.
| 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 :| Arcane::AMRPatchPosition::AMRPatchPosition | ( | Int32 | level, |
| CartCoord3 | min_point, | ||
| CartCoord3 | max_point, | ||
| Int32 | overlap_layer_size ) |
Définition à la ligne 40 du fichier AMRPatchPosition.cc.
| Arcane::AMRPatchPosition::AMRPatchPosition | ( | const AMRPatchPosition & | src | ) |
Constructeur de copie.
| src | La 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 :| bool Arcane::AMRPatchPosition::canBeFusion | ( | const AMRPatchPosition & | other_patch | ) | const |
Méthode permettant de savoir si notre patch peut être fusionné avec other_patch.
| other_patch | Le patch à verifier. |
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 :| void Arcane::AMRPatchPosition::computeOverlapLayerSize | ( | Int32 | higher_level, |
| Int32 | overlap_layer_size_top_level ) |
Méthode permettant de calculer le nombre de couches de mailles de recouvrement pour notre patch.
| higher_level | Le plus haut niveau de raffinement. |
| overlap_layer_size_top_level | Le nombre de couches pour le plus haut niveau de raffinement. |
Définition à la ligne 439 du fichier AMRPatchPosition.cc.
Références computeOverlapLayerSize().
Voici le graphe d'appel pour cette fonction :
|
static |
Méthode permettant de calculer le nombre de couches de mailles de recouvrement pour un niveau donné.
| level | Le niveau demandé. |
| higher_level | Le plus haut niveau de raffinement. |
| overlap_layer_size_top_level | Le nombre de couches pour le plus haut niveau de raffinement. |
Suite : Soit m le plus haut niveau de raffinement (higher_level), Soit C(m) le nombre de couches au niveau m (overlap_layer_size_top_level), Pour tout C(m) entier pair positif : C(m-1) = (int(C(m)/4)+1)*2
Définition à la ligne 399 du fichier AMRPatchPosition.cc.
Références ARCANE_FATAL, et level().
Référencé par computeOverlapLayerSize(), patchDown(), et patchUp().
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :| std::pair< AMRPatchPosition, AMRPatchPosition > Arcane::AMRPatchPosition::cut | ( | CartCoord | cut_point, |
| Integer | dim ) const |
Méthode permettant de découper le patch en deux patchs selon un point de découpe.
| cut_point | Le point de découpe. |
| dim | La dimension qui doit être découpée. |
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 :| bool Arcane::AMRPatchPosition::fusion | ( | 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. Si fusion, other_patch devient null.
| other_patch | Le patch avec lequel fusionner. |
Définition à la ligne 222 du fichier AMRPatchPosition.cc.
Références AMRPatchPosition(), canBeFusion(), maxPoint(), minPoint(), et setLevel().
Référencé par Arcane::AMRPatchPositionLevelGroup::fusionPatches().
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :| bool Arcane::AMRPatchPosition::haveIntersection | ( | const AMRPatchPosition & | other | ) | const |
Méthode permettant de savoir si notre patch est en contact avec le patch other.
| other | Le patch à verifier. |
Définition à la ligne 379 du fichier AMRPatchPosition.cc.
Références AMRPatchPosition(), level(), maxPoint(), et minPoint().
Voici le graphe d'appel pour cette fonction :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().
| x | Position X de la maille. |
| y | Position Y de la maille. |
| z | Position Z de la maille. |
Définition à la ligne 317 du fichier AMRPatchPosition.cc.
| bool Arcane::AMRPatchPosition::isIn | ( | CartCoord3 | 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().
| coord | Position de la maille. |
Définition à la ligne 326 du fichier AMRPatchPosition.cc.
Méthode permettant de savoir si une maille de position x,y,z est incluse dans ce patch avec couche de recouvrement.
| x | Position X de la maille. |
| y | Position Y de la maille. |
| z | Position Z de la maille. |
Définition à la ligne 335 du fichier AMRPatchPosition.cc.
Références maxPointWithOverlap(), et minPointWithOverlap().
Voici le graphe d'appel pour cette fonction :| bool Arcane::AMRPatchPosition::isInWithOverlap | ( | CartCoord | x, |
| CartCoord | y, | ||
| CartCoord | 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.
| x | Position X de la maille. |
| y | Position Y de la maille. |
| z | Position Z de la maille. |
| overlap | Le nombre de mailles de recouvrement de la couche. |
Définition à la ligne 357 du fichier AMRPatchPosition.cc.
| bool Arcane::AMRPatchPosition::isInWithOverlap | ( | CartCoord3 | coord | ) | const |
Méthode permettant de savoir si une maille est incluse dans ce patch avec couche de recouvrement.
| coord | Position de la maille. |
Définition à la ligne 346 du fichier AMRPatchPosition.cc.
Références maxPointWithOverlap(), et minPointWithOverlap().
Voici le graphe d'appel pour cette fonction :| bool Arcane::AMRPatchPosition::isInWithOverlap | ( | CartCoord3 | 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.
| coord | Position de la maille. |
| overlap | Le nombre de mailles de recouvrement de la couche. |
Définition à la ligne 368 du fichier AMRPatchPosition.cc.
| bool Arcane::AMRPatchPosition::isNull | ( | ) | const |
Méthode permettant de savoir si la position du patch est nulle.
Définition à la ligne 261 du fichier AMRPatchPosition.cc.
Référencé par Arcane::AMRPatchPositionLevelGroup::fusionPatches().
Voici le graphe des appelants de cette fonction :| CartCoord3 Arcane::AMRPatchPosition::length | ( | ) | const |
Méthode permettant de connaitre la taille du patch (en nombre de mailles par direction).
Définition à la ligne 308 du fichier AMRPatchPosition.cc.
| Int32 Arcane::AMRPatchPosition::level | ( | ) | const |
Méthode permettant de récupérer le niveau du patch.
Définition à la ligne 70 du fichier AMRPatchPosition.cc.
Référencé par AMRPatchPosition(), canBeFusion(), computeOverlapLayerSize(), haveIntersection(), et setLevel().
Voici le graphe des appelants de cette fonction :| CartCoord3 Arcane::AMRPatchPosition::maxPoint | ( | ) | const |
Méthode permettant de récupérer la position max de la boite englobante.
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 :| CartCoord3 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.
Définition à la ligne 151 du fichier AMRPatchPosition.cc.
Référencé par isInWithOverlap(), et isInWithOverlap().
Voici le graphe des appelants de cette fonction :| CartCoord3 Arcane::AMRPatchPosition::minPoint | ( | ) | const |
Méthode permettant de récupérer la position min de la boite englobante.
Définition à la ligne 88 du fichier AMRPatchPosition.cc.
Référencé par AMRPatchPosition(), canBeFusion(), Arcane::AMRPatchPositionSignatureCut::cut(), fusion(), et haveIntersection().
Voici le graphe des appelants de cette fonction :| CartCoord3 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.
Définition à la ligne 142 du fichier AMRPatchPosition.cc.
Référencé par isInWithOverlap(), et isInWithOverlap().
Voici le graphe des appelants de cette fonction :| Int64 Arcane::AMRPatchPosition::nbCells | ( | ) | const |
Méthode permettant de connaitre le nombre de mailles du patch selon sa position.
Définition à la ligne 160 du fichier AMRPatchPosition.cc.
| Int32 Arcane::AMRPatchPosition::overlapLayerSize | ( | ) | const |
Méthode permettant de récupérer le nombre de couches de mailles de recouvrement du patch.
Définition à la ligne 124 du fichier AMRPatchPosition.cc.
Référencé par AMRPatchPosition().
Voici le graphe des appelants de cette fonction :| AMRPatchPosition Arcane::AMRPatchPosition::patchDown | ( | Integer | dim, |
| Int32 | higher_level, | ||
| Int32 | overlap_layer_size_top_level ) 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.
| dim | La dimension du maillage. |
| higher_level | Le plus haut niveau de raffinement du maillage. |
| overlap_layer_size_top_level | Le nombre de couches de mailles de recouvrement pour les patchs du plus haut niveau de raffinement. |
Définition à la ligne 289 du fichier AMRPatchPosition.cc.
Références AMRPatchPosition(), computeOverlapLayerSize(), setLevel(), setMaxPoint(), et setMinPoint().
Voici le graphe d'appel pour cette fonction :| AMRPatchPosition Arcane::AMRPatchPosition::patchUp | ( | Integer | dim, |
| Int32 | higher_level, | ||
| Int32 | overlap_layer_size_top_level ) const |
Méthode permettant de créer un AMRPatchPosition pour le niveau supérieur.
| dim | La dimension du maillage. |
| higher_level | Le plus haut niveau de raffinement du maillage. |
| overlap_layer_size_top_level | Le nombre de couches de mailles de recouvrement pour les patchs du plus haut niveau de raffinement. |
Définition à la ligne 270 du fichier AMRPatchPosition.cc.
Références AMRPatchPosition(), computeOverlapLayerSize(), setLevel(), setMaxPoint(), et setMinPoint().
Voici le graphe d'appel pour cette fonction :| void Arcane::AMRPatchPosition::setLevel | ( | Int32 | level | ) |
Méthode permettant de définir le niveau du patch.
| level | Le niveau du patch. |
Définition à la ligne 79 du fichier AMRPatchPosition.cc.
Références level().
Référencé par fusion(), patchDown(), et patchUp().
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :| void Arcane::AMRPatchPosition::setMaxPoint | ( | CartCoord3 | max_point | ) |
Méthode permettant de définir la position max de la boite englobante.
| max_point | la 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 :| void Arcane::AMRPatchPosition::setMinPoint | ( | CartCoord3 | min_point | ) |
Méthode permettant de définir la position min de la boite englobante.
| min_point | la 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 :| void Arcane::AMRPatchPosition::setOverlapLayerSize | ( | Int32 | layer_size | ) |
Méthode permettant de définir le nombre de couches de mailles de recouvrement du patch.
| layer_size | le nombre de couches de mailles de recouvrement |
Définition à la ligne 133 du fichier AMRPatchPosition.cc.
|
private |
Définition à la ligne 356 du fichier AMRPatchPosition.h.
|
private |
Définition à la ligne 358 du fichier AMRPatchPosition.h.
|
private |
Définition à la ligne 357 du fichier AMRPatchPosition.h.
|
private |
Définition à la ligne 359 du fichier AMRPatchPosition.h.