Arcane  v3.16.2.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IMeshUtilities.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* IMeshUtilities.h (C) 2000-2025 */
9/* */
10/* Interface d'une classe proposant des fonctions utilitaires sur maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IMESHUTILITIES_H
13#define ARCANE_CORE_IMESHUTILITIES_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/Real3.h"
18
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26namespace Arcane
27{
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
34class ARCANE_CORE_EXPORT IMeshUtilities
35{
36 public:
37
38 virtual ~IMeshUtilities() = default;
39
40 public:
41
50 ARCANE_DEPRECATED_REASON("Y2025: Use getFacesLocalIdFromConnectivity() instead")
51 virtual void localIdsFromConnectivity(eItemKind item_kind,
52 IntegerConstArrayView items_nb_node,
53 Int64ConstArrayView items_connectivity,
54 Int32ArrayView local_ids,
55 bool allow_null=false) =0;
56
81 ConstArrayView<Int64> items_connectivity,
82 ArrayView<Int32> local_ids,
83 bool allow_null = false) = 0;
84
105 virtual Real3 computeNormal(const FaceGroup& face_group,
106 const VariableNodeReal3& nodes_coord) =0;
107
127 virtual Real3 computeDirection(const NodeGroup& node_group,
128 const VariableNodeReal3& nodes_coord,
129 Real3* n1,Real3* n2) =0;
130
132 ARCANE_DEPRECATED_REASON("Y2020: Use computeAdjacency() instead")
133 virtual void computeAdjency(ItemPairGroup adjacency_array, eItemKind link_kind,
134 Integer nb_layer) =0;
135
137 virtual void computeAdjacency(const ItemPairGroup& adjacency_array, eItemKind link_kind,
138 Integer nb_layer);
139
155 virtual void changeOwnersFromCells() =0;
156
166
176
186 virtual bool writeToFile(const String& file_name,const String& service_name) =0;
187
188
219 bool initial_partition) =0;
220
224 virtual void mergeNodes(Int32ConstArrayView nodes_local_id,
225 Int32ConstArrayView nodes_to_merge_local_id)
226 {
227 this->mergeNodes(nodes_local_id, nodes_to_merge_local_id, false);
228 }
229
249 virtual void mergeNodes(Int32ConstArrayView nodes_local_id,
250 Int32ConstArrayView nodes_to_merge_local_id,
251 bool allow_non_corresponding_face) = 0;
261};
262
263/*---------------------------------------------------------------------------*/
264/*---------------------------------------------------------------------------*/
265
266} // End namespace Arcane
267
268/*---------------------------------------------------------------------------*/
269/*---------------------------------------------------------------------------*/
270
271#endif
272
Déclarations des types généraux de Arcane.
Déclarations de types sur les entités.
Vue modifiable d'un tableau d'un type T.
Vue constante d'un tableau de type T.
Interface d'un partitionneur de maillage.
Interface d'une classe proposant des fonctions utilitaires sur maillage.
virtual void changeOwnersFromCells()=0
Positionne les nouveaux propriétaires des noeuds, arêtes et faces à partir des mailles.
virtual ~IMeshUtilities()=default
Libère les ressources.
virtual void mergeNodes(Int32ConstArrayView nodes_local_id, Int32ConstArrayView nodes_to_merge_local_id)
Fusionne des nœuds.
virtual Real3 computeNormal(const FaceGroup &face_group, const VariableNodeReal3 &nodes_coord)=0
Calcule la normale d'un groupe de face.
virtual void computeAdjency(ItemPairGroup adjacency_array, eItemKind link_kind, Integer nb_layer)=0
Calcul des adjacences, rangées dans adjacency_array.
virtual void mergeNodes(Int32ConstArrayView nodes_local_id, Int32ConstArrayView nodes_to_merge_local_id, bool allow_non_corresponding_face)=0
Fusionne des nœuds.
virtual void computeAndSetOwnersForFaces()=0
Détermine les propriétaires des faces.
virtual void computeAdjacency(const ItemPairGroup &adjacency_array, eItemKind link_kind, Integer nb_layer)
Calcul des adjacences, rangées dans adjacency_array.
virtual void computeAndSetOwnersForNodes()=0
Détermine les propriétaires des noeuds.
virtual void localIdsFromConnectivity(eItemKind item_kind, IntegerConstArrayView items_nb_node, Int64ConstArrayView items_connectivity, Int32ArrayView local_ids, bool allow_null=false)=0
Recherche les identifiants locaux des entités à partir de leur connectivité.
virtual void getFacesLocalIdFromConnectivity(ConstArrayView< ItemTypeId > items_type, ConstArrayView< Int64 > items_connectivity, ArrayView< Int32 > local_ids, bool allow_null=false)=0
Recherche les identifiants locaux des faces à partir de leur connectivité.
virtual void partitionAndExchangeMeshWithReplication(IMeshPartitionerBase *partitioner, bool initial_partition)=0
Repartitionne et échange le maillage en gérant la réplication.
virtual Real3 computeDirection(const NodeGroup &node_group, const VariableNodeReal3 &nodes_coord, Real3 *n1, Real3 *n2)=0
Calcule le vecteur directeur d'une ligne.
virtual bool writeToFile(const String &file_name, const String &service_name)=0
Ecrit le maillage dans un fichier.
virtual void recomputeItemsUniqueIdFromNodesUniqueId()=0
Recalcule les uniqueId() des arêtes, faces et mailles en fonction des uniqueId() des noeuds.
Tableau de listes d'entités.
Type d'une entité (Item).
Definition ItemTypeId.h:32
Classe gérant un vecteur de réel de dimension 3.
Definition Real3.h:132
Chaîne de caractères unicode.
ItemGroupT< Face > FaceGroup
Groupe de faces.
Definition ItemTypes.h:178
ItemGroupT< Node > NodeGroup
Groupe de noeuds.
Definition ItemTypes.h:167
MeshVariableScalarRefT< Node, Real3 > VariableNodeReal3
Grandeur au noeud de type coordonnées.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
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.
Definition UtilsTypes.h:569
ConstArrayView< Int64 > Int64ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:567
ArrayView< Int32 > Int32ArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:540
eItemKind
Genre d'entité de maillage.
ConstArrayView< Integer > IntegerConstArrayView
Equivalent C d'un tableau à une dimension d'entiers.
Definition UtilsTypes.h:573
std::int32_t Int32
Type entier signé sur 32 bits.