Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
TiedInterface.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* TiedInterface.h (C) 2000-2014 */
9/* */
10/* Informations sur les semi-conformitées du maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MESH_TIEDINTERFACE_H
13#define ARCANE_MESH_TIEDINTERFACE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/MultiArray2.h"
18#include "arcane/utils/TraceAccessor.h"
19
20#include "arcane/ITiedInterface.h"
21#include "arcane/ItemTypes.h"
22#include "arcane/IMeshPartitionConstraint.h"
23
24#include "arcane/VariableTypes.h"
25
26#include "arcane/mesh/MeshGlobal.h"
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
31ARCANE_BEGIN_NAMESPACE
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
36class IMeshPartitionConstraint;
37
38/*---------------------------------------------------------------------------*/
39/*---------------------------------------------------------------------------*/
40
41ARCANE_MESH_BEGIN_NAMESPACE
42
43/*---------------------------------------------------------------------------*/
44/*---------------------------------------------------------------------------*/
45
47{
48 public:
49 virtual ~ITiedInterfaceRebuilder(){}
50 public:
51 virtual void fillTiedInfos(Face face,
52 Int32ArrayView tied_nodes_lid,
53 Real2ArrayView tied_nodes_isos,
54 Int32ArrayView tied_faces_lid) =0;
55};
56
57/*---------------------------------------------------------------------------*/
58/*---------------------------------------------------------------------------*/
59
60
61/*---------------------------------------------------------------------------*/
62/*---------------------------------------------------------------------------*/
66class TiedInterface
67: public TraceAccessor
68, public ITiedInterface
69{
70 public:
73 {
74 public:
75 virtual void setInitialRepartition(bool is_initial) =0;
76 };
77
78 public:
79
80 TiedInterface(IMesh* mesh);
81 virtual ~TiedInterface(); //<! Libère les ressources
82
83 public:
84
85 virtual FaceGroup masterInterface() const;
86 virtual FaceGroup slaveInterface() const;
87 virtual TiedInterfaceNodeList tiedNodes() const;
88 virtual TiedInterfaceFaceList tiedFaces() const;
89 virtual String masterInterfaceName() const;
90 virtual String slaveInterfaceName() const;
91
92 public:
93
95
97 virtual void build(const FaceGroup& interface,bool is_structured);
98
100
104 virtual void setPlanarTolerance(Real tol);
105
106 virtual void reload(IItemFamily* face_family,
107 const String& master_interface_name,
108 const String& slave_interface_name);
109
110 void resizeNodes(IntegerConstArrayView new_sizes);
111
112 void setNodes(Integer index,ConstArrayView<TiedNode> nodes);
113
114 void resizeFaces(IntegerConstArrayView new_sizes);
115
116 void setFaces(Integer index,ConstArrayView<TiedFace> faces);
117
118 static bool isDebug()
119 {
120 return m_is_debug;
121 }
122
123 void rebuild(ITiedInterfaceRebuilder* rebuilder,
124 IntegerConstArrayView nb_slave_node,
125 IntegerConstArrayView nb_slave_face);
126
127 void checkValid();
128
129 private:
130
131 static bool m_is_debug;
132
133 private:
134
135 IMesh* m_mesh;
136 String m_master_interface_name;
137 String m_slave_interface_name;
138 FaceGroup m_master_interface;
139 FaceGroup m_slave_interface;
140 UniqueMultiArray2<TiedNode> m_tied_nodes;
141 UniqueMultiArray2<TiedFace> m_tied_faces;
142 Real m_planar_tolerance;
143
144 void _checkValid(bool is_print);
145};
146
147/*---------------------------------------------------------------------------*/
148/*---------------------------------------------------------------------------*/
149
150ARCANE_MESH_END_NAMESPACE
151ARCANE_END_NAMESPACE
152
153/*---------------------------------------------------------------------------*/
154/*---------------------------------------------------------------------------*/
155
156#endif
Vue constante d'un tableau de type T.
Face d'une maille.
Definition Item.h:944
Interface d'une famille d'entités.
Definition IItemFamily.h:84
Interface d'une contrainte de partitionnement d'un maillage.
Interface d'un classe gérant une semi-conformité du maillage.
Chaîne de caractères unicode.
virtual FaceGroup slaveInterface() const
Groupe contenant les faces esclaves.
virtual String slaveInterfaceName() const
Nom du groupe contenant les mailles esclaves.
static PartitionConstraintBase * createConstraint(IMesh *mesh, ConstArrayView< FaceGroup > slave_interfaces)
Créé les informations pour l'interface soudée slave_interface/.
virtual void setPlanarTolerance(Real tol)
Definit le seuil relative d'acceptation d'un point projete a une face candidate.
virtual String masterInterfaceName() const
Nom du groupe contenant les mailles maîtres.
virtual void build(const FaceGroup &interface, bool is_structured)
Construit l'interface liée sur le group interface.
virtual TiedInterfaceFaceList tiedFaces() const
Liste des informations sur les faces esclaves d'une face maître.
virtual FaceGroup masterInterface() const
Groupe contenant les faces maîtres.
virtual TiedInterfaceNodeList tiedNodes() const
Liste des informations sur les noeuds esclaves d'une face maître.
TraceAccessor(ITraceMng *m)
Construit un accesseur via le gestionnaire de trace m.
Tableau 2D à taille multiple avec sémantique par valeur.
ItemGroupT< Face > FaceGroup
Groupe de faces.
Definition ItemTypes.h:178
Int32 Integer
Type représentant un entier.
ArrayView< Int32 > Int32ArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:540
double Real
Type représentant un réel.
ArrayView< Real2 > Real2ArrayView
Equivalent C d'un tableau à une dimension de Real2.
Definition UtilsTypes.h:552
ConstArrayView< Integer > IntegerConstArrayView
Equivalent C d'un tableau à une dimension d'entiers.
Definition UtilsTypes.h:573