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

Implementation of unstructured mesh refinement adaptation algorithms. 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)
 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)
IntegermaxLevel ()
const IMeshgetMesh () const
 Constant reference to the mesh.
IMeshgetMesh ()
 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.
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)
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)

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 Arcane::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
Int32 _localVerboseLevel () const

Description détaillée

Implementation of unstructured mesh refinement adaptation algorithms.

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

Documentation des constructeurs et destructeur

◆ MeshRefinement()

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().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ ~MeshRefinement()

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.

Voici le graphe d'appel pour cette fonction :

Documentation des fonctions membres

◆ _checkLevelOne()

bool Arcane::mesh::MeshRefinement::_checkLevelOne ( bool arcane_assert_yes = false)
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().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ _checkOwner()

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

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

◆ _checkUnflagged()

bool Arcane::mesh::MeshRefinement::_checkUnflagged ( bool arcane_assert_yes = false)
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.

Voici le graphe d'appel pour cette fonction :

◆ _cleanRefinementFlags()

void Arcane::mesh::MeshRefinement::_cleanRefinementFlags ( )
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().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ _coarsenItems()

bool Arcane::mesh::MeshRefinement::_coarsenItems ( )
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().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ _contract()

bool Arcane::mesh::MeshRefinement::_contract ( )
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().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ _interpolateData()

void Arcane::mesh::MeshRefinement::_interpolateData ( const Int64Array & cells_to_refine)
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().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ _invalidate()

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

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

◆ _makeCoarseningCompatible()

bool Arcane::mesh::MeshRefinement::_makeCoarseningCompatible ( const bool maintain_level_one)
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().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ _makeFlagParallelConsistent()

bool Arcane::mesh::MeshRefinement::_makeFlagParallelConsistent ( )
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().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ _makeFlagParallelConsistent2()

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

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

◆ _makeRefinementCompatible()

bool Arcane::mesh::MeshRefinement::_makeRefinementCompatible ( const bool maintain_level_one)
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().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ _populateBackFrontCellsFromChildrenFaces()

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

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

◆ _populateBackFrontCellsFromParentFaces()

template<int typeID>
void Arcane::mesh::MeshRefinement::_populateBackFrontCellsFromParentFaces ( Cell parent_cell)
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().

Voici le graphe d'appel pour cette fonction :

◆ _refineItems()

bool Arcane::mesh::MeshRefinement::_refineItems ( Int64Array & cells_to_refine)
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().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ _removeGhostChildren()

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

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

◆ _update() [1/2]

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

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

◆ _update() [2/2]

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

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

◆ _updateItemOwner()

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

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

◆ _updateItemOwner2()

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

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

◆ _updateLocalityMap()

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

Updates m_nodes_finder and m_faces_finder

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

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

Voici le graphe d'appel pour cette fonction :

◆ _updateLocalityMap2()

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

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

◆ _updateMaxUid()

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

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

◆ _upscaleData()

void Arcane::mesh::MeshRefinement::_upscaleData ( Array< ItemInternal * > & parent_cells)
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().

Voici le graphe des appelants de cette fonction :

◆ clear()

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

Clears all currently stored data.

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

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

Voici le graphe des appelants de cette fonction :

◆ coarsenByParents()

bool & Arcane::mesh::MeshRefinement::coarsenByParents ( )
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.

◆ coarsenItems()

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().

Voici le graphe d'appel pour cette fonction :

◆ coarsenItemsV2()

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.

Paramètres
update_parent_flagIf true, the parent flags will be updated. This includes activating parent meshes.
Renvoie
true if the mesh has changed.

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().

Voici le graphe d'appel pour cette fonction :

◆ faceLevelMismatchLimit()

unsigned char & Arcane::mesh::MeshRefinement::faceLevelMismatchLimit ( )
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.

◆ findOrAddFaceUid()

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.

◆ findOrAddNodeUid()

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

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.

◆ flagCellToCoarsen()

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

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

◆ flagCellToRefine()

void Arcane::mesh::MeshRefinement::flagCellToRefine ( Int32ConstArrayView cells_lids)
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().

Voici le graphe d'appel pour cette fonction :

◆ flagItems()

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

Flags items for refinement/coarsening

◆ getFirstChildNewUid()

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.

◆ getMesh() [1/2]

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

Reference to the mesh.

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

Références m_mesh.

◆ getMesh() [2/2]

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().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ getRefinementPattern() [1/12]

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

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

◆ getRefinementPattern() [2/12]

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

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

◆ getRefinementPattern() [3/12]

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

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

◆ getRefinementPattern() [4/12]

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

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

◆ getRefinementPattern() [5/12]

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

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

◆ getRefinementPattern() [6/12]

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

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

◆ getRefinementPattern() [7/12]

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

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

◆ getRefinementPattern() [8/12]

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

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

◆ getRefinementPattern() [9/12]

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

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

◆ getRefinementPattern() [10/12]

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

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

◆ getRefinementPattern() [11/12]

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

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

◆ getRefinementPattern() [12/12]

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

Returns the refinement pattern associated with the mesh type.

Référencé par _coarsenItems(), et _populateBackFrontCellsFromParentFaces().

Voici le graphe des appelants de cette fonction :

◆ init()

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().

Voici le graphe d'appel pour cette fonction :

◆ initMeshContainingBox()

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

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

◆ invalidate()

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

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

◆ maxLevel()

Integer & Arcane::mesh::MeshRefinement::maxLevel ( )
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.

◆ needUpdate()

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

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

◆ populateBackFrontCellsFromChildrenFaces()

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().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ populateBackFrontCellsFromParentFaces()

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

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

◆ refineAndCoarsenItems()

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().

Voici le graphe d'appel pour cette fonction :

◆ refineItems()

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().

Voici le graphe d'appel pour cette fonction :

◆ registerCallBack()

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

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

◆ uniformlyCoarsen()

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().

Voici le graphe d'appel pour cette fonction :

◆ uniformlyRefine()

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().

Voici le graphe d'appel pour cette fonction :

◆ unRegisterCallBack()

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

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

◆ update()

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

Définition à la ligne 309 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 435 du fichier MeshRefinement.h.

◆ m_antiwedgeright6_refinement_pattern

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

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

◆ m_call_back_mng

AMRCallBackMng* Arcane::mesh::MeshRefinement::m_call_back_mng
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().

◆ m_coarsen_by_parents

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

Refinement parameters

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

Référencé par coarsenByParents(), et MeshRefinement().

◆ m_ditetra5_refinement_pattern

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

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

◆ m_face_family

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

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

◆ m_face_finder

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

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

◆ m_face_level_mismatch_limit

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

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

◆ m_hemihexa5_refinement_pattern

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

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

◆ m_hemihexa6_refinement_pattern

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

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

◆ m_hemihexa7_refinement_pattern

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

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

◆ m_hex_refinement_pattern

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

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

◆ m_item_refinement

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

Reference to the item refiner

Définition à la ligne 392 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 416 du fichier MeshRefinement.h.

◆ m_max_face_uid

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

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

◆ m_max_level

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

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

◆ m_max_nb_hChildren

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

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

◆ m_max_node_uid

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

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

◆ m_mesh

◆ m_mesh_containing_box

MapCoordToUid::Box Arcane::mesh::MeshRefinement::m_mesh_containing_box
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.

◆ m_nb_cell_target

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

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

◆ m_need_update

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

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

◆ m_next_cell_uid

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

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

◆ m_next_face_uid

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

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

◆ m_next_node_uid

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

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

◆ m_node_finder

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

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

◆ m_node_owner_memory

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

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

◆ m_parallel_amr_consistency

ParallelAMRConsistency* Arcane::mesh::MeshRefinement::m_parallel_amr_consistency
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().

◆ m_prism_refinement_pattern

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

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

◆ m_pyramid_refinement_pattern

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

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

◆ m_quad4_refinement_pattern

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

Refinement patterns

Définition à la ligne 427 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 428 du fichier MeshRefinement.h.


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