Implementation of unstructured mesh refinement adaptation algorithms. 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) |
| Passing the error committed by the mesh to the refinement flag. | |
| 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) |
| Method allowing the removal of meshes marked with the 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 |
| Constant reference to the mesh. | |
| IMesh * | getMesh () |
| Reference to the mesh. | |
| 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 Arcane::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 |
Fonctions membres privées | |
| MeshRefinement (const MeshRefinement &) | |
| MeshRefinement & | operator= (const MeshRefinement &) |
| bool | _checkLevelOne (bool arcane_assert_yes=false) |
| bool | _checkUnflagged (bool arcane_assert_yes=false) |
| bool & | coarsenByParents () |
| unsigned char & | faceLevelMismatchLimit () |
| bool | _contract () |
| void | _interpolateData (const Int64Array &cells_to_refine) |
| Interpolation of data on the child meshes. | |
| void | _upscaleData (Array< ItemInternal * > &parent_cells) |
| Upscaling of data on the parent meshes. | |
| 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) |
Membres hérités additionnels | |
| Fonctions membres protégées hérités de Arcane::TraceAccessor | |
| void | _setLocalVerboseLevel (Int32 v) |
| Int32 | _localVerboseLevel () const |
Implementation of unstructured mesh refinement adaptation algorithms.
Définition à la ligne 54 du fichier MeshRefinement.h.
| Arcane::mesh::MeshRefinement::MeshRefinement | ( | DynamicMesh * | mesh | ) |
Constructor.
Définition à la ligne 99 du fichier MeshRefinement.cc.
Références ENUMERATE_NODE, m_call_back_mng, m_coarsen_by_parents, m_item_refinement, m_mesh, m_parallel_amr_consistency, Arcane::TraceAccessor::TraceAccessor(), et Arcane::TraceAccessor::traceMng().
Référencé par getMesh().
| Arcane::mesh::MeshRefinement::~MeshRefinement | ( | ) |
Destructor.
Définition à la ligne 136 du fichier MeshRefinement.cc.
Références clear(), m_call_back_mng, m_item_refinement, et m_parallel_amr_consistency.
|
private |
Returns true if and only if the mesh satisfies the level-one rule. Returns false otherwise. Stops execution if arcane_assert_yes is true and if the mesh does not satisfy the level-one rule
Définition à la ligne 956 du fichier MeshRefinement.cc.
Références ENUMERATE_CELL, Arcane::Cell::faces(), Arcane::Cell::isActive(), Arcane::Cell::level(), m_mesh, Arcane::Item::null(), Arcane::Item::owner(), et Arcane::MessagePassing::ReduceMax.
Référencé par coarsenItems(), refineAndCoarsenItems(), et refineItems().
|
private |
Définition à la ligne 2383 du fichier MeshRefinement.cc.
|
private |
Returns true if and only if the mesh has no items flagged for coarsening or refinement Returns false otherwise Stops execution if arcane_assert_yes is true and if the mesh has flagged items
Définition à la ligne 999 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, et Arcane::MessagePassing::ReduceMax.
|
private |
Sets the refinement flag to II_DoNothing for every item in the mesh.
Définition à la ligne 1781 du fichier MeshRefinement.cc.
Références 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 |
Coarsens the items requested by the user. The two methods _coarsenItems() and _refineItems() are not in the public interface of MeshRefinement. Because appropriate preparation (makeRefinementCompatible, makeCoarseningCompatible) is necessary to execute _coarsenItems().
It is possible that for a given set of flags there is no actual change when calling this function. Consequently, it returns true if the mesh has actually changed (in which case the data must be projected) false otherwise.
Définition à la ligne 1565 du fichier MeshRefinement.cc.
Références ARCANE_FATAL, Arcane::TraceAccessor::debug(), ENUMERATE_CELL, Arcane::ItemBase::flags(), getRefinementPattern(), Arcane::ItemFlags::II_Coarsen, Arcane::ItemFlags::II_CoarsenInactive, Arcane::Cell::isActive(), Arcane::Item::itemBase(), Arcane::Cell::level(), m_item_refinement, m_mesh, Arcane::MessagePassing::ReduceMax, et Arcane::Item::type().
Référencé par coarsenItems(), refineAndCoarsenItems(), et uniformlyCoarsen().
|
private |
Removes inactive children from the mesh Contracts an active item, i.e. deletes the pointers to each inactive child. This should only be called after variable restriction on the parents
Définition à la ligne 1824 du fichier MeshRefinement.cc.
Références _upscaleData(), Arcane::Array< DataType >::add(), Arcane::arcaneCheckArraySize(), Arcane::arcaneIsDebug(), Arcane::mesh::ItemInternalMap::eachItem(), Arcane::ItemBase::flags(), Arcane::ItemFlags::II_JustCoarsened, Arcane::ItemBase::isActive(), Arcane::ItemBase::isAncestor(), Arcane::ItemBase::isOwn(), Arcane::ItemBase::isSubactive(), Arcane::ItemBase::isSuppressed(), Arcane::ItemBase::localId(), m_mesh, Arcane::ItemBase::nbHChildren(), Arcane::ItemBase::nbHParent(), populateBackFrontCellsFromChildrenFaces(), et Arcane::AbstractArray< T >::size().
Référencé par coarsenItems(), et refineAndCoarsenItems().
|
private |
Interpolation of data on the child meshes.
Définition à la ligne 1929 du fichier MeshRefinement.cc.
Références Arcane::Array< DataType >::constView(), m_call_back_mng, m_mesh, Arcane::AbstractArray< T >::size(), et Arcane::Array< DataType >::view().
Référencé par refineAndCoarsenItems(), et refineItems().
| void Arcane::mesh::MeshRefinement::_invalidate | ( | ArrayView< ItemInternal * > | cells_to_coarsen | ) |
Définition à la ligne 1977 du fichier MeshRefinement.cc.
|
private |
Acts on the coarsening flags so that the level-one rule is satisfied.
Définition à la ligne 1180 du fichier MeshRefinement.cc.
Références Arcane::MutableItemBase::addFlags(), Arcane::TraceAccessor::debug(), ENUMERATE_CELL, Arcane::Cell::faces(), Arcane::ItemBase::flags(), Arcane::Cell::hasHChildren(), 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::Item::itemBase(), Arcane::Cell::level(), m_mesh, Arcane::Item::mutableItemBase(), Arcane::Cell::nbHChildren(), Arcane::Item::owner(), Arcane::MessagePassing::ReduceMin, Arcane::MutableItemBase::setFlags(), et Arcane::TraceAccessor::warning().
Référencé par coarsenItems(), et refineAndCoarsenItems().
|
private |
Copies refinement flags onto boundary items from their owner processors. Returns true if a flag has changed.
Définition à la ligne 1029 du fichier MeshRefinement.cc.
Références Arcane::Array< DataType >::add(), Arcane::Cell, Arcane::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::Item::itemBase(), m_mesh, Arcane::Item::mutableItemBase(), Arcane::MessagePassing::ReduceMin, Arcane::Array< DataType >::reserve(), Arcane::MutableItemBase::setFlags(), et Arcane::AbstractArray< T >::size().
Référencé par coarsenItems(), refineAndCoarsenItems(), et refineItems().
|
private |
Définition à la ligne 1114 du fichier MeshRefinement.cc.
|
private |
Acts on the refinement flags so that the level-one rule is satisfied.
Définition à la ligne 1416 du fichier MeshRefinement.cc.
Références Arcane::MutableItemBase::addFlags(), Arcane::TraceAccessor::debug(), ENUMERATE_CELL, Arcane::Cell::faces(), Arcane::TraceAccessor::fatal(), Arcane::ItemBase::flags(), Arcane::Cell::hParent(), Arcane::ItemFlags::II_Coarsen, Arcane::ItemFlags::II_DoNothing, Arcane::ItemFlags::II_Inactive, Arcane::ItemFlags::II_Refine, Arcane::ItemFlags::II_UserMark1, Arcane::Cell::isActive(), Arcane::Item::itemBase(), Arcane::Cell::level(), m_mesh, Arcane::Item::mutableItemBase(), Arcane::Cell::nbHParent(), Arcane::Item::owner(), Arcane::MessagePassing::ReduceMin, Arcane::MutableItemBase::setFlags(), et Arcane::TraceAccessor::warning().
Référencé par refineAndCoarsenItems(), et refineItems().
|
private |
Définition à la ligne 2351 du fichier MeshRefinement.cc.
|
private |
Determination of non-conforming connections of refined meshes
Définition à la ligne 2255 du fichier MeshRefinement.cc.
Références Arcane::Face::backCell(), Arcane::Cell::face(), Arcane::Face::frontCell(), getRefinementPattern(), Arcane::Cell::hChild(), Arcane::Item::isOwn(), Arcane::Face::nbCell(), Arcane::Cell::nbFace(), et Arcane::Cell::nbHChildren().
|
private |
Refines the items requested by the user.
It is possible that for a given set of flags there is no actual change when calling this function. Consequently, it returns true if the mesh has actually changed (in which case the data must be projected) false otherwise.
Définition à la ligne 1666 du fichier MeshRefinement.cc.
Références Arcane::Array< DataType >::add(), ARCANE_FATAL, Arcane::TraceAccessor::debug(), ENUMERATE_CELL, Arcane::ItemBase::flags(), Arcane::ItemFlags::II_Refine, Arcane::Item::itemBase(), m_item_refinement, m_mesh, m_parallel_amr_consistency, Arcane::MessagePassing::ReduceMax, Arcane::AbstractArray< T >::size(), Arcane::Item::type(), et Arcane::Item::uniqueId().
Référencé par refineAndCoarsenItems(), refineItems(), et uniformlyRefine().
|
private |
Définition à la ligne 2171 du fichier MeshRefinement.cc.
Définition à la ligne 1945 du fichier MeshRefinement.cc.
| void Arcane::mesh::MeshRefinement::_update | ( | ArrayView< ItemInternal * > | cells_to_refine | ) |
Définition à la ligne 1965 du fichier MeshRefinement.cc.
|
private |
Définition à la ligne 1998 du fichier MeshRefinement.cc.
|
private |
Définition à la ligne 2102 du fichier MeshRefinement.cc.
|
private |
Updates m_nodes_finder and m_faces_finder
Définition à la ligne 930 du fichier MeshRefinement.cc.
Références Arcane::TraceAccessor::debug().
|
private |
Définition à la ligne 943 du fichier MeshRefinement.cc.
| void Arcane::mesh::MeshRefinement::_updateMaxUid | ( | ArrayView< ItemInternal * > | cells_to_refine | ) |
Définition à la ligne 229 du fichier MeshRefinement.cc.
|
private |
Upscaling of data on the parent meshes.
Définition à la ligne 1989 du fichier MeshRefinement.cc.
Références m_call_back_mng.
Référencé par _contract().
| void Arcane::mesh::MeshRefinement::clear | ( | ) |
Clears all currently stored data.
Définition à la ligne 148 du fichier MeshRefinement.cc.
Référencé par ~MeshRefinement().
|
inlineprivate |
If coarsen_by_parents is true, items with the same parent will be flagged for coarsening This should produce a coarsening closer to what was requested.
coarsen_by_parents is true by default.
Définition à la ligne 452 du fichier MeshRefinement.h.
Références m_coarsen_by_parents.
| bool Arcane::mesh::MeshRefinement::coarsenItems | ( | const bool | maintain_level_one = true | ) |
Coarsens only the items requested by the user. Some items may not be coarsened to satisfy the level-one rule. It is possible that for a given set of flags there is no actual change when calling this method. Consequently, it returns true if the mesh has actually changed (in which case the data must be projected) and false otherwise.
The argument maintain_level_one is deprecated; use face_level_mismatch_limit() instead.
Définition à la ligne 494 du fichier MeshRefinement.cc.
Références _checkLevelOne(), _cleanRefinementFlags(), _coarsenItems(), _contract(), _makeCoarseningCompatible(), _makeFlagParallelConsistent(), m_mesh, Arcane::MessagePassing::ReduceMax, Arcane::MessagePassing::ReduceMin, et Arcane::TraceAccessor::warning().
| bool Arcane::mesh::MeshRefinement::coarsenItemsV2 | ( | bool | update_parent_flag | ) |
Method allowing the removal of meshes marked with the flag "II_Coarsen".
The owners of faces and nodes having marked meshes and unmarked meshes are likely to be updated.
| update_parent_flag | If true, the parent flags will be updated. This includes activating parent meshes. |
Définition à la ligne 560 du fichier MeshRefinement.cc.
Références _cleanRefinementFlags(), Arcane::Array< DataType >::add(), Arcane::MutableItemBase::addFlags(), ARCANE_FATAL, Arcane::AbstractArray< T >::empty(), ENUMERATE_, Arcane::Cell::faces(), Arcane::ItemBase::flags(), Arcane::Materials::IMeshMaterialMng::forceRecompute(), Arcane::Materials::IMeshMaterialMng::getReference(), Arcane::Cell::hChild(), Arcane::Cell::hParent(), Arcane::ItemFlags::II_Coarsen, Arcane::ItemFlags::II_CoarsenInactive, Arcane::ItemFlags::II_Inactive, Arcane::ItemFlags::II_JustCoarsened, Arcane::Cell::level(), Arcane::Item::localId(), m_mesh, Arcane::Item::mutableItemBase(), Arcane::Cell::nbHChildren(), Arcane::ItemWithNodes::nodes(), Arcane::Item::null(), Arcane::Item::owner(), Arcane::MessagePassing::ReduceMax, Arcane::MutableItemBase::removeFlags(), et Arcane::Item::uniqueId().
|
inlineprivate |
If Face_level_mismatch_limit is set to a non-zero value, then * refinement and coarsening will produce meshes where the refinement level of two neighboring meshes per face will not differ by more than this limit. If Face_level_mismatch_limit is 0, then level differences will be unlimited.
face_level_mismatch_limit is 1 by default. Currently, the only supported options are 0 and 1.
Définition à la ligne 468 du fichier MeshRefinement.h.
| Int64 Arcane::mesh::MeshRefinement::findOrAddFaceUid | ( | const Real3 & | face_center, |
| const Real & | tol, | ||
| bool & | is_added ) |
Adds a new uid associated with the face center face_center. if p already exists, the old uid is kept. The tolerance tol gives the search perimeter around face_center.
Définition à la ligne 890 du fichier MeshRefinement.cc.
Références m_mesh.
Adds a new uid associated with point p. if p already exists, the old uid is kept. The tolerance tol gives the search perimeter around p.
Définition à la ligne 869 du fichier MeshRefinement.cc.
Références m_mesh.
|
virtual |
Définition à la ligne 339 du fichier MeshRefinement.cc.
|
virtual |
Passing the error committed by the mesh to the refinement flag.
This method could be implemented in different ways: 1- current implementation: the user performs the transformation themselves in this case, they modify the itemInternal object by setting the refinement flag 2- the user performs the transformation themselves but stores and returns an array of flags the MeshRefinement class, in this case, implement a setter from the returned array 3- to avoid copying the array of flags, implement the converter directly in meshRefinement and the user only provides the error array
Définition à la ligne 325 du fichier MeshRefinement.cc.
Références Arcane::MutableItemBase::addFlags(), Arcane::ItemFlags::II_Refine, m_mesh, Arcane::Item::mutableItemBase(), et Arcane::ConstArrayView< T >::size().
| void Arcane::mesh::MeshRefinement::flagItems | ( | const Int32Array & | flag_per_cell, |
| const Integer | max_level = -1 ) |
Flags items for refinement/coarsening
| Int64 Arcane::mesh::MeshRefinement::getFirstChildNewUid | ( | ) |
Generates a new uid for children.
Définition à la ligne 915 du fichier MeshRefinement.cc.
Références m_mesh.
| IMesh * Arcane::mesh::MeshRefinement::getMesh | ( | ) |
| const IMesh * Arcane::mesh::MeshRefinement::getMesh | ( | ) | const |
Constant reference to the mesh.
Définition à la ligne 2475 du fichier MeshRefinement.cc.
Références getMesh(), m_mesh, et MeshRefinement().
Référencé par getMesh().
|
inline |
Définition à la ligne 536 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 530 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 524 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 518 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 512 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 506 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 500 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 494 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 488 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 482 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 476 du fichier MeshRefinement.h.
| const ItemRefinementPatternT< typeID > & Arcane::mesh::MeshRefinement::getRefinementPattern | ( | ) | const |
Returns the refinement pattern associated with the mesh type.
Référencé par _coarsenItems(), et _populateBackFrontCellsFromParentFaces().
| void Arcane::mesh::MeshRefinement::init | ( | ) |
Calculates the maximum UID.
Définition à la ligne 159 du fichier MeshRefinement.cc.
Références Arcane::IParallelMng::commRank(), Arcane::IParallelMng::commSize(), ENUMERATE_CELL, ENUMERATE_FACE, ENUMERATE_NODE, Arcane::TraceAccessor::info(), m_mesh, m_parallel_amr_consistency, Arcane::ItemTypeMng::nbHChildrenByItemType(), Arcane::IParallelMng::reduce(), Arcane::MessagePassing::ReduceMax, Arcane::Item::type(), et Arcane::Item::uniqueId().
| void Arcane::mesh::MeshRefinement::initMeshContainingBox | ( | ) |
Définition à la ligne 302 du fichier MeshRefinement.cc.
|
inline |
Définition à la ligne 119 du fichier MeshRefinement.h.
|
inline |
max_level is the highest refinement level an item can reach.
max_level is unlimited (-1) by default
Définition à la ligne 460 du fichier MeshRefinement.h.
|
inline |
Définition à la ligne 115 du fichier MeshRefinement.h.
| void Arcane::mesh::MeshRefinement::populateBackFrontCellsFromChildrenFaces | ( | Cell | parent_cell | ) |
Determination of non-conforming connections of refined meshes.
Définition à la ligne 2295 du fichier MeshRefinement.cc.
Références ARCANE_FATAL, Arcane::Face::cell(), Arcane::Cell::face(), Arcane::Cell::isActive(), Arcane::Face::nbCell(), Arcane::Cell::nbFace(), et Arcane::Item::type().
Référencé par _contract().
| void Arcane::mesh::MeshRefinement::populateBackFrontCellsFromParentFaces | ( | Cell | parent_cell | ) |
Définition à la ligne 2211 du fichier MeshRefinement.cc.
| bool Arcane::mesh::MeshRefinement::refineAndCoarsenItems | ( | const bool | maintain_level_one = true | ) |
Refines and coarsens the items requested by the user. It also refines/coarsens complementary items to satisfy the level-one rule. It is possible that for a given set of flags there is no actual change when calling this method. Consequently, it returns true if the mesh has actually changed (in which case the data must be projected) and false otherwise.
The argument maintain_level_one is deprecated; use face_level_mismatch_limit() instead.
Définition à la ligne 352 du fichier MeshRefinement.cc.
Références _checkLevelOne(), _cleanRefinementFlags(), _coarsenItems(), _contract(), _interpolateData(), _makeCoarseningCompatible(), _makeFlagParallelConsistent(), _makeRefinementCompatible(), _refineItems(), Arcane::TraceAccessor::fatal(), Arcane::TraceAccessor::info(), m_mesh, m_parallel_amr_consistency, Arcane::MessagePassing::ReduceMax, Arcane::MessagePassing::ReduceMin, et Arcane::TraceAccessor::warning().
| bool Arcane::mesh::MeshRefinement::refineItems | ( | const bool | maintain_level_one = true | ) |
Refines only the items requested by the user. It is possible that for a given set of flags there is no actual change when calling this method. Consequently, it returns true if the mesh has actually changed (in which case the data must be projected) and false otherwise.
The argument maintain_level_one is deprecated; use face_level_mismatch_limit() instead.
Définition à la ligne 730 du fichier MeshRefinement.cc.
Références _checkLevelOne(), _cleanRefinementFlags(), _interpolateData(), _makeFlagParallelConsistent(), _makeRefinementCompatible(), _refineItems(), m_mesh, Arcane::MessagePassing::ReduceMax, Arcane::MessagePassing::ReduceMin, et Arcane::TraceAccessor::warning().
| void Arcane::mesh::MeshRefinement::registerCallBack | ( | IAMRTransportFunctor * | f | ) |
Définition à la ligne 1911 du fichier MeshRefinement.cc.
| void Arcane::mesh::MeshRefinement::uniformlyCoarsen | ( | Integer | n = 1 | ) |
Uniformly coarsens the mesh n times.
Définition à la ligne 837 du fichier MeshRefinement.cc.
Références _cleanRefinementFlags(), _coarsenItems(), Arcane::MutableItemBase::addFlags(), ENUMERATE_CELL, Arcane::Cell::hParent(), Arcane::ItemFlags::II_CoarsenInactive, m_mesh, Arcane::Item::mutableItemBase(), Arcane::Cell::nbHParent(), et Arcane::TraceAccessor::warning().
| void Arcane::mesh::MeshRefinement::uniformlyRefine | ( | Integer | n = 1 | ) |
Uniformly refines the mesh n times.
Définition à la ligne 806 du fichier MeshRefinement.cc.
Références _cleanRefinementFlags(), _refineItems(), ENUMERATE_CELL, m_mesh, et Arcane::TraceAccessor::warning().
| void Arcane::mesh::MeshRefinement::unRegisterCallBack | ( | IAMRTransportFunctor * | f | ) |
Définition à la ligne 1920 du fichier MeshRefinement.cc.
| void Arcane::mesh::MeshRefinement::update | ( | ) |
Définition à la ligne 309 du fichier MeshRefinement.cc.
|
private |
Définition à la ligne 435 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 436 du fichier MeshRefinement.h.
|
private |
Manager of data transport functors between meshes
Définition à la ligne 402 du fichier MeshRefinement.h.
Référencé par _interpolateData(), _upscaleData(), MeshRefinement(), et ~MeshRefinement().
|
private |
Refinement parameters
Définition à la ligne 408 du fichier MeshRefinement.h.
Référencé par coarsenByParents(), et MeshRefinement().
|
private |
Définition à la ligne 437 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 378 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 387 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 411 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 434 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 433 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 432 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 431 du fichier MeshRefinement.h.
|
private |
Reference to the item refiner
Définition à la ligne 392 du fichier MeshRefinement.h.
Référencé par _coarsenItems(), _refineItems(), MeshRefinement(), et ~MeshRefinement().
|
private |
Définition à la ligne 416 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 419 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 409 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 422 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 413 du fichier MeshRefinement.h.
|
private |
Reference to the mesh.
Définition à la ligne 377 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 |
Quick search for nodes and faces based on their coordinates. For faces, the coordinates are those of the face center.
Définition à la ligne 385 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 410 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 379 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 417 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 420 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 414 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 386 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 440 du fichier MeshRefinement.h.
|
private |
Ensures UID consistency in parallel
Définition à la ligne 397 du fichier MeshRefinement.h.
Référencé par _refineItems(), init(), MeshRefinement(), refineAndCoarsenItems(), et ~MeshRefinement().
|
private |
Définition à la ligne 430 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 429 du fichier MeshRefinement.h.
|
private |
Refinement patterns
Définition à la ligne 427 du fichier MeshRefinement.h.
|
private |
Définition à la ligne 428 du fichier MeshRefinement.h.