Implémentation des algorithmes d'adaptation par raffinement de maillages non-structuré. Plus de détails...
#include <arcane/mesh/MeshRefinement.h>
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 IMesh * | getMesh () const |
Référence constante au maillage. | |
IMesh * | getMesh () |
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. | |
TraceAccessor & | operator= (const TraceAccessor &rhs) |
Opérateur de recopie. | |
virtual | ~TraceAccessor () |
Libère les ressources. | |
ITraceMng * | traceMng () 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 |
Membres hérités additionnels | |
Fonctions membres protégées hérités de Arccore::TraceAccessor | |
void | _setLocalVerboseLevel (Int32 v) |
Int32 | _localVerboseLevel () const |
Implémentation des algorithmes d'adaptation par raffinement de maillages non-structuré.
Définition à la ligne 55 du fichier MeshRefinement.h.
Arcane::mesh::MeshRefinement::MeshRefinement | ( | DynamicMesh * | mesh | ) |
Constructor.
Définition à la ligne 101 du fichier MeshRefinement.cc.
Références Arcane::mesh::DynamicMesh::allNodes(), ENUMERATE_NODE, m_call_back_mng, m_item_refinement, m_mesh, et m_parallel_amr_consistency.
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.
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().
Définition à la ligne 2443 du fichier MeshRefinement.cc.
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().
|
private |
Mettre le flag de raffinement à II_DoNothing pour chaque item du maillage.
Définition à la ligne 1840 du fichier MeshRefinement.cc.
Références Arcane::mesh::DynamicMesh::allCells(), ENUMERATE_CELL, Arcane::ItemFlags::II_CoarsenInactive, Arcane::ItemFlags::II_DoNothing, Arcane::ItemFlags::II_Inactive, Arcane::ItemFlags::II_JustAdded, Arcane::ItemFlags::II_JustCoarsened, Arcane::ItemFlags::II_JustRefined, Arcane::Cell::isActive(), m_mesh, et Arcane::Item::mutableItemBase().
Référencé par coarsenItems(), coarsenItemsV2(), refineAndCoarsenItems(), refineItems(), uniformlyCoarsen(), et uniformlyRefine().
|
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().
|
private |
Supprime les enfants subactifs du maillage Contracte un item actif, i.e. supprimer les pointers vers chaque enfant subactif. Ceci devrait seulement ètre appelè après restriction des variables sur les parents
Définition à la ligne 1883 du fichier MeshRefinement.cc.
Références _upscaleData(), Arcane::arcaneCheckArraySize(), Arcane::arcaneIsDebug(), Arcane::IParallelMng::barrier(), Arcane::ItemFlags::II_JustCoarsened, Arcane::ItemBase::isActive(), Arcane::ItemBase::isAncestor(), Arcane::ItemBase::isOwn(), Arcane::IParallelMng::isParallel(), Arcane::ItemBase::isSubactive(), m_mesh, Arcane::mesh::DynamicMesh::modifier(), Arcane::mesh::DynamicMesh::parallelMng(), populateBackFrontCellsFromChildrenFaces(), et Arcane::IMeshModifier::removeCells().
Référencé par coarsenItems(), et refineAndCoarsenItems().
|
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().
void Arcane::mesh::MeshRefinement::_invalidate | ( | ArrayView< ItemInternal * > | cells_to_coarsen | ) |
Définition à la ligne 2036 du fichier MeshRefinement.cc.
|
private |
Agit sur les flags de déraffinement à ce que la règle de niveau-un soit satisaite.
Définition à la ligne 1223 du fichier MeshRefinement.cc.
Références Arcane::MutableItemBase::addFlags(), Arcane::mesh::DynamicMesh::allActiveCells(), Arcane::IParallelMng::commRank(), Arccore::TraceAccessor::debug(), ENUMERATE_CELL, Arcane::Cell::faces(), Arcane::ItemBase::flags(), Arcane::Cell::hChild(), Arcane::ItemFlags::II_Coarsen, Arcane::ItemFlags::II_CoarsenInactive, Arcane::ItemFlags::II_DoNothing, Arcane::ItemFlags::II_Inactive, Arcane::ItemFlags::II_Refine, Arcane::Cell::isActive(), Arcane::Cell::isAncestor(), Arcane::IParallelMng::isParallel(), Arcane::Item::itemBase(), Arcane::Cell::level(), m_mesh, Arcane::Item::mutableItemBase(), Arcane::Cell::nbHChildren(), Arcane::mesh::DynamicMesh::ownActiveCells(), Arcane::mesh::DynamicMesh::ownCells(), Arcane::Item::owner(), Arcane::mesh::DynamicMesh::ownLevelCells(), Arcane::mesh::DynamicMesh::parallelMng(), Arcane::IParallelMng::reduce(), Arcane::MutableItemBase::setFlags(), et Arccore::TraceAccessor::warning().
Référencé par coarsenItems(), et refineAndCoarsenItems().
|
private |
Copie des flags de raffinement sur les items frontières à partir de leur processeurs owners. Retourne true si un flag a changè.
Définition à la ligne 1062 du fichier MeshRefinement.cc.
Références Arcane::mesh::DynamicMesh::allCells(), Arccore::TraceAccessor::debug(), ENUMERATE_CELL, Arcane::ItemBase::flags(), Arcane::ItemFlags::II_Coarsen, Arcane::ItemFlags::II_JustCoarsened, Arcane::ItemFlags::II_JustRefined, Arcane::ItemFlags::II_Refine, Arcane::Item::isOwn(), Arcane::IParallelMng::isParallel(), Arcane::Item::itemBase(), m_mesh, Arcane::mesh::DynamicMesh::ownCells(), Arcane::mesh::DynamicMesh::parallelMng(), Arcane::IParallelMng::reduce(), et Arcane::ItemGroup::size().
Référencé par coarsenItems(), refineAndCoarsenItems(), et refineItems().
|
private |
Définition à la ligne 1152 du fichier MeshRefinement.cc.
|
private |
Agir sur les flags de raffinement à ce que la règle de niveau-un soit satisaite.
Définition à la ligne 1465 du fichier MeshRefinement.cc.
Références Arcane::mesh::DynamicMesh::allActiveCells(), Arcane::IParallelMng::commRank(), Arccore::TraceAccessor::debug(), ENUMERATE_CELL, Arcane::Cell::faces(), Arccore::TraceAccessor::fatal(), Arcane::ItemBase::flags(), Arcane::ItemFlags::II_Coarsen, Arcane::ItemFlags::II_DoNothing, Arcane::ItemFlags::II_Inactive, Arcane::ItemFlags::II_Refine, Arcane::ItemFlags::II_UserMark1, Arcane::Item::itemBase(), Arcane::Cell::level(), m_mesh, Arcane::Item::mutableItemBase(), Arcane::mesh::DynamicMesh::parallelMng(), Arcane::IParallelMng::reduce(), Arcane::MutableItemBase::setFlags(), et Arccore::TraceAccessor::warning().
Référencé par refineAndCoarsenItems(), et refineItems().
|
private |
Définition à la ligne 2411 du fichier MeshRefinement.cc.
|
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().
|
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().
|
private |
Définition à la ligne 2230 du fichier MeshRefinement.cc.
Définition à la ligne 2004 du fichier MeshRefinement.cc.
void Arcane::mesh::MeshRefinement::_update | ( | ArrayView< ItemInternal * > | cells_to_refine | ) |
Définition à la ligne 2024 du fichier MeshRefinement.cc.
|
private |
Définition à la ligne 2057 du fichier MeshRefinement.cc.
|
private |
Définition à la ligne 2161 du fichier MeshRefinement.cc.
|
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().
|
private |
Définition à la ligne 974 du fichier MeshRefinement.cc.
void Arcane::mesh::MeshRefinement::_updateMaxUid | ( | ArrayView< ItemInternal * > | cells_to_refine | ) |
Définition à la ligne 239 du fichier MeshRefinement.cc.
|
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().
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().
|
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.
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().
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.
update_parent_flag | Si true, alors les flags des parents seront mis à jour. Cela inclut l'activation des mailles parents. |
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().
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.
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().
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().
|
virtual |
Définition à la ligne 357 du fichier MeshRefinement.cc.
|
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().
void Arcane::mesh::MeshRefinement::flagItems | ( | const Int32Array & | flag_per_cell, |
const Integer | max_level = -1 |
||
) |
Flag les items pour raffinement/déraffinement
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().
IMesh * Arcane::mesh::MeshRefinement::getMesh | ( | ) |
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.
const ItemRefinementPatternT< typeID > & Arcane::mesh::MeshRefinement::getRefinementPattern | ( | ) | const |
return le pattern de raffinement associe au type de maille.
|
inline |
Définition à la ligne 487 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 493 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 499 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 505 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 511 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 517 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 523 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 529 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 535 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 541 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 547 du fichier MeshRefinement.h.
void Arcane::mesh::MeshRefinement::init | ( | ) |
Calcul du max des uid.
Définition à la ligne 162 du fichier MeshRefinement.cc.
Références Arcane::mesh::DynamicMesh::allCells(), Arcane::mesh::DynamicMesh::allFaces(), Arcane::mesh::DynamicMesh::allNodes(), Arcane::IParallelMng::commRank(), Arcane::IParallelMng::commSize(), ENUMERATE_CELL, ENUMERATE_FACE, ENUMERATE_NODE, Arccore::TraceAccessor::info(), Arcane::mesh::DynamicMesh::itemTypeMng(), m_mesh, m_parallel_amr_consistency, Arcane::mesh::DynamicMesh::parallelMng(), Arcane::IParallelMng::reduce(), Arcane::Item::type(), et Arcane::Item::uniqueId().
void Arcane::mesh::MeshRefinement::initMeshContainingBox | ( | ) |
Définition à la ligne 318 du fichier MeshRefinement.cc.
|
inline |
Définition à la ligne 116 du fichier MeshRefinement.h.
|
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.
|
inline |
Définition à la ligne 113 du fichier MeshRefinement.h.
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().
Définition à la ligne 2270 du fichier MeshRefinement.cc.
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().
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().
void Arcane::mesh::MeshRefinement::registerCallBack | ( | IAMRTransportFunctor * | f | ) |
Définition à la ligne 1970 du fichier MeshRefinement.cc.
void Arcane::mesh::MeshRefinement::uniformlyCoarsen | ( | Integer | n = 1 | ) |
déraffine uniformement le maillage n
fois.
Définition à la ligne 862 du fichier MeshRefinement.cc.
Références _cleanRefinementFlags(), _coarsenItems(), Arcane::MutableItemBase::addFlags(), Arcane::IMeshModifier::endUpdate(), ENUMERATE_CELL, Arcane::Properties::getBool(), Arcane::Cell::hParent(), Arcane::ItemFlags::II_CoarsenInactive, m_mesh, Arcane::mesh::DynamicMesh::modifier(), Arcane::Item::mutableItemBase(), Arcane::Cell::nbHParent(), Arcane::mesh::DynamicMesh::ownActiveCells(), Arcane::mesh::DynamicMesh::properties(), Arcane::Properties::setBool(), et Arccore::TraceAccessor::warning().
void Arcane::mesh::MeshRefinement::uniformlyRefine | ( | Integer | n = 1 | ) |
Raffine uniformement le maillage n
fois.
Définition à la ligne 830 du fichier MeshRefinement.cc.
Références _cleanRefinementFlags(), _refineItems(), Arcane::IMeshModifier::endUpdate(), ENUMERATE_CELL, Arcane::Properties::getBool(), m_mesh, Arcane::mesh::DynamicMesh::modifier(), Arcane::mesh::DynamicMesh::ownActiveCells(), Arcane::mesh::DynamicMesh::properties(), Arcane::Properties::setBool(), et Arccore::TraceAccessor::warning().
void Arcane::mesh::MeshRefinement::unRegisterCallBack | ( | IAMRTransportFunctor * | f | ) |
Définition à la ligne 1979 du fichier MeshRefinement.cc.
void Arcane::mesh::MeshRefinement::update | ( | ) |
Définition à la ligne 327 du fichier MeshRefinement.cc.
|
private |
Définition à la ligne 446 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 447 du fichier MeshRefinement.h.
|
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().
|
private |
paramètres de Raffinement
Définition à la ligne 419 du fichier MeshRefinement.h.
Référencé par coarsenByParents().
|
private |
Définition à la ligne 448 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 389 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 398 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 422 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 445 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 444 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 443 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 442 du fichier MeshRefinement.h.
|
private |
reference au raffineur d'items
Définition à la ligne 403 du fichier MeshRefinement.h.
Référencé par _coarsenItems(), _refineItems(), MeshRefinement(), et ~MeshRefinement().
|
private |
Définition à la ligne 427 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 430 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 420 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 433 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 424 du fichier MeshRefinement.h.
|
private |
Reference au maillage.
Définition à la ligne 388 du fichier MeshRefinement.h.
Référencé par _checkLevelOne(), _checkUnflagged(), _cleanRefinementFlags(), _coarsenItems(), _contract(), _interpolateData(), _makeCoarseningCompatible(), _makeFlagParallelConsistent(), _makeRefinementCompatible(), _refineItems(), coarsenItems(), coarsenItemsV2(), findOrAddFaceUid(), findOrAddNodeUid(), flagCellToRefine(), getFirstChildNewUid(), getMesh(), getMesh(), init(), MeshRefinement(), refineAndCoarsenItems(), refineItems(), uniformlyCoarsen(), et uniformlyRefine().
|
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.
|
private |
Définition à la ligne 421 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 390 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 428 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 431 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 425 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 397 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 451 du fichier MeshRefinement.h.
|
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().
|
private |
Définition à la ligne 441 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 440 du fichier MeshRefinement.h.
|
private |
pattern de Raffinement
Définition à la ligne 438 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 439 du fichier MeshRefinement.h.