12#ifndef ARCANE_MESH_FACEFAMILY_H
13#define ARCANE_MESH_FACEFAMILY_H
17#include "arcane/utils/FatalErrorException.h"
19#include "arcane/core/IItemFamilyModifier.h"
21#include "arcane/mesh/ItemFamily.h"
22#include "arcane/mesh/ItemInternalConnectivityIndex.h"
50class ARCANE_MESH_EXPORT FaceFamily
65 virtual ~FaceFamily();
69 void build()
override;
70 virtual void preAllocate(
Integer nb_item);
113 void addBackFrontCellsFromParentFace(
Face subface,
Face face);
114 void replaceBackFrontCellsFromParentFace(
Cell subcell,
Face subface,
Cell cell,
Face face);
115 bool isSubFaceInFace(
Face subface,
Face face)
const;
122 void _addChildFaceToFace(
Face parent_face,
Face child_face);
123 void _addParentFaceToFace(
Face parent_face,
Face child_face);
142 void setConnectivity(
const Integer c);
144 void reorientFacesIfNeeded();
148 virtual void computeSynchronizeInfos()
override;
155 Integer m_mesh_connectivity = 0;
166 NodeConnectivity* m_node_connectivity =
nullptr;
167 EdgeConnectivity* m_edge_connectivity =
nullptr;
168 FaceConnectivity* m_face_connectivity =
nullptr;
169 CellConnectivity* m_cell_connectivity =
nullptr;
170 HParentConnectivity* m_hparent_connectivity =
nullptr;
171 HChildConnectivity* m_hchild_connectivity =
nullptr;
173 bool m_has_face =
true;
177 void _addMasterFaceToFace(
Face face,
Face master_face);
179 void _removeMasterFaceToFace(
Face face);
180 void _removeSlaveFacesToFace(
Face face);
182 inline void _removeFace(
Face face);
Base class for 1D data vectors.
Interface for modifying a family.
Interface of an entity family.
Interface of a class managing semi-conforming mesh.
Internal structure of a mesh entity.
Index of an Item in a variable.
Type of an entity (Item).
Info on a mesh entity type.
Mesh element based on nodes (Edge,Face,Cell).
Base class for a mesh element.
Class managing a 3-dimensional real vector.
Unicode character string.
void replaceNode(ItemLocalId face, Integer index, ItemLocalId node)
Replaces the node at index index of the face face with that of localId() node_lid.
void setBackAndFrontCells(Face face, Int32 back_cell_lid, Int32 front_cell_lid)
Positions the cell behind and in front of the face.
NodeFamily * m_node_family
Node family associated with this family.
void setCheckOrientation(bool is_check)
Indicates whether the orientation of the cells and faces must be checked.
void removeEdgeFromFace(Face face, Edge edge_to_remove)
Removes an edge from the face.
void replaceEdge(ItemLocalId face, Integer index, ItemLocalId edge)
Replaces the edge at index index of the face face with that of localId() edge_lid.
Item allocOne(Int64 uid, ItemTypeId type_id, MeshInfos &mesh_info) override
Allocates a face with unique number uid and type type. Generic item addition.
Item findOrAllocOne(Int64 uid, ItemTypeId type_id, MeshInfos &mesh_info, bool &is_alloc) override
Retrieves or allocates a face with unique number uid and type type.
EdgeFamily * m_edge_family
Edge family associated with this family.
void removeCellFromFace(Face face, ItemLocalId cell_to_remove_lid)
Removes a cell from the face.
void replaceCell(ItemLocalId face, Integer index, ItemLocalId cell)
Replaces the cell at index index of the face face with that of localId() cell_lid.
void addFrontCellToFace(Face face, Cell new_cell)
Adds a front cell to the face.
bool m_check_orientation
Indicates whether to check the orientation.
void addEdgeToFace(Face face, Edge new_edge)
Adds an edge to the face.
void removeFaceIfNotConnected(Face face)
Removes the face if it is no longer connected.
void replaceBackCellToFace(Face face, ItemLocalId new_cell)
AMR.
void addBackCellToFace(Face face, Cell new_cell)
Adds a back cell to the face.
void replaceFace(ItemLocalId face, Integer index, ItemLocalId face2)
Replaces the face at index index of the face face with that of localId() face_lid.
Selection between historical and on-demand connectivities.
IMesh * mesh() const override
Associated mesh.
String name() const override
Family name.
Class containing mesh information.
std::int64_t Int64
Signed integer type of 64 bits.
Int32 Integer
Type representing an integer.
ConstArrayView< Int32 > Int32ConstArrayView
C equivalent of a 1D array of 32-bit integers.
SharedMeshVariableScalarRefT< Node, Real3 > SharedVariableNodeReal3
Quantity at the node of coordinate type.
std::int32_t Int32
Signed integer type of 32 bits.