Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
AllEnvData.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/* AllEnvData.h (C) 2000-2024 */
9/* */
10/* Information on environment values. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_INTERNAL_ALLENVDATA_H
13#define ARCANE_MATERIALS_INTERNAL_ALLENVDATA_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/utils/Array.h"
19
20#include "arcane/core/IIncrementalItemConnectivity.h"
21
22#include "arcane/materials/MatItemEnumerator.h"
23
24#include "arcane/materials/internal/MeshMaterial.h"
25#include "arcane/materials/internal/MeshEnvironment.h"
26#include "arcane/materials/internal/ComponentItemInternalData.h"
27
28#include <map>
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
33namespace Arcane::Materials
34{
35
36/*---------------------------------------------------------------------------*/
37/*---------------------------------------------------------------------------*/
38
43class AllEnvData
44: public TraceAccessor
45{
46 friend class IncrementalComponentModifier;
47
48 public:
49
51
52 public:
53
54 explicit AllEnvData(MeshMaterialMng* mmg);
55
56 public:
57
58 void forceRecompute(bool compute_all);
59 void recomputeIncremental();
60
61 public:
62
64 void endCreate(bool is_continue);
65
66 ConstituentConnectivityList* componentConnectivityList()
67 {
68 return m_component_connectivity_list;
69 }
70 ComponentItemInternalData* componentItemInternalData()
71 {
72 return &m_item_internal_data;
73 }
74
75 private:
76
77 MeshMaterialMng* m_material_mng = nullptr;
78 ConstituentConnectivityList* m_component_connectivity_list = nullptr;
79 Ref<IIncrementalItemSourceConnectivity> m_component_connectivity_list_ref;
80
83
84 ComponentItemInternalData m_item_internal_data;
85 Int64 m_current_mesh_timestamp = -1;
86
87 private:
88
89 void _computeNbEnvAndNbMatPerCell();
90 void _computeAndResizeEnvItemsInternal();
91 bool _isFullVerbose() const;
92 void _rebuildMaterialsAndEnvironmentsFromGroups();
93 void _checkLocalIdsCoherency() const;
94 void _printAllEnvCells(CellVectorView ids);
95 void _checkConnectivityCoherency();
97
98 public:
99
100 void _computeInfosForAllEnvCells1(RecomputeConstituentCellInfos& work_info);
101 void _computeInfosForAllEnvCells2(RecomputeConstituentCellInfos& work_info);
103};
104
105/*---------------------------------------------------------------------------*/
106/*---------------------------------------------------------------------------*/
107
108} // namespace Arcane::Materials
109
110/*---------------------------------------------------------------------------*/
111/*---------------------------------------------------------------------------*/
112
113#endif
void _checkLocalIdsCoherency() const
Checks the coherence of variableIndexer().localIds() with the global cell associated with the environ...
Int32 m_verbose_debug_level
Verbosity level.
Definition AllEnvData.h:82
void _rebuildIncrementalConnectivitiesFromGroups()
Rebuilds the incremental connectivities for groups.
void endCreate(bool is_continue)
Notification of the end of environment/material creation.
Definition AllEnvData.cc:96
void forceRecompute(bool compute_all)
Updates structures following a modification of material or environment cells.
void _computeInfosForEnvCells(RecomputeConstituentCellInfos &work_info)
Positions the info for EnvCells.
Management of 'ComponentItemInternal' lists.
Management of constituent connectivity lists.
Implementation of a material manager.
Reference to an instance.
TraceAccessor(ITraceMng *m)
Constructs an accessor via the trace manager m.
ItemVectorViewT< Cell > CellVectorView
View over a vector of cells.
Definition ItemTypes.h:305
Always enables tracing in Arcane parts concerning materials.
std::int64_t Int64
Signed integer type of 64 bits.
std::int32_t Int32
Signed integer type of 32 bits.