Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
TiedInterfaceMng.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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/* TiedInterfaceMng.h (C) 2000-2010 */
9/* */
10/* Tied interface manager. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MESH_TIEDINTERFACEMNG_H
13#define ARCANE_MESH_TIEDINTERFACEMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/utils/List.h"
19
20#include "arcane/mesh/MeshGlobal.h"
21
22#include "arcane/core/VariableTypes.h"
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27namespace Arcane
28{
29class IMesh;
30class XmlNode;
32} // namespace Arcane
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
36namespace Arcane::mesh
37{
38
39/*---------------------------------------------------------------------------*/
40/*---------------------------------------------------------------------------*/
41
42class DynamicMesh;
43class TiedInterface;
44
45/*---------------------------------------------------------------------------*/
46/*---------------------------------------------------------------------------*/
50class TiedInterfaceMng
51: public TraceAccessor
52{
53 public:
54
55 TiedInterfaceMng(DynamicMesh* mesh);
56 virtual ~TiedInterfaceMng();
57
58 public:
59
60 void computeTiedInterfaces(const XmlNode& mesh_node);
61 void prepareTiedInterfacesForDump();
62 void readTiedInterfacesFromDump();
63 bool hasTiedInterface()
64 {
65 return !m_tied_interfaces.empty();
66 }
67 TiedInterfaceCollection tiedInterfaces()
68 {
69 return m_tied_interfaces;
70 }
71
72 ISubDomain* subDomain() { return m_sub_domain; }
73 ConstArrayView<TiedInterface*> trueTiedInterfaces()
74 {
75 return m_true_tied_interfaces;
76 }
77
78 private:
79
80 DynamicMesh* m_mesh;
81 ISubDomain* m_sub_domain;
82 String m_name;
83
84 private:
85
86 TiedInterfaceList m_tied_interfaces;
87 VariableArrayInt64 m_tied_interface_items_info;
88 VariableArrayReal2 m_tied_interface_nodes_iso;
89 VariableArrayString m_tied_interface_face_groups;
90 UniqueArray<TiedInterface*> m_true_tied_interfaces;
91 IMeshPartitionConstraint* m_tied_constraint;
92
93 private:
94
95 void _deleteTiedInterfaces();
96 void _applyTiedInterfaceStructuration(TiedInterface* tied_interface);
97};
98
99/*---------------------------------------------------------------------------*/
100/*---------------------------------------------------------------------------*/
101
102} // namespace Arcane::mesh
103
104/*---------------------------------------------------------------------------*/
105/*---------------------------------------------------------------------------*/
106
107#endif
Constant view of an array of type T.
Interface of a mesh partitioning constraint.
Interface of the subdomain manager.
Definition ISubDomain.h:75
TraceAccessor(ITraceMng *m)
Constructs an accessor via the trace manager m.
1D data vector with value semantics (STL style).
Node of a DOM tree.
Definition XmlNode.h:51
Implementation of a mesh.
Definition DynamicMesh.h:98
Information on mesh semi-conformities.
VariableRefArrayT< Int64 > VariableArrayInt64
Array variable of 64-bit integer type.
VariableRefArrayT< String > VariableArrayString
Array variable of character string type.
VariableRefArrayT< Real2 > VariableArrayReal2
Array variable of coordinate type (x,y).
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
List< ITiedInterface * > TiedInterfaceList
Array of tied interfaces.
Collection< ITiedInterface * > TiedInterfaceCollection
Collection of tied interfaces.