Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::IItemFamilyTopologyModifier Class Referenceabstract

Interface for modifying the topology of entities within a family. More...

#include <arcane/core/IItemFamilyTopologyModifier.h>

Inheritance diagram for Arcane::IItemFamilyTopologyModifier:
Collaboration diagram for Arcane::IItemFamilyTopologyModifier:

Public Member Functions

virtual ~IItemFamilyTopologyModifier ()=default
 Frees resources.
virtual IItemFamilyfamily () const =0
 Associated family.
virtual void replaceNode (ItemLocalId item_lid, Integer index, ItemLocalId new_node_lid)=0
 Replaces a node of an entity.
virtual void replaceEdge (ItemLocalId item_lid, Integer index, ItemLocalId new_edge_lid)=0
 Replaces an edge of an entity.
virtual void replaceFace (ItemLocalId item_lid, Integer index, ItemLocalId new_face_lid)=0
 Replaces a face of an entity.
virtual void replaceCell (ItemLocalId item_lid, Integer index, ItemLocalId new_cell_lid)=0
 Replaces a cell of an entity.
virtual void replaceHParent (ItemLocalId item_lid, Integer index, ItemLocalId new_hparent_lid)=0
 Replaces a parent entity of an entity.
virtual void replaceHChild (ItemLocalId item_lid, Integer index, ItemLocalId new_hchild_lid)=0
 Replaces a child entity of an entity.
virtual void findAndReplaceNode (ItemLocalId item_lid, ItemLocalId old_node_lid, ItemLocalId new_node_lid)=0
 Finds and replaces a node of an entity.
virtual void findAndReplaceEdge (ItemLocalId item_lid, ItemLocalId old_edge_lid, ItemLocalId new_edge_lid)=0
 Finds and replaces an edge of an entity.
virtual void findAndReplaceFace (ItemLocalId item_lid, ItemLocalId old_face_lid, ItemLocalId new_face_lid)=0
 Finds and replaces a face of an entity.
virtual void findAndReplaceCell (ItemLocalId item_lid, ItemLocalId old_cell_lid, ItemLocalId new_cell_lid)=0
 Finds and replaces a cell of an entity.
virtual void setBackAndFrontCells (FaceLocalId face_lid, CellLocalId back_cell_lid, CellLocalId front_cell_lid)
 Positions a cell in front and behind a face.

Detailed Description

Interface for modifying the topology of entities within a family.

This class is intended to be temporary and serves to replace direct calls to ItemInternal by managing old or new connectivities.

Warning
This class allows direct modification of the connectivities of unstructured meshes, which can introduce inconsistencies in the topology and connectivities. Therefore, extreme caution must be used when employing methods from this class. It is preferable to use the methods of IMeshModifier if you wish to add/remove mesh entities while guaranteeing consistency.

Definition at line 43 of file IItemFamilyTopologyModifier.h.

Member Function Documentation

◆ family()

virtual IItemFamily * Arcane::IItemFamilyTopologyModifier::family ( ) const
pure virtual

Associated family.

Implemented in Arcane::mesh::AbstractItemFamilyTopologyModifier.

◆ findAndReplaceCell()

virtual void Arcane::IItemFamilyTopologyModifier::findAndReplaceCell ( ItemLocalId item_lid,
ItemLocalId old_cell_lid,
ItemLocalId new_cell_lid )
pure virtual

Finds and replaces a cell of an entity.

Replaces the cell with local ID old_cell_lid of the entity in the family family() with local ID item_lid by the face with local ID new_cell_lid.

Throws an exception if the cell old_cell_lid is not found.

Implemented in Arcane::mesh::AbstractItemFamilyTopologyModifier.

References setBackAndFrontCells().

Referenced by Arcane::mesh::FaceFamily::replaceBackCellToFace().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findAndReplaceEdge()

virtual void Arcane::IItemFamilyTopologyModifier::findAndReplaceEdge ( ItemLocalId item_lid,
ItemLocalId old_edge_lid,
ItemLocalId new_edge_lid )
pure virtual

Finds and replaces an edge of an entity.

Replaces the edge with local ID old_edge_lid of the entity in the family family() with local ID item_lid by the edge with local ID new_edge_lid.

Throws an exception if the edge old_edge_lid is not found.

Implemented in Arcane::mesh::AbstractItemFamilyTopologyModifier.

◆ findAndReplaceFace()

virtual void Arcane::IItemFamilyTopologyModifier::findAndReplaceFace ( ItemLocalId item_lid,
ItemLocalId old_face_lid,
ItemLocalId new_face_lid )
pure virtual

Finds and replaces a face of an entity.

Replaces the face with local ID old_face_lid of the entity in the family family() with local ID item_lid by the face with local ID new_face_lid.

Throws an exception if the face old_face_lid is not found.

Implemented in Arcane::mesh::AbstractItemFamilyTopologyModifier.

◆ findAndReplaceNode()

virtual void Arcane::IItemFamilyTopologyModifier::findAndReplaceNode ( ItemLocalId item_lid,
ItemLocalId old_node_lid,
ItemLocalId new_node_lid )
pure virtual

Finds and replaces a node of an entity.

Replaces the node with local ID old_node_lid of the entity in the family family() with local ID item_lid by the node with local ID new_node_lid.

Throws an exception if the node old_node_id is not found.

Implemented in Arcane::mesh::AbstractItemFamilyTopologyModifier.

◆ replaceCell()

virtual void Arcane::IItemFamilyTopologyModifier::replaceCell ( ItemLocalId item_lid,
Integer index,
ItemLocalId new_cell_lid )
pure virtual

Replaces a cell of an entity.

Replaces the index-th cell of the entity in the family family() with local ID item_lid by the face with local ID new_cell_lid.

Implemented in Arcane::mesh::AbstractItemFamilyTopologyModifier, Arcane::mesh::FaceFamily::TopologyModifier, and Arcane::mesh::NodeFamily::TopologyModifier.

◆ replaceEdge()

virtual void Arcane::IItemFamilyTopologyModifier::replaceEdge ( ItemLocalId item_lid,
Integer index,
ItemLocalId new_edge_lid )
pure virtual

Replaces an edge of an entity.

Replaces the index-th edge of the entity in the family family() with local ID item_lid by the edge with local ID new_edge_lid.

Implemented in Arcane::mesh::AbstractItemFamilyTopologyModifier, Arcane::mesh::CellFamily::TopologyModifier, Arcane::mesh::FaceFamily::TopologyModifier, and Arcane::mesh::NodeFamily::TopologyModifier.

◆ replaceFace()

virtual void Arcane::IItemFamilyTopologyModifier::replaceFace ( ItemLocalId item_lid,
Integer index,
ItemLocalId new_face_lid )
pure virtual

Replaces a face of an entity.

Replaces the index-th face of the entity in the family family() with local ID item_lid by the face with local ID new_face_lid.

Implemented in Arcane::mesh::AbstractItemFamilyTopologyModifier, Arcane::mesh::CellFamily::TopologyModifier, Arcane::mesh::FaceFamily::TopologyModifier, and Arcane::mesh::NodeFamily::TopologyModifier.

◆ replaceHChild()

virtual void Arcane::IItemFamilyTopologyModifier::replaceHChild ( ItemLocalId item_lid,
Integer index,
ItemLocalId new_hchild_lid )
pure virtual

Replaces a child entity of an entity.

Replaces the index-th child entity of the entity in the family family() with local ID item_lid by the child entity with local ID new_hchild_lid.

Implemented in Arcane::mesh::AbstractItemFamilyTopologyModifier, and Arcane::mesh::CellFamily::TopologyModifier.

◆ replaceHParent()

virtual void Arcane::IItemFamilyTopologyModifier::replaceHParent ( ItemLocalId item_lid,
Integer index,
ItemLocalId new_hparent_lid )
pure virtual

Replaces a parent entity of an entity.

Replaces the index-th parent entity of the entity in the family family() with local ID item_lid by the parent entity with local ID new_hparent_lid.

Implemented in Arcane::mesh::AbstractItemFamilyTopologyModifier, and Arcane::mesh::CellFamily::TopologyModifier.

◆ replaceNode()

virtual void Arcane::IItemFamilyTopologyModifier::replaceNode ( ItemLocalId item_lid,
Integer index,
ItemLocalId new_node_lid )
pure virtual

Replaces a node of an entity.

Replaces the index-th node of the entity in the family family() with local ID item_lid by the node with local ID new_node_lid.

Implemented in Arcane::mesh::AbstractItemFamilyTopologyModifier, Arcane::mesh::CellFamily::TopologyModifier, Arcane::mesh::EdgeFamily::TopologyModifier, and Arcane::mesh::FaceFamily::TopologyModifier.

Referenced by Arcane::FaceReorienter::checkAndChangeOrientation(), and Arcane::FaceReorienter::checkAndChangeOrientationAMR().

Here is the caller graph for this function:

◆ setBackAndFrontCells()

void Arcane::IItemFamilyTopologyModifier::setBackAndFrontCells ( FaceLocalId face_lid,
CellLocalId back_cell_lid,
CellLocalId front_cell_lid )
virtual

Positions a cell in front and behind a face.

This method is only implemented for face families. For other families, it raises a NotSupportedException.

  • Parameters
    face_lidlocal ID of the face
    back_cell_lidlocal ID of the cell behind (or NULL_ITEM_LOCAL_ID)
    front_cell_lidlocal ID of the cell in front (or NULL_ITEM_LOCAL_ID)

Reimplemented in Arcane::mesh::FaceFamily::TopologyModifier.

Definition at line 349 of file InterfaceImpl.cc.

References ARCANE_THROW.

Referenced by Arcane::FaceReorienter::checkAndChangeOrientation(), Arcane::FaceReorienter::checkAndChangeOrientationAMR(), and findAndReplaceCell().

Here is the caller graph for this function:

The documentation for this class was generated from the following files: