Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::mesh::MeshRefinement

Implémentation des algorithmes d'adaptation par raffinement de maillages non-structuré. Plus de détails...

#include <arcane/mesh/MeshRefinement.h>

+ Graphe d'héritage de Arcane::mesh::MeshRefinement:
+ Graphe de collaboration de Arcane::mesh::MeshRefinement:

Fonctions membres publiques

 MeshRefinement (DynamicMesh *mesh)
 
 ~MeshRefinement ()
 
void clear ()
 
void init ()
 
void update ()
 
bool needUpdate () const
 
void invalidate ()
 
void initMeshContainingBox ()
 
void flagItems (const Int32Array &flag_per_cell, const Integer max_level=-1)
 
virtual void flagCellToRefine (Int32ConstArrayView cells_lids)
 Passage de l'erreur commise par maille au flag de raffinement.
 
virtual void flagCellToCoarsen (Int32ConstArrayView cells_lids)
 
bool refineAndCoarsenItems (const bool maintain_level_one=true)
 
bool coarsenItems (const bool maintain_level_one=true)
 
bool coarsenItemsV2 (bool update_parent_flag)
 Méthode permettant de retirer les mailles marquées avec le flag "II_Coarsen".
 
bool refineItems (const bool maintain_level_one=true)
 
void uniformlyRefine (Integer n=1)
 
void uniformlyCoarsen (Integer n=1)
 
Integer & maxLevel ()
 
const IMeshgetMesh () const
 Référence constante au maillage.
 
IMeshgetMesh ()
 Référence au maillage.
 
void registerCallBack (IAMRTransportFunctor *f)
 
void unRegisterCallBack (IAMRTransportFunctor *f)
 
Int64 findOrAddNodeUid (const Real3 &p, const Real &tol)
 
Int64 findOrAddFaceUid (const Real3 &face_center, const Real &tol, bool &is_added)
 
Int64 getFirstChildNewUid ()
 
void _update (ArrayView< ItemInternal * > cells_to_refine)
 
void _update (ArrayView< Int64 > cells_to_refine)
 
void _invalidate (ArrayView< ItemInternal * > cells_to_coarsen)
 
void _updateMaxUid (ArrayView< ItemInternal * > cells_to_refine)
 
template<int typeID>
const ItemRefinementPatternT< typeID > & getRefinementPattern () const
 
void populateBackFrontCellsFromChildrenFaces (Cell parent_cell)
 
void populateBackFrontCellsFromParentFaces (Cell parent_cell)
 
template<>
const ItemRefinementPatternT< IT_Quad4 > & getRefinementPattern () const
 
template<>
const ItemRefinementPatternT< IT_Tetraedron4 > & getRefinementPattern () const
 
template<>
const ItemRefinementPatternT< IT_Pyramid5 > & getRefinementPattern () const
 
template<>
const ItemRefinementPatternT< IT_Pentaedron6 > & getRefinementPattern () const
 
template<>
const ItemRefinementPatternT< IT_Hexaedron8 > & getRefinementPattern () const
 
template<>
const ItemRefinementPatternT< IT_HemiHexa7 > & getRefinementPattern () const
 
template<>
const ItemRefinementPatternT< IT_HemiHexa6 > & getRefinementPattern () const
 
template<>
const ItemRefinementPatternT< IT_HemiHexa5 > & getRefinementPattern () const
 
template<>
const ItemRefinementPatternT< IT_AntiWedgeLeft6 > & getRefinementPattern () const
 
template<>
const ItemRefinementPatternT< IT_AntiWedgeRight6 > & getRefinementPattern () const
 
template<>
const ItemRefinementPatternT< IT_DiTetra5 > & getRefinementPattern () const
 
- Fonctions membres publiques hérités de Arccore::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Construit un accesseur via le gestionnaire de trace m.
 
 TraceAccessor (const TraceAccessor &rhs)
 Constructeur par recopie.
 
TraceAccessoroperator= (const TraceAccessor &rhs)
 Opérateur de recopie.
 
virtual ~TraceAccessor ()
 Libère les ressources.
 
ITraceMngtraceMng () const
 Gestionnaire de trace.
 
TraceMessage info () const
 Flot pour un message d'information.
 
TraceMessage pinfo () const
 Flot pour un message d'information en parallèle.
 
TraceMessage info (char category) const
 Flot pour un message d'information d'une catégorie donnée.
 
TraceMessage pinfo (char category) const
 Flot pour un message d'information parallèle d'une catégorie donnée.
 
TraceMessage info (bool v) const
 Flot pour un message d'information.
 
TraceMessage warning () const
 Flot pour un message d'avertissement.
 
TraceMessage pwarning () const
 
TraceMessage error () const
 Flot pour un message d'erreur.
 
TraceMessage perror () const
 
TraceMessage log () const
 Flot pour un message de log.
 
TraceMessage plog () const
 Flot pour un message de log.
 
TraceMessage logdate () const
 Flot pour un message de log précédé de la date.
 
TraceMessage fatal () const
 Flot pour un message d'erreur fatale.
 
TraceMessage pfatal () const
 Flot pour un message d'erreur fatale en parallèle.
 
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flot pour un message de debug.
 
Trace::eDebugLevel configDbgLevel () const
 Niveau debug du fichier de configuration.
 
TraceMessage info (Int32 verbose_level) const
 Flot pour un message d'information d'un niveau donné
 
TraceMessage linfo () const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
TraceMessage linfo (Int32 relative_level) const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
void fatalMessage (const StandaloneTraceMessage &o) const
 

Fonctions membres privées

 MeshRefinement (const MeshRefinement &)
 
MeshRefinementoperator= (const MeshRefinement &)
 
bool _checkLevelOne (bool arcane_assert_yes=false)
 
bool _checkUnflagged (bool arcane_assert_yes=false)
 
boolcoarsenByParents ()
 
unsigned charfaceLevelMismatchLimit ()
 
bool _contract ()
 
void _interpolateData (const Int64Array &cells_to_refine)
 interpolation des données sur les mailles enfants
 
void _upscaleData (Array< ItemInternal * > &parent_cells)
 restriction des données sur les mailles parents
 
bool _coarsenItems ()
 
bool _refineItems (Int64Array &cells_to_refine)
 
void _updateItemOwner (Int32ArrayView cell_to_remove)
 
void _updateItemOwner2 ()
 
bool _removeGhostChildren ()
 
void _updateLocalityMap ()
 
void _updateLocalityMap2 ()
 
void _cleanRefinementFlags ()
 
bool _makeCoarseningCompatible (const bool)
 
bool _makeRefinementCompatible (const bool)
 
bool _makeFlagParallelConsistent ()
 
bool _makeFlagParallelConsistent2 ()
 
template<int typeID>
void _populateBackFrontCellsFromParentFaces (Cell parent_cell)
 
template<int typeID>
void _populateBackFrontCellsFromChildrenFaces (Face face, Cell parent_cell, Cell neighbor_cell)
 
void _checkOwner (const String &msg)
 

Attributs privés

DynamicMeshm_mesh
 
FaceFamilym_face_family
 
bool m_need_update
 
MapCoordToUid::Box m_mesh_containing_box
 
NodeMapCoordToUid m_node_finder
 
FaceMapCoordToUid m_face_finder
 
ItemRefinementm_item_refinement
 
ParallelAMRConsistencym_parallel_amr_consistency
 
AMRCallBackMngm_call_back_mng
 
bool m_coarsen_by_parents
 
Integer m_max_level
 
Integer m_nb_cell_target
 
Byte m_face_level_mismatch_limit
 
Int64 m_max_node_uid
 
Int64 m_next_node_uid
 
Int64 m_max_cell_uid
 
Int64 m_next_cell_uid
 
Int64 m_max_face_uid
 
Int64 m_next_face_uid
 
Integer m_max_nb_hChildren
 
const Quad4RefinementPattern4Quad m_quad4_refinement_pattern
 
const TetraRefinementPattern2Hex_2Penta_2Py_2Tetra m_tetra_refinement_pattern
 
const PyramidRefinementPattern4Hex_4Py m_pyramid_refinement_pattern
 
const PrismRefinementPattern4Hex_4Pr m_prism_refinement_pattern
 
const HexRefinementPattern8Hex m_hex_refinement_pattern
 
const HemiHex7RefinementPattern6Hex_2HHex7 m_hemihexa7_refinement_pattern
 
const HemiHex6RefinementPattern4Hex_4HHex7 m_hemihexa6_refinement_pattern
 
const HemiHex5RefinementPattern2Hex_4Penta_2HHex5 m_hemihexa5_refinement_pattern
 
const AntiWedgeLeft6RefinementPattern4Hex_4HHex7 m_antiwedgeleft6_refinement_pattern
 
const AntiWedgeRight6RefinementPattern4Hex_4HHex7 m_antiwedgeright6_refinement_pattern
 
const DiTetra5RefinementPattern2Hex_6HHex7 m_ditetra5_refinement_pattern
 
VariableNodeInt32 m_node_owner_memory
 

Membres hérités additionnels

- Fonctions membres protégées hérités de Arccore::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
 
Int32 _localVerboseLevel () const
 

Description détaillée

Implémentation des algorithmes d'adaptation par raffinement de maillages non-structuré.

Définition à la ligne 55 du fichier MeshRefinement.h.

Documentation des constructeurs et destructeur

◆ MeshRefinement()

Arcane::mesh::MeshRefinement::MeshRefinement ( DynamicMesh mesh)

◆ ~MeshRefinement()

Arcane::mesh::MeshRefinement::~MeshRefinement ( )

Destructor.

Définition à la ligne 137 du fichier MeshRefinement.cc.

Références clear(), m_call_back_mng, m_item_refinement, et m_parallel_amr_consistency.

Documentation des fonctions membres

◆ _checkLevelOne()

bool Arcane::mesh::MeshRefinement::_checkLevelOne ( bool  arcane_assert_yes = false)
private

Retourne true si et seulement si le maillage satisfait la règle de niveau un Retourne false sinon Arrète l'exècution si arcane_assert_yes est true et si le maillage ne satisfait pas la règle de niveau un

Définition à la ligne 987 du fichier MeshRefinement.cc.

Références Arcane::mesh::DynamicMesh::allActiveCells(), Arcane::IParallelMng::commRank(), ENUMERATE_CELL, Arcane::Cell::faces(), Arcane::Cell::level(), m_mesh, Arcane::mesh::DynamicMesh::parallelMng(), et Arcane::IParallelMng::reduce().

Référencé par coarsenItems(), refineAndCoarsenItems(), et refineItems().

◆ _checkOwner()

void Arcane::mesh::MeshRefinement::_checkOwner ( const String msg)
private

Définition à la ligne 2443 du fichier MeshRefinement.cc.

◆ _checkUnflagged()

bool Arcane::mesh::MeshRefinement::_checkUnflagged ( bool  arcane_assert_yes = false)
private

Retourne true si et seulement si le maillage n'a pas d'items flaggès pour déraffinement ou raffinement Retourne false autrement Arrète l'exécution si arcane_assert_yes est true et si le maillage a des items flaggés

Définition à la ligne 1031 du fichier MeshRefinement.cc.

Références ENUMERATE_CELL, Arcane::ItemBase::flags(), Arcane::ItemFlags::II_Coarsen, Arcane::ItemFlags::II_Refine, Arcane::Item::itemBase(), m_mesh, Arcane::mesh::DynamicMesh::ownActiveCells(), Arcane::mesh::DynamicMesh::parallelMng(), et Arcane::IParallelMng::reduce().

◆ _cleanRefinementFlags()

◆ _coarsenItems()

bool Arcane::mesh::MeshRefinement::_coarsenItems ( )
private

Déraffine les items demandés par l'utilisateur. Les deux méthodes _coarsenItems() et _refineItems() ne sont pas dans l'interface publique de MeshRefinement. Car une prèparation approprièe (makeRefinementCompatible, makeCoarseningCompatible) est nècessaire pour qu'on puisse exècuter _coarsenItems().

Il est possible que pour un ensemble donné de flags qu'il n'est réellement aucun changement en appelant cette fonction. En conséquence, Elle renvoie true si le maillage a changé réellement (dans ce cas les données doivent ètre projetées) false autrement.

Définition à la ligne 1619 du fichier MeshRefinement.cc.

Références Arcane::mesh::DynamicMesh::allNodes(), ARCANE_FATAL, Arcane::mesh::ItemRefinement::coarsenOneCell(), Arccore::TraceAccessor::debug(), ENUMERATE_CELL, Arcane::ItemBase::flags(), Arcane::ItemFlags::II_Coarsen, Arcane::ItemFlags::II_CoarsenInactive, Arcane::Cell::isActive(), Arcane::Item::itemBase(), Arcane::Cell::level(), m_item_refinement, m_mesh, Arcane::mesh::DynamicMesh::ownCells(), Arcane::mesh::DynamicMesh::parallelMng(), Arcane::IParallelMng::reduce(), Arcane::ItemGroup::size(), et Arcane::Item::type().

Référencé par coarsenItems(), refineAndCoarsenItems(), et uniformlyCoarsen().

◆ _contract()

bool Arcane::mesh::MeshRefinement::_contract ( )
private

◆ _interpolateData()

void Arcane::mesh::MeshRefinement::_interpolateData ( const Int64Array cells_to_refine)
private

interpolation des données sur les mailles enfants

Définition à la ligne 1988 du fichier MeshRefinement.cc.

Références Arcane::mesh::DynamicMesh::cellFamily(), Arcane::IItemFamily::itemsUniqueIdToLocalId(), m_call_back_mng, et m_mesh.

Référencé par refineAndCoarsenItems(), et refineItems().

◆ _invalidate()

void Arcane::mesh::MeshRefinement::_invalidate ( ArrayView< ItemInternal * >  cells_to_coarsen)

Définition à la ligne 2036 du fichier MeshRefinement.cc.

◆ _makeCoarseningCompatible()

◆ _makeFlagParallelConsistent()

◆ _makeFlagParallelConsistent2()

bool Arcane::mesh::MeshRefinement::_makeFlagParallelConsistent2 ( )
private

Définition à la ligne 1152 du fichier MeshRefinement.cc.

◆ _makeRefinementCompatible()

◆ _populateBackFrontCellsFromChildrenFaces()

template<int typeID>
void Arcane::mesh::MeshRefinement::_populateBackFrontCellsFromChildrenFaces ( Face  face,
Cell  parent_cell,
Cell  neighbor_cell 
)
private

Définition à la ligne 2411 du fichier MeshRefinement.cc.

◆ _populateBackFrontCellsFromParentFaces()

template<int typeID>
void Arcane::mesh::MeshRefinement::_populateBackFrontCellsFromParentFaces ( Cell  parent_cell)
private

Determination des connexions non conformes des mailles raffinées

Définition à la ligne 2315 du fichier MeshRefinement.cc.

Références Arcane::Face::backCell(), Arcane::Cell::face(), Arcane::Face::frontCell(), Arcane::Item::isOwn(), Arcane::Face::nbCell(), et Arcane::Cell::nbFace().

◆ _refineItems()

bool Arcane::mesh::MeshRefinement::_refineItems ( Int64Array cells_to_refine)
private

Raffine les items demandès par l'utilisateur.

Il est possible que pour un ensemble donné de flags qu'il n'est rèellement aucun changement en appelant cette fonction. En conséquence, Elle renvoie true si le maillage a changé réellement (dans ce cas les données doivent ètre projetées) false autrement.

Définition à la ligne 1723 du fichier MeshRefinement.cc.

Références Arcane::mesh::DynamicMesh::allNodes(), ARCANE_FATAL, Arccore::TraceAccessor::debug(), ENUMERATE_CELL, Arcane::ItemBase::flags(), Arcane::ItemFlags::II_Refine, Arcane::IParallelMng::isParallel(), Arcane::Item::itemBase(), m_item_refinement, m_mesh, m_parallel_amr_consistency, Arcane::mesh::ParallelAMRConsistency::makeNewItemsConsistent(), Arcane::mesh::DynamicMesh::ownCells(), Arcane::mesh::DynamicMesh::parallelMng(), Arcane::IParallelMng::reduce(), Arcane::mesh::ItemRefinement::refineOneCell(), Arcane::ItemGroup::size(), et Arcane::Item::uniqueId().

Référencé par refineAndCoarsenItems(), refineItems(), et uniformlyRefine().

◆ _removeGhostChildren()

bool Arcane::mesh::MeshRefinement::_removeGhostChildren ( )
private

Définition à la ligne 2230 du fichier MeshRefinement.cc.

◆ _update() [1/2]

void Arcane::mesh::MeshRefinement::_update ( ArrayView< Int64 >  cells_to_refine)

Définition à la ligne 2004 du fichier MeshRefinement.cc.

◆ _update() [2/2]

void Arcane::mesh::MeshRefinement::_update ( ArrayView< ItemInternal * >  cells_to_refine)

Définition à la ligne 2024 du fichier MeshRefinement.cc.

◆ _updateItemOwner()

void Arcane::mesh::MeshRefinement::_updateItemOwner ( Int32ArrayView  cell_to_remove)
private

Définition à la ligne 2057 du fichier MeshRefinement.cc.

◆ _updateItemOwner2()

void Arcane::mesh::MeshRefinement::_updateItemOwner2 ( )
private

Définition à la ligne 2161 du fichier MeshRefinement.cc.

◆ _updateLocalityMap()

void Arcane::mesh::MeshRefinement::_updateLocalityMap ( )
private

Mise è jour de m_nodes_finder et m_faces_finder

Définition à la ligne 960 du fichier MeshRefinement.cc.

Références Arccore::TraceAccessor::debug().

◆ _updateLocalityMap2()

void Arcane::mesh::MeshRefinement::_updateLocalityMap2 ( )
private

Définition à la ligne 974 du fichier MeshRefinement.cc.

◆ _updateMaxUid()

void Arcane::mesh::MeshRefinement::_updateMaxUid ( ArrayView< ItemInternal * >  cells_to_refine)

Définition à la ligne 239 du fichier MeshRefinement.cc.

◆ _upscaleData()

void Arcane::mesh::MeshRefinement::_upscaleData ( Array< ItemInternal * > &  parent_cells)
private

restriction des données sur les mailles parents

Définition à la ligne 2048 du fichier MeshRefinement.cc.

Références m_call_back_mng.

Référencé par _contract().

◆ clear()

void Arcane::mesh::MeshRefinement::clear ( )

Supprime toutes les données qui sont actuellement stockés.

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

Référencé par ~MeshRefinement().

◆ coarsenByParents()

bool & Arcane::mesh::MeshRefinement::coarsenByParents ( )
inlineprivate

Si coarsen_by_parents est true, les items avec le même parent seront flaggés pour déraffinement Ceci devrait produire un déraffinement plus proche à ce qui a été demandé.

coarsen_by_parents est true par default.

Définition à la ligne 463 du fichier MeshRefinement.h.

Références m_coarsen_by_parents.

◆ coarsenItems()

bool Arcane::mesh::MeshRefinement::coarsenItems ( const bool  maintain_level_one = true)

Dérffine seulement les items demandés par l'utilisateur. Quelques items ne seront pas déraffinés pour satisfaire la régle de niveau un. Il est possible que pour un ensemble donné de flags qu'il n'est réellement aucun changement en appelant cette méthode. En conséquence, elle envoie true si le maillage a changé réellement (dans ce cas les données doivent être projetées) et false sinon.

L'argument maintain_level_one est deprecated; utilisez plutôt l'option face_level_mismatch_limit() .

Définition à la ligne 519 du fichier MeshRefinement.cc.

Références _checkLevelOne(), _cleanRefinementFlags(), _coarsenItems(), _contract(), _makeCoarseningCompatible(), _makeFlagParallelConsistent(), Arcane::IParallelMng::isParallel(), m_mesh, Arcane::mesh::DynamicMesh::parallelMng(), Arcane::IParallelMng::reduce(), et Arccore::TraceAccessor::warning().

◆ coarsenItemsV2()

bool Arcane::mesh::MeshRefinement::coarsenItemsV2 ( bool  update_parent_flag)

Méthode permettant de retirer les mailles marquées avec le flag "II_Coarsen".

Les propriétaires des faces et des noeuds ayant des mailles marquées et des mailles non marquées sont susceptibles d'être mis à jour.

Paramètres
update_parent_flagSi true, alors les flags des parents seront mis à jour. Cela inclut l'activation des mailles parents.
Renvoie
true si le maillage a évolué.

Définition à la ligne 588 du fichier MeshRefinement.cc.

Références _cleanRefinementFlags(), Arcane::MutableItemBase::addFlags(), Arcane::mesh::DynamicMesh::allCells(), ARCANE_FATAL, Arcane::mesh::DynamicMesh::cellFamily(), Arcane::IItemFamily::computeSynchronizeInfos(), Arcane::IMeshModifier::endUpdate(), ENUMERATE_, Arcane::mesh::DynamicMesh::faceFamily(), Arcane::Cell::faces(), Arcane::ItemBase::flags(), Arcane::mesh::DynamicMesh::ghostLayerMng(), Arcane::Cell::hChild(), Arcane::Cell::hParent(), Arcane::ItemFlags::II_Coarsen, Arcane::ItemFlags::II_CoarsenInactive, Arcane::ItemFlags::II_Inactive, Arcane::ItemFlags::II_JustCoarsened, Arcane::IParallelMng::isParallel(), Arcane::Cell::level(), Arcane::Item::localId(), m_mesh, Arcane::mesh::DynamicMesh::modifier(), Arcane::Item::mutableItemBase(), Arcane::IGhostLayerMng::nbGhostLayer(), Arcane::Cell::nbHChildren(), Arcane::mesh::DynamicMesh::nodeFamily(), Arcane::ItemWithNodes::nodes(), Arcane::IItemFamily::notifyItemsOwnerChanged(), Arcane::Item::owner(), Arcane::mesh::DynamicMesh::parallelMng(), Arcane::IParallelMng::reduce(), Arcane::IMeshModifier::removeCells(), Arcane::MutableItemBase::removeFlags(), Arcane::IMeshModifier::setDynamic(), Arcane::Item::uniqueId(), et Arcane::IMeshModifier::updateGhostLayerFromParent().

◆ faceLevelMismatchLimit()

unsigned char & Arcane::mesh::MeshRefinement::faceLevelMismatchLimit ( )
inlineprivate

Si Face_level_mismatch_limit est mise à une valeur non nulle, alors le raffinement et déraffinement produiront des maillages dans lesquels le niveau de raffinement de deux mailles voisines par face ne différera pas plus que cette limite. Si Face_level_mismatch_limit est 0, donc les diffèrences de niveau seront illimitées.

face_level_mismatch_limit est 1 par default. Actuellement les seules options supportèes sont 0 et 1.

Définition à la ligne 479 du fichier MeshRefinement.h.

◆ findOrAddFaceUid()

Int64 Arcane::mesh::MeshRefinement::findOrAddFaceUid ( const Real3 face_center,
const Real &  tol,
bool is_added 
)

Ajout d'un nouveau uid associé au centre de la face face_center. si p existe déjà, on garde l'ancien uid. La tolerance tol donne le perimetre de recherche autour de face_center.

Définition à la ligne 918 du fichier MeshRefinement.cc.

Références Arcane::IParallelMng::commSize(), m_mesh, et Arcane::mesh::DynamicMesh::parallelMng().

◆ findOrAddNodeUid()

Int64 Arcane::mesh::MeshRefinement::findOrAddNodeUid ( const Real3 p,
const Real &  tol 
)

Ajout d'un nouveau uid associé au point p. si p existe déjà, on garde l'ancien uid. La tolerance tol donne le perimetre de recherche autour de p.

Définition à la ligne 895 du fichier MeshRefinement.cc.

Références Arcane::IParallelMng::commSize(), m_mesh, et Arcane::mesh::DynamicMesh::parallelMng().

◆ flagCellToCoarsen()

void Arcane::mesh::MeshRefinement::flagCellToCoarsen ( Int32ConstArrayView  cells_lids)
virtual

Définition à la ligne 357 du fichier MeshRefinement.cc.

◆ flagCellToRefine()

void Arcane::mesh::MeshRefinement::flagCellToRefine ( Int32ConstArrayView  cells_lids)
virtual

Passage de l'erreur commise par maille au flag de raffinement.

Cette métthode pourrait être condée de manières différentes: 1- implémentation actuelle: l'uilisateur fait la transformation lui-même dans ce cas, il modifie l'objet itemInternal en settant le flag de raffinement 2- l'uilisateur fait la transformation lui-même mais stocke et retourne un tableau des flags la classe MeshRefinement, dans ce cas là, implémente un setter à partir du tableau retourné ici 3- pour éviter la copie du tableau des flags, implémenter le converter directement dans meshRefinement et l'utilisateur ne fait que fournir le tableau d'erreur

Définition à la ligne 343 du fichier MeshRefinement.cc.

Références Arcane::MutableItemBase::addFlags(), Arcane::mesh::DynamicMesh::cellFamily(), Arcane::ItemFlags::II_Refine, m_mesh, et Arcane::Item::mutableItemBase().

Référencé par Arcane::mesh::DynamicMesh::flagCellToRefine().

◆ flagItems()

void Arcane::mesh::MeshRefinement::flagItems ( const Int32Array flag_per_cell,
const Integer  max_level = -1 
)

Flag les items pour raffinement/déraffinement

◆ getFirstChildNewUid()

Int64 Arcane::mesh::MeshRefinement::getFirstChildNewUid ( )

genere un nouveau uid pour les enfants.

Définition à la ligne 944 du fichier MeshRefinement.cc.

Références Arcane::IParallelMng::commSize(), m_mesh, et Arcane::mesh::DynamicMesh::parallelMng().

◆ getMesh() [1/2]

IMesh * Arcane::mesh::MeshRefinement::getMesh ( )

Référence au maillage.

Définition à la ligne 2542 du fichier MeshRefinement.cc.

Références m_mesh.

◆ getMesh() [2/2]

const IMesh * Arcane::mesh::MeshRefinement::getMesh ( ) const

Référence constante au maillage.

Définition à la ligne 2533 du fichier MeshRefinement.cc.

Références m_mesh.

◆ getRefinementPattern() [1/12]

template<int typeID>
const ItemRefinementPatternT< typeID > & Arcane::mesh::MeshRefinement::getRefinementPattern ( ) const

return le pattern de raffinement associe au type de maille.

◆ getRefinementPattern() [2/12]

template<>
const ItemRefinementPatternT< IT_Quad4 > & Arcane::mesh::MeshRefinement::getRefinementPattern ( ) const
inline

Définition à la ligne 487 du fichier MeshRefinement.h.

◆ getRefinementPattern() [3/12]

template<>
const ItemRefinementPatternT< IT_Tetraedron4 > & Arcane::mesh::MeshRefinement::getRefinementPattern ( ) const
inline

Définition à la ligne 493 du fichier MeshRefinement.h.

◆ getRefinementPattern() [4/12]

template<>
const ItemRefinementPatternT< IT_Pyramid5 > & Arcane::mesh::MeshRefinement::getRefinementPattern ( ) const
inline

Définition à la ligne 499 du fichier MeshRefinement.h.

◆ getRefinementPattern() [5/12]

template<>
const ItemRefinementPatternT< IT_Pentaedron6 > & Arcane::mesh::MeshRefinement::getRefinementPattern ( ) const
inline

Définition à la ligne 505 du fichier MeshRefinement.h.

◆ getRefinementPattern() [6/12]

template<>
const ItemRefinementPatternT< IT_Hexaedron8 > & Arcane::mesh::MeshRefinement::getRefinementPattern ( ) const
inline

Définition à la ligne 511 du fichier MeshRefinement.h.

◆ getRefinementPattern() [7/12]

template<>
const ItemRefinementPatternT< IT_HemiHexa7 > & Arcane::mesh::MeshRefinement::getRefinementPattern ( ) const
inline

Définition à la ligne 517 du fichier MeshRefinement.h.

◆ getRefinementPattern() [8/12]

template<>
const ItemRefinementPatternT< IT_HemiHexa6 > & Arcane::mesh::MeshRefinement::getRefinementPattern ( ) const
inline

Définition à la ligne 523 du fichier MeshRefinement.h.

◆ getRefinementPattern() [9/12]

template<>
const ItemRefinementPatternT< IT_HemiHexa5 > & Arcane::mesh::MeshRefinement::getRefinementPattern ( ) const
inline

Définition à la ligne 529 du fichier MeshRefinement.h.

◆ getRefinementPattern() [10/12]

template<>
const ItemRefinementPatternT< IT_AntiWedgeLeft6 > & Arcane::mesh::MeshRefinement::getRefinementPattern ( ) const
inline

Définition à la ligne 535 du fichier MeshRefinement.h.

◆ getRefinementPattern() [11/12]

template<>
const ItemRefinementPatternT< IT_AntiWedgeRight6 > & Arcane::mesh::MeshRefinement::getRefinementPattern ( ) const
inline

Définition à la ligne 541 du fichier MeshRefinement.h.

◆ getRefinementPattern() [12/12]

template<>
const ItemRefinementPatternT< IT_DiTetra5 > & Arcane::mesh::MeshRefinement::getRefinementPattern ( ) const
inline

Définition à la ligne 547 du fichier MeshRefinement.h.

◆ init()

◆ initMeshContainingBox()

void Arcane::mesh::MeshRefinement::initMeshContainingBox ( )

Définition à la ligne 318 du fichier MeshRefinement.cc.

◆ invalidate()

void Arcane::mesh::MeshRefinement::invalidate ( )
inline

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

◆ maxLevel()

Integer & Arcane::mesh::MeshRefinement::maxLevel ( )
inline

max_level est le plus grand niveau de raffinement qu'un item peut atteindre.

max_level est illimité (-1) par default

Définition à la ligne 471 du fichier MeshRefinement.h.

◆ needUpdate()

bool Arcane::mesh::MeshRefinement::needUpdate ( ) const
inline

Définition à la ligne 113 du fichier MeshRefinement.h.

◆ populateBackFrontCellsFromChildrenFaces()

void Arcane::mesh::MeshRefinement::populateBackFrontCellsFromChildrenFaces ( Cell  parent_cell)

Determination des connexions non conformes des mailles raffinees.

Définition à la ligne 2355 du fichier MeshRefinement.cc.

Références ARCANE_FATAL, Arcane::Face::cell(), et Arcane::Face::nbCell().

Référencé par _contract().

◆ populateBackFrontCellsFromParentFaces()

void Arcane::mesh::MeshRefinement::populateBackFrontCellsFromParentFaces ( Cell  parent_cell)

Définition à la ligne 2270 du fichier MeshRefinement.cc.

◆ refineAndCoarsenItems()

bool Arcane::mesh::MeshRefinement::refineAndCoarsenItems ( const bool  maintain_level_one = true)

Raffine et déraffine les items demandés par l'utilisateur. également raffine/déraffine des items complémentaires pour satisfaire la règle de niveau-un. Il est possible que pour un ensemble donné de flags qu'il n'est réellement aucun changement en appelant cette méthode. En conséquence, elle envoie true si le maillage a changé réellement (dans ce cas les données doivent être projetées) et false sinon.

L'argument maintain_level_one est deprecated; utilisez plutôtt l'option face_level_mismatch_limit() .

Définition à la ligne 371 du fichier MeshRefinement.cc.

Références _checkLevelOne(), _cleanRefinementFlags(), _coarsenItems(), _contract(), _interpolateData(), _makeCoarseningCompatible(), _makeFlagParallelConsistent(), _makeRefinementCompatible(), _refineItems(), Arcane::IMeshModifier::endUpdate(), Arccore::TraceAccessor::fatal(), Arcane::Properties::getBool(), Arccore::TraceAccessor::info(), Arcane::IParallelMng::isParallel(), m_mesh, m_parallel_amr_consistency, Arcane::mesh::DynamicMesh::modifier(), Arcane::mesh::DynamicMesh::parallelMng(), Arcane::mesh::DynamicMesh::properties(), Arcane::IParallelMng::reduce(), Arcane::Properties::setBool(), Arcane::IMeshModifier::setDynamic(), Arcane::IMeshModifier::updateGhostLayerFromParent(), et Arccore::TraceAccessor::warning().

◆ refineItems()

bool Arcane::mesh::MeshRefinement::refineItems ( const bool  maintain_level_one = true)

raffine seulement les items demandés par l'utilisateur. Il est possible que pour un ensemble donné de flags qu'il n'est réellement aucun changement en appelant cette méthode. En conséquence, elle envoie true si le maillage a changé réellement (dans ce cas les données doivent être projetées) et false sinon.

L'argument maintain_level_one est deprecated; utilisez plutôtt l'option face_level_mismatch_limit() .

Définition à la ligne 751 du fichier MeshRefinement.cc.

Références _checkLevelOne(), _cleanRefinementFlags(), _interpolateData(), _makeFlagParallelConsistent(), _makeRefinementCompatible(), _refineItems(), Arcane::IMeshModifier::endUpdate(), Arcane::Properties::getBool(), Arcane::IParallelMng::isParallel(), m_mesh, Arcane::mesh::DynamicMesh::modifier(), Arcane::mesh::DynamicMesh::parallelMng(), Arcane::mesh::DynamicMesh::properties(), Arcane::IParallelMng::reduce(), Arcane::Properties::setBool(), Arcane::IMeshModifier::setDynamic(), Arcane::IMeshModifier::updateGhostLayerFromParent(), et Arccore::TraceAccessor::warning().

◆ registerCallBack()

void Arcane::mesh::MeshRefinement::registerCallBack ( IAMRTransportFunctor f)

Définition à la ligne 1970 du fichier MeshRefinement.cc.

◆ uniformlyCoarsen()

◆ uniformlyRefine()

◆ unRegisterCallBack()

void Arcane::mesh::MeshRefinement::unRegisterCallBack ( IAMRTransportFunctor f)

Définition à la ligne 1979 du fichier MeshRefinement.cc.

◆ update()

void Arcane::mesh::MeshRefinement::update ( )

Définition à la ligne 327 du fichier MeshRefinement.cc.

Documentation des données membres

◆ m_antiwedgeleft6_refinement_pattern

const AntiWedgeLeft6RefinementPattern4Hex_4HHex7 Arcane::mesh::MeshRefinement::m_antiwedgeleft6_refinement_pattern
private

Définition à la ligne 446 du fichier MeshRefinement.h.

◆ m_antiwedgeright6_refinement_pattern

const AntiWedgeRight6RefinementPattern4Hex_4HHex7 Arcane::mesh::MeshRefinement::m_antiwedgeright6_refinement_pattern
private

Définition à la ligne 447 du fichier MeshRefinement.h.

◆ m_call_back_mng

AMRCallBackMng* Arcane::mesh::MeshRefinement::m_call_back_mng
private

gestionnaire des functors de transport de donnees entre maillages

Définition à la ligne 413 du fichier MeshRefinement.h.

Référencé par _interpolateData(), _upscaleData(), MeshRefinement(), et ~MeshRefinement().

◆ m_coarsen_by_parents

bool Arcane::mesh::MeshRefinement::m_coarsen_by_parents
private

paramètres de Raffinement

Définition à la ligne 419 du fichier MeshRefinement.h.

Référencé par coarsenByParents().

◆ m_ditetra5_refinement_pattern

const DiTetra5RefinementPattern2Hex_6HHex7 Arcane::mesh::MeshRefinement::m_ditetra5_refinement_pattern
private

Définition à la ligne 448 du fichier MeshRefinement.h.

◆ m_face_family

FaceFamily* Arcane::mesh::MeshRefinement::m_face_family
private

Définition à la ligne 389 du fichier MeshRefinement.h.

◆ m_face_finder

FaceMapCoordToUid Arcane::mesh::MeshRefinement::m_face_finder
private

Définition à la ligne 398 du fichier MeshRefinement.h.

◆ m_face_level_mismatch_limit

Byte Arcane::mesh::MeshRefinement::m_face_level_mismatch_limit
private

Définition à la ligne 422 du fichier MeshRefinement.h.

◆ m_hemihexa5_refinement_pattern

const HemiHex5RefinementPattern2Hex_4Penta_2HHex5 Arcane::mesh::MeshRefinement::m_hemihexa5_refinement_pattern
private

Définition à la ligne 445 du fichier MeshRefinement.h.

◆ m_hemihexa6_refinement_pattern

const HemiHex6RefinementPattern4Hex_4HHex7 Arcane::mesh::MeshRefinement::m_hemihexa6_refinement_pattern
private

Définition à la ligne 444 du fichier MeshRefinement.h.

◆ m_hemihexa7_refinement_pattern

const HemiHex7RefinementPattern6Hex_2HHex7 Arcane::mesh::MeshRefinement::m_hemihexa7_refinement_pattern
private

Définition à la ligne 443 du fichier MeshRefinement.h.

◆ m_hex_refinement_pattern

const HexRefinementPattern8Hex Arcane::mesh::MeshRefinement::m_hex_refinement_pattern
private

Définition à la ligne 442 du fichier MeshRefinement.h.

◆ m_item_refinement

ItemRefinement* Arcane::mesh::MeshRefinement::m_item_refinement
private

reference au raffineur d'items

Définition à la ligne 403 du fichier MeshRefinement.h.

Référencé par _coarsenItems(), _refineItems(), MeshRefinement(), et ~MeshRefinement().

◆ m_max_cell_uid

Int64 Arcane::mesh::MeshRefinement::m_max_cell_uid
private

Définition à la ligne 427 du fichier MeshRefinement.h.

◆ m_max_face_uid

Int64 Arcane::mesh::MeshRefinement::m_max_face_uid
private

Définition à la ligne 430 du fichier MeshRefinement.h.

◆ m_max_level

Integer Arcane::mesh::MeshRefinement::m_max_level
private

Définition à la ligne 420 du fichier MeshRefinement.h.

◆ m_max_nb_hChildren

Integer Arcane::mesh::MeshRefinement::m_max_nb_hChildren
private

Définition à la ligne 433 du fichier MeshRefinement.h.

◆ m_max_node_uid

Int64 Arcane::mesh::MeshRefinement::m_max_node_uid
private

Définition à la ligne 424 du fichier MeshRefinement.h.

◆ m_mesh

◆ m_mesh_containing_box

MapCoordToUid::Box Arcane::mesh::MeshRefinement::m_mesh_containing_box
private

recherche rapide des noeuds et des faces a partir de leurs coords pour les faces, les coords sont celles du centre de la face

Définition à la ligne 396 du fichier MeshRefinement.h.

◆ m_nb_cell_target

Integer Arcane::mesh::MeshRefinement::m_nb_cell_target
private

Définition à la ligne 421 du fichier MeshRefinement.h.

◆ m_need_update

bool Arcane::mesh::MeshRefinement::m_need_update
private

Définition à la ligne 390 du fichier MeshRefinement.h.

◆ m_next_cell_uid

Int64 Arcane::mesh::MeshRefinement::m_next_cell_uid
private

Définition à la ligne 428 du fichier MeshRefinement.h.

◆ m_next_face_uid

Int64 Arcane::mesh::MeshRefinement::m_next_face_uid
private

Définition à la ligne 431 du fichier MeshRefinement.h.

◆ m_next_node_uid

Int64 Arcane::mesh::MeshRefinement::m_next_node_uid
private

Définition à la ligne 425 du fichier MeshRefinement.h.

◆ m_node_finder

NodeMapCoordToUid Arcane::mesh::MeshRefinement::m_node_finder
private

Définition à la ligne 397 du fichier MeshRefinement.h.

◆ m_node_owner_memory

VariableNodeInt32 Arcane::mesh::MeshRefinement::m_node_owner_memory
private

Définition à la ligne 451 du fichier MeshRefinement.h.

◆ m_parallel_amr_consistency

ParallelAMRConsistency* Arcane::mesh::MeshRefinement::m_parallel_amr_consistency
private

assure la consistence des uid en parallèle

Définition à la ligne 408 du fichier MeshRefinement.h.

Référencé par _refineItems(), init(), MeshRefinement(), refineAndCoarsenItems(), et ~MeshRefinement().

◆ m_prism_refinement_pattern

const PrismRefinementPattern4Hex_4Pr Arcane::mesh::MeshRefinement::m_prism_refinement_pattern
private

Définition à la ligne 441 du fichier MeshRefinement.h.

◆ m_pyramid_refinement_pattern

const PyramidRefinementPattern4Hex_4Py Arcane::mesh::MeshRefinement::m_pyramid_refinement_pattern
private

Définition à la ligne 440 du fichier MeshRefinement.h.

◆ m_quad4_refinement_pattern

const Quad4RefinementPattern4Quad Arcane::mesh::MeshRefinement::m_quad4_refinement_pattern
private

pattern de Raffinement

Définition à la ligne 438 du fichier MeshRefinement.h.

◆ m_tetra_refinement_pattern

const TetraRefinementPattern2Hex_2Penta_2Py_2Tetra Arcane::mesh::MeshRefinement::m_tetra_refinement_pattern
private

Définition à la ligne 439 du fichier MeshRefinement.h.


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