Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IMeshMaterialMng.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/* IMeshMaterialMng.cc (C) 2000-2023 */
9/* */
10/* Interface du gestionnaire des matériaux et milieux d'un maillage. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/core/materials/IMeshMaterialMng.h"
15
16#include "arcane/utils/Ref.h"
17#include "arcane/utils/FatalErrorException.h"
18
19#include "arcane/IMesh.h"
20#include "arcane/MeshHandle.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane::Materials
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
31namespace {
32IMeshMaterialMng::IFactory* global_mesh_material_mng_factory = nullptr;
33}
34
35/*---------------------------------------------------------------------------*/
36/*---------------------------------------------------------------------------*/
37
43
44/*---------------------------------------------------------------------------*/
45/*---------------------------------------------------------------------------*/
46
49{
50 if (mesh_handle.isNull())
51 ARCANE_FATAL("Null MeshHandle is not allowed");
53 if (!f){
54 if (is_create)
55 ARCANE_FATAL("No factory for 'IMeshMaterialMng': You need to link with 'arcane_materials' library");
56 return {};
57 }
58 return f->getTrueReference(mesh_handle,is_create);
59}
60
61/*---------------------------------------------------------------------------*/
62/*---------------------------------------------------------------------------*/
63
66{
67 return getTrueReference(mesh_handle.handle(),create).get();
68}
69
70/*---------------------------------------------------------------------------*/
71/*---------------------------------------------------------------------------*/
72
73} // End namespace Arcane::Materials
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Interface du gestionnaire des matériaux et des milieux d'un maillage.
static Ref< IMeshMaterialMng > getTrueReference(const MeshHandle &mesh_handle, bool create=true)
Récupère ou créé la référence associée à mesh.
static void _internalSetFactory(IFactory *f)
static IMeshMaterialMng * getReference(const MeshHandleOrMesh &mesh_handle, bool create=true)
Récupère ou créé la référence associée à mesh.
Classe de compatibilité pour contenir un MeshHandle ou un IMesh*.
Definition MeshHandle.h:194
Handle sur un maillage.
Definition MeshHandle.h:47
Active toujours les traces dans les parties Arcane concernant les matériaux.