Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
UnstructuredMeshAllocateBuildInfo.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/* UnstructuredMeshAllocateBuildInfo.h (C) 2000-2023 */
9/* */
10/* Informations pour allouer les entités d'un maillage non structuré. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_UNSTRUCTUREDMESHALLOCATEBUILDINFO_H
13#define ARCANE_CORE_UNSTRUCTUREDMESHALLOCATEBUILDINFO_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24class UnstructuredMeshAllocateBuildInfoInternal;
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28/*!
29 * \brief Informations pour allouer les entités d'un maillage non structuré.
30 *
31 * Cette classe permet de spécifier les mailles qui seront ajoutées lors
32 * de l'allocation initiale du maillage.
33 * Il faut appeler setMeshDimension() pour spécifier la dimension du maillage
34 * puis appeler addCell() pour chaque maille qu'on souhaite ajouter. Une fois
35 * toute les mailles ajoutées il faut appeler allocateMesh().
36 */
37class ARCANE_CORE_EXPORT UnstructuredMeshAllocateBuildInfo
38{
39 public:
40
41 class Impl;
42 class Intenrnal;
43
44 public:
45
48
49 public:
50
55
56 public:
57
58 /*!
59 * \brief Pre-alloue la mémoire.
60 *
61 * Pré-alloue les tableaux contenant la connectivité pour contenir \a nb_cell
62 * mailles et \a nb_connectivity_node pour la liste des noeuds
63 * des mailles.
64 *
65 * Cette méthode est optionnelle et n'est utile que pour
66 * optimiser la gestion mémoire.
67 *
68 * Par exemple, si on sait que notre maillage contiendra 300 quadrangles
69 * alors on peut utiliser preAllocate(300,300*4).
70 */
71 void preAllocate(Int32 nb_cell, Int64 nb_connectivity_node);
72
73 //! Positionne la dimension du maillage
74 void setMeshDimension(Int32 v);
75
76 //! Ajoute une maille au maillage
77 void addCell(ItemTypeId type_id, Int64 cell_uid, SmallSpan<const Int64> nodes_uid);
78
79 /*!
80 * \brief Alloue le maillage avec les mailles ajoutées lors de l'appel à addCell().
81 *
82 * Cette méthode est collective.
83 */
84 void allocateMesh();
85
86 public:
87
88 //! Partie interne réservée à Arcane
89 UnstructuredMeshAllocateBuildInfoInternal* _internal();
90
91 private:
92
93 Impl* m_p = nullptr;
94};
95
96/*---------------------------------------------------------------------------*/
97/*---------------------------------------------------------------------------*/
98
99} // End namespace Arcane
100
101/*---------------------------------------------------------------------------*/
102/*---------------------------------------------------------------------------*/
103
104#endif
Déclarations de types sur les entités.
Type d'une entité (Item).
Definition ItemTypeId.h:32
Informations pour allouer les entités d'un maillage non structuré.
Vue d'un tableau d'éléments de type T.
Definition Span.h:670
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-