Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
IPrimaryMesh.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/* IPrimaryMesh.h (C) 2000-2025 */
9/* */
10/* Interface for the geometry of a mesh. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IPRIMARYMESH_H
13#define ARCANE_CORE_IPRIMARYMESH_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
20#include "arcane/core/IMesh.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
31class IParallelMng;
33class XmlNode;
34class IMeshUtilities;
35class IMeshModifier;
36class Properties;
37
38/*---------------------------------------------------------------------------*/
39/*---------------------------------------------------------------------------*/
40
41//INFO: The complete documentation is in Mesh.dox
43: public IMesh
44{
45 public:
46
47 virtual ~IPrimaryMesh() {} //<! Releases resources
48
49 public:
50
53
63 virtual void setDimension(Integer dim) = 0;
64
67 virtual void reloadMesh() = 0;
68
69 //NOTE: Complete documentation for this method is in Mesh.dox
71 virtual void allocateCells(Integer nb_cell, Int64ConstArrayView cells_infos, bool one_alloc = true) = 0;
72
81 virtual void endAllocate() = 0;
82
98 virtual void deallocate() = 0;
99
105 virtual IMeshInitialAllocator* initialAllocator() { return nullptr; }
106
107 public:
108
120
122 virtual void exchangeItems() = 0;
123
124 public:
125
137 virtual void setOwnersFromCells() = 0;
138
143 virtual void setMeshPartInfo(const MeshPartInfo& mpi) = 0;
144};
145
146/*---------------------------------------------------------------------------*/
147/*---------------------------------------------------------------------------*/
148
149} // End namespace Arcane
150
151/*---------------------------------------------------------------------------*/
152/*---------------------------------------------------------------------------*/
153
154#endif
Declarations of Arcane's general types.
Declarations of types on entities.
Interface for allocating mesh entities.
Mesh modification interface.
Interface of a class providing utility functions on meshes.
Interface of the parallelism manager for a subdomain.
Interface of a particle exchanger.
virtual VariableNodeReal3 & nodesCoordinates()=0
Node coordinates.
virtual void setOwnersFromCells()=0
Positions entity owners based on the cell owner.
virtual void setMeshPartInfo(const MeshPartInfo &mpi)=0
Positions partitioning information.
virtual IMeshInitialAllocator * initialAllocator()
Specific initial allocator.
virtual void exchangeItems()=0
Changes the owning subdomains of entities.
virtual void endAllocate()=0
Indicates the end of cell allocation.
virtual void allocateCells(Integer nb_cell, Int64ConstArrayView cells_infos, bool one_alloc=true)=0
Allocation of a mesh.
virtual void reloadMesh()=0
Reloads the mesh from protected variables.
virtual void setDimension(Integer dim)=0
Positions the mesh dimension (1D, 2D, or 3D).
virtual void deallocate()=0
Deallocates the mesh.
virtual VariableItemInt32 & itemsNewOwner(eItemKind kind)=0
Variable containing the identifier of the owning subdomain.
Information about a partitioned mesh.
List of properties.
Definition Properties.h:65
Node of a DOM tree.
Definition XmlNode.h:51
MeshVariableScalarRefT< Node, Real3 > VariableNodeReal3
Coordinate type quantity at node.
ItemVariableScalarRefT< Int32 > VariableItemInt32
32-bit integer type quantity
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.
ConstArrayView< Int64 > Int64ConstArrayView
C equivalent of a 1D array of 64-bit integers.
Definition UtilsTypes.h:480
eItemKind
Mesh entity type.