Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ConstituentListPrinter.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* ConstituentListPrinter.cc (C) 2000-2023 */
9/* */
10/* Fonctions utilitaires d'affichage des constituants. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/materials/internal/ConstituentListPrinter.h"
15
16#include "arcane/materials/internal/MeshMaterialMng.h"
17
18/*---------------------------------------------------------------------------*/
19/*---------------------------------------------------------------------------*/
20
21namespace Arcane::Materials
22{
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27ConstituentListPrinter::
28ConstituentListPrinter(MeshMaterialMng* mm)
29: TraceAccessor(mm->traceMng())
30, m_material_mng(mm)
31{
32}
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36
37/*---------------------------------------------------------------------------*/
38/*---------------------------------------------------------------------------*/
39
40void ConstituentListPrinter::
41print()
42{
43 IMesh* mesh = m_material_mng->mesh();
44 _printConstituentsPerCell(mesh->allCells().view());
45 _printConstituents();
46}
47
48/*---------------------------------------------------------------------------*/
49/*---------------------------------------------------------------------------*/
50
51void ConstituentListPrinter::
52_printConstituentsPerCell(ItemVectorView items)
53{
54 info() << "ConstituentsPerCell:";
55 CellToAllEnvCellConverter all_env_cell_converter(m_material_mng);
56 ENUMERATE_ (Cell, icell, items) {
57 AllEnvCell all_env_cell = all_env_cell_converter[icell];
58 Cell global_cell = all_env_cell.globalCell();
59 info() << "Cell=" << global_cell.uniqueId();
60 ENUMERATE_CELL_ENVCELL (ienvcell, all_env_cell) {
61 EnvCell ec = *ienvcell;
62 info() << " EnvCell mv=" << ec._varIndex()
63 << " env=" << ec.component()->name();
64 ENUMERATE_CELL_MATCELL (imatcell, (*ienvcell)) {
65 MatCell mc = *imatcell;
66 info() << " MatCell mv=" << mc._varIndex()
67 << " mat=" << mc.component()->name();
68 }
69 }
70 }
71}
72
73/*---------------------------------------------------------------------------*/
74/*---------------------------------------------------------------------------*/
75
76void ConstituentListPrinter::
77_printConstituents()
78{
79 info() << "Constituents:";
80 ENUMERATE_ENV (ienv, m_material_mng) {
81 IMeshEnvironment* env = *ienv;
82 info() << "ENV name=" << env->name();
83 ENUMERATE_ENVCELL (icell, env) {
84 EnvCell ev = *icell;
85 info() << "EnvCell mv=" << ev._varIndex();
86 }
87 ENUMERATE_MAT (imat, env) {
88 Materials::IMeshMaterial* mat = *imat;
89 info() << "MAT name=" << mat->name();
90 ENUMERATE_MATCELL (icell, mat) {
91 MatCell mc = *icell;
92 info() << "MatCell mv=" << mc._varIndex();
93 }
94 }
95 }
96}
97
98/*---------------------------------------------------------------------------*/
99/*---------------------------------------------------------------------------*/
100
101} // namespace Arcane::Materials
102
103/*---------------------------------------------------------------------------*/
104/*---------------------------------------------------------------------------*/
#define ENUMERATE_(type, name, group)
Enumérateur générique d'un groupe d'entité
#define ENUMERATE_ENV(ienv, container)
Macro pour itérer sur une liste de milieux.
#define ENUMERATE_ENVCELL(iname, env)
Macro pour itérer sur toutes les mailles d'un milieu.
#define ENUMERATE_CELL_MATCELL(iname, env_cell)
Macro pour itérer sur tous les matériaux d'une maille.
#define ENUMERATE_CELL_ENVCELL(iname, all_env_cell)
Macro pour itérer sur tous les milieux d'une maille.
#define ENUMERATE_MATCELL(iname, mat)
Macro pour itérer sur toutes les mailles d'un matériau.
#define ENUMERATE_MAT(imat, container)
Macro pour itérer sur une liste de matériaux.
Active toujours les traces dans les parties Arcane concernant les matériaux.