Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
IndexedItemConnectivityAccessor.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/* IndexedItemConnectivityAccessor.h (C) 2000-2023 */
9/* */
10/* Incremental connectivity of entities. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MESH_INDEXEDITEMCONNECTIVITYACCESSOR_H
13#define ARCANE_MESH_INDEXEDITEMCONNECTIVITYACCESSOR_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18
19#include "arcane/core/IItemFamily.h"
20#include "arcane/core/ItemVector.h"
21#include "arcane/core/VariableTypes.h"
22#include "arcane/core/IIncrementalItemConnectivity.h"
23
24#include "arcane/mesh/MeshGlobal.h"
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29namespace Arcane::mesh
30{
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34
35class ARCANE_MESH_EXPORT IndexedItemConnectivityAccessor
36: public IndexedItemConnectivityViewBase
37{
38 public:
39
40 IndexedItemConnectivityAccessor(IndexedItemConnectivityViewBase view, IItemFamily* target_item_family);
41 IndexedItemConnectivityAccessor(IIncrementalItemConnectivity* connectivity);
42 IndexedItemConnectivityAccessor() = default;
43
44 ItemVectorView operator()(ItemLocalId lid) const
45 {
46 return { m_item_shared_info, this->items(lid).containerView() };
47 }
48
49 private:
50
51 ItemSharedInfo* m_item_shared_info = nullptr;
52};
53
54/*---------------------------------------------------------------------------*/
55/*---------------------------------------------------------------------------*/
56
57} // End namespace Arcane::mesh
58
59/*---------------------------------------------------------------------------*/
60/*---------------------------------------------------------------------------*/
61
62#endif
Interface for managing an incremental connectivity.
Interface of an entity family.
Definition IItemFamily.h:83
constexpr __host__ __device__ ItemLocalIdListViewT< Item > items(ItemLocalId lid) const
List of entities connected to entity lid.
Index of an Item in a variable.
Definition ItemLocalId.h:42
Internal shared structure of a mesh entity.
View on a vector of entities.