Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
IGraphModifier2.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/* IGraphModifier2.h (C) 2000-2025 */
9/* */
10/* Interface for a mesh graph modification tool */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IGRAPHMODIFIER2_H
13#define ARCANE_CORE_IGRAPHMODIFIER2_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28/*!
29 * \brief Interface for a mesh graph.
30 */
31class ARCANE_CORE_EXPORT IGraphModifier2
32{
33 public:
34
35 virtual ~IGraphModifier2() = default; //!< Frees resources
36
37 public:
38
39 //! Adds links to the graph with a fixed number of dual nodes per link
40 virtual void addLinks(Integer nb_link,
41 Integer nb_dual_nodes_per_link,
42 Int64ConstArrayView links_infos) = 0;
43
44 //! Adds dual nodes to the graph with a fixed dual item type per node
45 virtual void addDualNodes(Integer graph_nb_dual_node,
46 Integer dual_node_kind,
47 Int64ConstArrayView dual_nodes_infos) = 0;
48
49 //! Adds dual nodes to the graph, where the node type is specified in the infos array
50 virtual void addDualNodes(Integer graph_nb_dual_node,
51 Int64ConstArrayView dual_nodes_infos) = 0;
52
53 //! Removes dual nodes from the graph
54 virtual void removeDualNodes(Int32ConstArrayView dual_node_local_ids) = 0;
55
56 //! Removes dual links from the graph
57 virtual void removeLinks(Int32ConstArrayView link_local_ids) = 0;
58
59 //! Removes DualNodes and Links connected to cells that are being deleted
60 virtual void removeConnectedItemsFromCells(Int32ConstArrayView cell_local_ids) = 0;
61
62 virtual void endUpdate() = 0;
63
64 virtual void updateAfterMeshChanged() = 0;
65};
66
67/*---------------------------------------------------------------------------*/
68/*---------------------------------------------------------------------------*/
69
70} // namespace Arcane
71
72/*---------------------------------------------------------------------------*/
73/*---------------------------------------------------------------------------*/
74
75#endif
Declarations of Arcane's general types.
Interface for a mesh graph.
virtual void addDualNodes(Integer graph_nb_dual_node, Integer dual_node_kind, Int64ConstArrayView dual_nodes_infos)=0
Adds dual nodes to the graph with a fixed dual item type per node.
virtual void addDualNodes(Integer graph_nb_dual_node, Int64ConstArrayView dual_nodes_infos)=0
Adds dual nodes to the graph, where the node type is specified in the infos array.
virtual void removeDualNodes(Int32ConstArrayView dual_node_local_ids)=0
Removes dual nodes from the graph.
virtual void addLinks(Integer nb_link, Integer nb_dual_nodes_per_link, Int64ConstArrayView links_infos)=0
Adds links to the graph with a fixed number of dual nodes per link.
virtual void removeConnectedItemsFromCells(Int32ConstArrayView cell_local_ids)=0
Removes DualNodes and Links connected to cells that are being deleted.
virtual void removeLinks(Int32ConstArrayView link_local_ids)=0
Removes dual links from the graph.
virtual ~IGraphModifier2()=default
Frees resources.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.
ConstArrayView< Int32 > Int32ConstArrayView
C equivalent of a 1D array of 32-bit integers.
Definition UtilsTypes.h:482
ConstArrayView< Int64 > Int64ConstArrayView
C equivalent of a 1D array of 64-bit integers.
Definition UtilsTypes.h:480