12#ifndef ARCANE_MESH_FACEFAMILY_H
13#define ARCANE_MESH_FACEFAMILY_H
17#include "arcane/utils/FatalErrorException.h"
19#include "arcane/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);
Tableau d'items de types quelconques.
Interface de modification d'une famille.
Interface d'une famille d'entités.
Interface d'un classe gérant une semi-conformité du maillage.
Structure interne d'une entité de maillage.
Index d'un Item dans une variable.
Type d'une entité (Item).
Infos sur un type d'entité du maillage.
Elément de maillage s'appuyant sur des noeuds (Edge,Face,Cell).
Classe de base d'un élément de maillage.
Classe gérant un vecteur de réel de dimension 3.
Chaîne de caractères unicode.
void replaceNode(ItemLocalId face, Integer index, ItemLocalId node)
Remplace le noeud d'index index de la face face avec celui de localId() node_lid.
void setBackAndFrontCells(Face face, Int32 back_cell_lid, Int32 front_cell_lid)
Positionne la maille derrière et devant la face.
NodeFamily * m_node_family
Famille des noeuds associée à cette famille.
void setCheckOrientation(bool is_check)
Indique s'il faut vérifier l'orientation des mailles et des faces.
void removeEdgeFromFace(Face face, Edge edge_to_remove)
Supprime une arête de la face.
void replaceEdge(ItemLocalId face, Integer index, ItemLocalId edge)
Remplace l'arête d'index index de la face face avec celle de localId() edge_lid.
Item allocOne(Int64 uid, ItemTypeId type_id, MeshInfos &mesh_info) override
Alloue une face de numéro unique uid et de type type. Ajout générique d'item.
Item findOrAllocOne(Int64 uid, ItemTypeId type_id, MeshInfos &mesh_info, bool &is_alloc) override
Récupère ou alloue une face de numéro unique uid et de type type.
EdgeFamily * m_edge_family
Famille d'arêtes associée à cette famille.
void removeCellFromFace(Face face, ItemLocalId cell_to_remove_lid)
Supprime une maille de la face.
void replaceCell(ItemLocalId face, Integer index, ItemLocalId cell)
Remplace la maille d'index index de la face face avec celle de localId() cell_lid.
void addFrontCellToFace(Face face, Cell new_cell)
Ajoute une maille devant la face.
bool m_check_orientation
Indique s'il faut vérifier l'orientation.
void addEdgeToFace(Face face, Edge new_edge)
Ajoute une arête devant la face.
void removeFaceIfNotConnected(Face face)
Supprime la face si elle n'est plus connectée.
void replaceBackCellToFace(Face face, ItemLocalId new_cell)
AMR.
void addBackCellToFace(Face face, Cell new_cell)
Ajoute une maille derrière la face.
void replaceFace(ItemLocalId face, Integer index, ItemLocalId face2)
Remplace la face d'index index de la face face avec celle de localId() face_lid.
Sélection entre les connectivités historiques et à la demande.
IMesh * mesh() const override
Maillage associé
String name() const override
Nom de la famille.
Classe factorisant des informations sur le maillage.
std::int64_t Int64
Type entier signé sur 64 bits.
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
SharedMeshVariableScalarRefT< Node, Real3 > SharedVariableNodeReal3
Grandeur au noeud de type coordonnées.
std::int32_t Int32
Type entier signé sur 32 bits.