Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ItemVector.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/* ItemVector.cc (C) 2000-2024 */
9/* */
10/* Vecteur d'entités de même genre. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/core/ItemVector.h"
15
17#include "arcane/utils/FatalErrorException.h"
18
19#include "arcane/core/IItemFamily.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26namespace
27{
28IMemoryAllocator* _getAllocator()
29{
31}
32}
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36
38ItemVector(IItemFamily* afamily)
39: m_local_ids(_getAllocator())
40, m_family(afamily)
41{
42 _init();
43}
44
45/*---------------------------------------------------------------------------*/
46/*---------------------------------------------------------------------------*/
47
50: m_local_ids(_getAllocator())
51, m_family(afamily)
52{
53 _init();
54 m_local_ids.resize(local_ids.size());
55 MemoryUtils::copy(m_local_ids.span(),Span<const Int32>(local_ids));
56}
57
58/*---------------------------------------------------------------------------*/
59/*---------------------------------------------------------------------------*/
60
62ItemVector(IItemFamily* afamily, Integer asize)
63: m_local_ids(_getAllocator())
64, m_family(afamily)
65{
66 m_local_ids.resize(asize);
67 _init();
68}
69
70/*---------------------------------------------------------------------------*/
71/*---------------------------------------------------------------------------*/
72
75: m_local_ids(_getAllocator())
76{
77}
78
79/*---------------------------------------------------------------------------*/
80/*---------------------------------------------------------------------------*/
81
82void ItemVector::
83_init()
84{
85 if (m_family) {
86 ItemInfoListView info_view(m_family);
87 m_shared_info = info_view.m_item_shared_info;
88 }
89 else
90 m_shared_info = ItemSharedInfo::nullInstance();
91}
92
93/*---------------------------------------------------------------------------*/
94/*---------------------------------------------------------------------------*/
95
97setFamily(IItemFamily* afamily)
98{
99 m_local_ids.clear();
100 m_family = afamily;
101 _init();
102}
103
104/*---------------------------------------------------------------------------*/
105/*---------------------------------------------------------------------------*/
106
107template class ItemVectorViewT<Node>;
108template class ItemVectorViewT<Edge>;
109template class ItemVectorViewT<Face>;
110template class ItemVectorViewT<Cell>;
111template class ItemVectorViewT<Particle>;
112template class ItemVectorViewT<DoF>;
113
114template class ItemVectorT<Node>;
115template class ItemVectorT<Edge>;
116template class ItemVectorT<Face>;
117template class ItemVectorT<Cell>;
118template class ItemVectorT<Particle>;
119template class ItemVectorT<DoF>;
120
121/*---------------------------------------------------------------------------*/
122/*---------------------------------------------------------------------------*/
123
124} // namespace Arcane
125
126/*---------------------------------------------------------------------------*/
127/*---------------------------------------------------------------------------*/
Fonctions de gestion mémoire et des allocateurs.
constexpr Integer size() const noexcept
Nombre d'éléments du tableau.
Interface d'une famille d'entités.
Definition IItemFamily.h:84
Vue sur une liste pour obtenir des informations sur les entités.
Vecteur typé d'entité.
Definition ItemVector.h:166
Vue sur un tableau typé d'entités.
ItemVector()
Créé un vecteur nul. Il faudra ensuite appeler setFamily() pour l'utiliser.
Definition ItemVector.cc:74
void setFamily(IItemFamily *afamily)
Positionne la famille associée.
Definition ItemVector.cc:97
Vue d'un tableau d'éléments de type T.
Definition Span.h:513
IMemoryAllocator * getDefaultDataAllocator()
Allocateur par défaut pour les données.
void copy(MutableMemoryView destination, eMemoryResource destination_mem, ConstMemoryView source, eMemoryResource source_mem, const RunQueue *queue=nullptr)
Copie de source vers destination en utilisant la file queue.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
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