Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IMeshInitialAllocator.h
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/* IMeshInitialAllocator.h (C) 2000-2023 */
9/* */
10/* Interface d'allocation des entités du maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IMESHINITIALALLOCATOR_H
13#define ARCANE_IMESHINITIALALLOCATOR_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25class ItemAllocationInfo;
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29/*!
30 * \brief Allocateur pour les maillages non structurés.
31 */
32class ARCANE_CORE_EXPORT IUnstructuredMeshInitialAllocator
33{
34 public:
35
36 virtual ~IUnstructuredMeshInitialAllocator() = default;
37
38 public:
39
40 virtual void allocate(UnstructuredMeshAllocateBuildInfo& build_info) = 0;
41};
42
43/*---------------------------------------------------------------------------*/
44/*---------------------------------------------------------------------------*/
45/*!
46 * \brief Allocateur pour les maillages cartésiens.
47 */
48class ARCANE_CORE_EXPORT ICartesianMeshInitialAllocator
49{
50 public:
51
52 virtual ~ICartesianMeshInitialAllocator() = default;
53
54 public:
55
56 virtual void allocate(CartesianMeshAllocateBuildInfo& build_info) = 0;
57};
58
59/*---------------------------------------------------------------------------*/
60/*---------------------------------------------------------------------------*/
61/*!
62 * \brief Allocateur pour les maillages polyédriques.
63 */
64class ARCANE_CORE_EXPORT IPolyhedralMeshInitialAllocator
65{
66 public:
67
68 virtual ~IPolyhedralMeshInitialAllocator() = default;
69
70 public:
71
72 virtual void allocateItems(const Arcane::ItemAllocationInfo& allocation_info) = 0;
73};
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
77/*!
78 * \brief Interface d'allocation des entités du maillage.
79 */
80class ARCANE_CORE_EXPORT IMeshInitialAllocator
81{
82 public:
83
84 virtual ~IMeshInitialAllocator() = default;
85
86 public:
87
88 //! Allocateur pour les maillages non structurés
90 {
91 return nullptr;
92 }
93
94 //! Allocateur pour les maillages polyédriques
96 {
97 return nullptr;
98 }
99
100 //! Allocateur pour les maillages cartésiens
102 {
103 return nullptr;
104 }
105};
106
107/*---------------------------------------------------------------------------*/
108/*---------------------------------------------------------------------------*/
109
110} // End namespace Arcane
111
112/*---------------------------------------------------------------------------*/
113/*---------------------------------------------------------------------------*/
114
115#endif
116
Informations pour allouer les entités d'un maillage non structuré.
Allocateur pour les maillages cartésiens.
Interface d'allocation des entités du maillage.
virtual IUnstructuredMeshInitialAllocator * unstructuredMeshAllocator()
Allocateur pour les maillages non structurés.
virtual ICartesianMeshInitialAllocator * cartesianMeshAllocator()
Allocateur pour les maillages cartésiens.
virtual IPolyhedralMeshInitialAllocator * polyhedralMeshAllocator()
Allocateur pour les maillages polyédriques.
Allocateur pour les maillages polyédriques.
Allocateur pour les maillages non structurés.
Informations pour allouer les entités d'un maillage non structuré.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-