Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
MeshEnvironmentBuildInfo.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/* MeshEnvironmentBuildInfo.h (C) 2000-2023 */
9/* */
10/* Information for creating an environment. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_MESHENVIRONMENTBUILDINFO_H
13#define ARCANE_MATERIALS_MESHENVIRONMENTBUILDINFO_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/String.h"
18#include "arcane/utils/Array.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane::Materials
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30/*!
31 * \ingroup ArcaneMaterials
32 * \brief Information for creating an environment.
33 *
34 * This instance contains the necessary information to create an environment.
35 * Once the information is specified, the environment must be created
36 * via IMeshMaterialMng::createEnvironment().
37 *
38 * For now, the only relevant information about an environment is its
39 * name and the list of materials composing it.
40 */
41class ARCANE_MATERIALS_EXPORT MeshEnvironmentBuildInfo
42{
43 public:
44
45 class MatInfo
46 {
47 public:
48
49 MatInfo(const String& name)
50 : m_name(name)
51 {}
52
53 public:
54
55 String m_name;
56
57 public:
58
59 // The default constructor should not be available but it crashes at
60 // compilation with VS2010 if it is absent
61 MatInfo() {}
62 };
63
64 public:
65
66 MeshEnvironmentBuildInfo(const String& name);
67 ~MeshEnvironmentBuildInfo();
68
69 public:
70
71 //! Name of the environment
72 const String& name() const { return m_name; }
73
74 /*!
75 * \brief Adds the material named \a name to the environment
76 *
77 * The material must already have been registered via
78 * IMeshMaterialMng::registerMaterialInfo().
79 */
80 void addMaterial(const String& name);
81
82 public:
83
84 /*!
85 * \internal
86 * List of materials.
87 */
88 ConstArrayView<MatInfo> materials() const
89 {
90 return m_materials;
91 }
92
93 private:
94
95 String m_name;
96 UniqueArray<MatInfo> m_materials;
97
98 void _checkValid(const String& name);
99};
100
101/*---------------------------------------------------------------------------*/
102/*---------------------------------------------------------------------------*/
103
104} // namespace Arcane::Materials
105
106/*---------------------------------------------------------------------------*/
107/*---------------------------------------------------------------------------*/
108
109#endif
Constant view of an array of type T.
const String & name() const
Name of the environment.
1D data vector with value semantics (STL style).
Always enables tracing in Arcane parts concerning materials.
class ARCANE_MATERIALS_EXPORT(64) SimdMatVarIndex
SIMD indexer on a component.