Arcane  4.1.11.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
MatItemEnumerator.cc
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/* MatItemEnumerator.cc (C) 2000-2026 */
9/* */
10/* Enumérateurs sur les mailles materiaux. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
15
16#include "arcane/core/materials/ComponentItemVectorView.h"
17#include "arcane/core/materials/IMeshMaterialMng.h"
18#include "arcane/core/materials/IMeshBlock.h"
19#include "arcane/core/materials/MatItemVector.h"
20#include "arcane/core/materials/EnvItemVector.h"
21#include "arcane/core/materials/internal/IMeshComponentInternal.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33
34namespace Arcane::Materials
35{
36
37/*---------------------------------------------------------------------------*/
38/*---------------------------------------------------------------------------*/
39
40ComponentCellEnumerator::
41ComponentCellEnumerator(const ComponentItemVectorView& v)
42: m_index(0)
43, m_size(v._matvarIndexes().size())
44, m_constituent_list_view(v._constituentItemListView())
45, m_matvar_indexes(v._matvarIndexes())
46, m_component(v.component())
47{
48#ifdef ARCANE_CHECK
49 if (m_index<m_size)
50 _check();
51#endif
52}
53
54/*---------------------------------------------------------------------------*/
55/*---------------------------------------------------------------------------*/
56
57MatCellEnumerator MatCellEnumerator::
58create(IMeshMaterial* mat)
59{
60 return MatCellEnumerator(mat->view());
61}
62
63/*---------------------------------------------------------------------------*/
64/*---------------------------------------------------------------------------*/
65
66MatCellEnumerator MatCellEnumerator::
67create(const MatCellVector& miv)
68{
69 return create(miv.view());
70}
71
72/*---------------------------------------------------------------------------*/
73/*---------------------------------------------------------------------------*/
74
75MatCellEnumerator MatCellEnumerator::
76create(MatCellVectorView v)
77{
78 return MatCellEnumerator(v);
79}
80
81/*---------------------------------------------------------------------------*/
82/*---------------------------------------------------------------------------*/
83
84/*---------------------------------------------------------------------------*/
85/*---------------------------------------------------------------------------*/
86
87EnvCellEnumerator EnvCellEnumerator::
88create(IMeshEnvironment* env)
89{
90 return EnvCellEnumerator(env->view());
91}
92
93/*---------------------------------------------------------------------------*/
94/*---------------------------------------------------------------------------*/
95
96EnvCellEnumerator EnvCellEnumerator::
97create(const EnvCellVector& miv)
98{
99 return create(miv.view());
100}
101
102/*---------------------------------------------------------------------------*/
103/*---------------------------------------------------------------------------*/
104
105EnvCellEnumerator EnvCellEnumerator::
106create(EnvCellVectorView v)
107{
108 return EnvCellEnumerator(v);
109}
110
111/*---------------------------------------------------------------------------*/
112/*---------------------------------------------------------------------------*/
113
114/*---------------------------------------------------------------------------*/
115/*---------------------------------------------------------------------------*/
116
117EnvCellEnumerator CellGenericEnumerator::
118create(IMeshEnvironment* env)
119{
120 return EnvCellEnumerator::create(env);
121}
122
123/*---------------------------------------------------------------------------*/
124/*---------------------------------------------------------------------------*/
125
126EnvCellEnumerator CellGenericEnumerator::
127create(const EnvCellVector& ecv)
128{
129 return EnvCellEnumerator::create(ecv);
130}
131
132/*---------------------------------------------------------------------------*/
133/*---------------------------------------------------------------------------*/
134
135EnvCellEnumerator CellGenericEnumerator::
136create(EnvItemVectorView v)
137{
138 return EnvCellEnumerator::create(v);
139}
140
141/*---------------------------------------------------------------------------*/
142/*---------------------------------------------------------------------------*/
143
144MatCellEnumerator CellGenericEnumerator::
145create(IMeshMaterial* mat)
146{
147 return MatCellEnumerator::create(mat);
148}
149
150/*---------------------------------------------------------------------------*/
151/*---------------------------------------------------------------------------*/
152
153MatCellEnumerator CellGenericEnumerator::
154create(const MatCellVector& miv)
155{
156 return MatCellEnumerator::create(miv);
157}
158
159/*---------------------------------------------------------------------------*/
160/*---------------------------------------------------------------------------*/
161
162MatCellEnumerator CellGenericEnumerator::
163create(MatItemVectorView v)
164{
165 return MatCellEnumerator::create(v);
166}
167
168/*---------------------------------------------------------------------------*/
169/*---------------------------------------------------------------------------*/
170
171CellEnumerator CellGenericEnumerator::
172create(CellVectorView v)
173{
174 return CellEnumerator(v);
175}
176
177/*---------------------------------------------------------------------------*/
178/*---------------------------------------------------------------------------*/
179
180CellEnumerator CellGenericEnumerator::
181create(const CellGroup& v)
182{
183 return create(v.view());
184}
185
186/*---------------------------------------------------------------------------*/
187/*---------------------------------------------------------------------------*/
188
189/*---------------------------------------------------------------------------*/
190/*---------------------------------------------------------------------------*/
191
192ComponentCellEnumerator ComponentCellEnumerator::
193create(IMeshComponent* component)
194{
195 return ComponentCellEnumerator(component->view());
196}
197
198/*---------------------------------------------------------------------------*/
199/*---------------------------------------------------------------------------*/
200
201ComponentCellEnumerator ComponentCellEnumerator::
202create(const ComponentItemVector& v)
203{
204 return create(v.view());
205}
206
207/*---------------------------------------------------------------------------*/
208/*---------------------------------------------------------------------------*/
209
210ComponentCellEnumerator ComponentCellEnumerator::
211create(ComponentItemVectorView v)
212{
213 return ComponentCellEnumerator(v);
214}
215
216/*---------------------------------------------------------------------------*/
217/*---------------------------------------------------------------------------*/
218
219/*---------------------------------------------------------------------------*/
220/*---------------------------------------------------------------------------*/
221
222ComponentEnumerator::
223ComponentEnumerator(ConstArrayView<IMeshComponent*> components)
224: m_components(components)
225, m_index(0)
226, m_size(m_components.size())
227{
228}
229
230/*---------------------------------------------------------------------------*/
231/*---------------------------------------------------------------------------*/
232
233/*---------------------------------------------------------------------------*/
234/*---------------------------------------------------------------------------*/
235
236MatEnumerator::
237MatEnumerator(IMeshMaterialMng* mm)
238: m_mats(mm->materials())
239, m_index(0)
240, m_size(m_mats.size())
241{
242}
243
244/*---------------------------------------------------------------------------*/
245/*---------------------------------------------------------------------------*/
246
247MatEnumerator::
248MatEnumerator(IMeshEnvironment* env)
249: m_mats(env->materials())
250, m_index(0)
251, m_size(m_mats.size())
252{
253}
254
255/*---------------------------------------------------------------------------*/
256/*---------------------------------------------------------------------------*/
257
258MatEnumerator::
259MatEnumerator(ConstArrayView<IMeshMaterial*> mats)
260: m_mats(mats)
261, m_index(0)
262, m_size(m_mats.size())
263{
264}
265
266/*---------------------------------------------------------------------------*/
267/*---------------------------------------------------------------------------*/
268
269/*---------------------------------------------------------------------------*/
270/*---------------------------------------------------------------------------*/
271
272EnvEnumerator::
273EnvEnumerator(IMeshMaterialMng* mm)
274: m_envs(mm->environments())
275, m_index(0)
276, m_size(m_envs.size())
277{
278}
279
280/*---------------------------------------------------------------------------*/
281/*---------------------------------------------------------------------------*/
282
283EnvEnumerator::
284EnvEnumerator(IMeshBlock* mb)
285: m_envs(mb->environments())
286, m_index(0)
287, m_size(m_envs.size())
288{
289}
290
291/*---------------------------------------------------------------------------*/
292/*---------------------------------------------------------------------------*/
293
294EnvEnumerator::
295EnvEnumerator(ConstArrayView<IMeshEnvironment*> envs)
296: m_envs(envs)
297, m_index(0)
298, m_size(m_envs.size())
299{
300}
301
302/*---------------------------------------------------------------------------*/
303/*---------------------------------------------------------------------------*/
304
305/*---------------------------------------------------------------------------*/
306/*---------------------------------------------------------------------------*/
307
308AllEnvCellEnumerator AllEnvCellEnumerator::
309create(AllEnvCellVectorView items)
310{
311 return AllEnvCellEnumerator(items);
312}
313
314/*---------------------------------------------------------------------------*/
315/*---------------------------------------------------------------------------*/
316
317AllEnvCellEnumerator AllEnvCellEnumerator::
318create(IMeshMaterialMng* mng,const CellVectorView& view)
319{
320 return create(mng->view(view));
321}
322
323/*---------------------------------------------------------------------------*/
324/*---------------------------------------------------------------------------*/
325
326AllEnvCellEnumerator AllEnvCellEnumerator::
327create(IMeshMaterialMng* mng,const CellGroup& group)
328{
329 return create(mng->view(group));
330}
331
332/*---------------------------------------------------------------------------*/
333/*---------------------------------------------------------------------------*/
334
335AllEnvCellEnumerator AllEnvCellEnumerator::
336create(IMeshBlock* block)
337{
338 return create(block->view());
339}
340
341/*---------------------------------------------------------------------------*/
342/*---------------------------------------------------------------------------*/
343
344/*---------------------------------------------------------------------------*/
345/*---------------------------------------------------------------------------*/
346
347ComponentPartCellEnumerator ComponentPartCellEnumerator::
348create(ComponentPartItemVectorView v)
349{
350 return ComponentPartCellEnumerator(v,0);
351}
352
353/*---------------------------------------------------------------------------*/
354/*---------------------------------------------------------------------------*/
355
356ComponentPartCellEnumerator ComponentPartCellEnumerator::
357create(IMeshComponent* component,eMatPart part)
358{
359 return create(component->partItems(part));
360}
361
362/*---------------------------------------------------------------------------*/
363/*---------------------------------------------------------------------------*/
364
365ComponentPartCellEnumerator::
366ComponentPartCellEnumerator(const ComponentPartItemVectorView& v,Integer base_index)
367: m_index(0)
368, m_size(v.itemIndexes().size())
369, m_var_idx(v.componentPartIndex())
370, m_base_index(base_index)
371, m_value_indexes(v.valueIndexes())
372, m_item_indexes(v.itemIndexes())
373, m_constituent_list_view(v.constituentItemListView())
374, m_component(v.component())
375{
376}
377
378/*---------------------------------------------------------------------------*/
379/*---------------------------------------------------------------------------*/
380
381MatPartCellEnumerator::
382MatPartCellEnumerator(const MatPartItemVectorView& v)
383: ComponentPartCellEnumerator(v,0)
384{
385}
386
387/*---------------------------------------------------------------------------*/
388/*---------------------------------------------------------------------------*/
389
390MatPartCellEnumerator MatPartCellEnumerator::
391create(IMeshMaterial* mat,eMatPart part)
392{
393 MatPartItemVectorView v(mat->partMatItems(part));
394 return MatPartCellEnumerator(v);
395}
396
397/*---------------------------------------------------------------------------*/
398/*---------------------------------------------------------------------------*/
399
400MatPartCellEnumerator MatPartCellEnumerator::
401create(MatPartItemVectorView v)
402{
403 return MatPartCellEnumerator(v);
404}
405
406/*---------------------------------------------------------------------------*/
407/*---------------------------------------------------------------------------*/
408
409EnvPartCellEnumerator::
410EnvPartCellEnumerator(const EnvPartItemVectorView& v)
411: ComponentPartCellEnumerator(v,0)
412{
413}
414
415/*---------------------------------------------------------------------------*/
416/*---------------------------------------------------------------------------*/
417
418EnvPartCellEnumerator EnvPartCellEnumerator::
419create(IMeshEnvironment* env,eMatPart part)
420{
421 EnvPartItemVectorView v(env->partEnvItems(part));
422 return EnvPartCellEnumerator(v);
423}
424
425/*---------------------------------------------------------------------------*/
426/*---------------------------------------------------------------------------*/
427
428EnvPartCellEnumerator EnvPartCellEnumerator::
429create(EnvPartItemVectorView v)
430{
431 return EnvPartCellEnumerator(v);
432}
433
434/*---------------------------------------------------------------------------*/
435/*---------------------------------------------------------------------------*/
436
437ComponentCellEnumerator
439{
440 return ComponentCellEnumerator::create(v);
441}
444{
445 return MatCellEnumerator::create(v);
446}
449{
450 return EnvCellEnumerator::create(v);
451}
454{
455 return ComponentPartCellEnumerator::create(v);
456}
457MatPartCellEnumerator
458arcaneImplCreateConstituentEnumerator(MatPartCell, MatPartItemVectorView v)
459{
460 return MatPartCellEnumerator::create(v);
461}
462EnvPartCellEnumerator
463arcaneImplCreateConstituentEnumerator(EnvPartCell, EnvPartItemVectorView v)
464{
465 return EnvPartCellEnumerator::create(v);
466}
467
468/*---------------------------------------------------------------------------*/
469/*---------------------------------------------------------------------------*/
470
471} // End namespace Arcane::Materials
472
473/*---------------------------------------------------------------------------*/
474/*---------------------------------------------------------------------------*/
Vue sur un vecteur sur les entités d'un composant.
Enumérateur sur une sous-partie (pure ou partielle) d'un sous-ensemble des mailles d'un composant (ma...
Vue sur une partie pure ou partielles des entités d'un composant.
Enumérateur sur les mailles d'un milieu.
Maille arcane d'un milieu.
Vue sur un vecteur sur les entités d'un milieu.
Enumérateur sur une partie des mailles d'un seul matériau.
Représente un matériau d'une maille multi-matériau.
Vue sur un vecteur sur les entités d'un matériau.
ItemEnumeratorT< Cell > CellEnumerator
Enumérateurs sur des mailles.
Definition ItemTypes.h:271
Active toujours les traces dans les parties Arcane concernant les matériaux.
ConstituentItemIndexedSelectionEnumerator< ComponentCellVectorView > arcaneImplCreateConstituentEnumerator(ComponentCell, ConstituentItemIndexedSelectionView< ComponentCellVectorView > container)
Enumérateur sur une sélection d'un constituant.