Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
IDoFFamily.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/* IDoFFamily.h (C) 2000-2025 */
9/* */
10/* Interface of a family of degrees of freedom (DoF). */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IDOFFAMILY_H
13#define ARCANE_CORE_IDOFFAMILY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29/*!
30 * \ingroup Mesh
31 * \brief Interface of a DoF family.
32 */
33class ARCANE_CORE_EXPORT IDoFFamily
34{
35 public:
36
37 virtual ~IDoFFamily() = default; //<! Frees resources
38
39 public:
40
41 virtual void build() = 0;
42
43 public:
44
45 //! Name of the family
46 virtual String name() const = 0;
47
48 //! Full name of the family (including the mesh name)
49 virtual String fullName() const = 0;
50
51 //! Number of entities
52 virtual Integer nbItem() const = 0;
53
54 //! Group of all DoFs
55 virtual ItemGroup allItems() const = 0;
56
57 public:
58
59 //! Input is the DoF uids and we retrieve their lids
61
62 //! Adding ghosts must be followed by a call to computeSynchronizeInfos
64 Int32ConstArrayView owners) = 0;
65
66 virtual void removeDoFs(Int32ConstArrayView items_local_id) = 0;
67
68 /*!
69 * \sa IItemFamily::endUpdate().
70 */
71 virtual void endUpdate() = 0;
72
73 virtual IItemFamily* itemFamily() = 0;
74};
75
76/*---------------------------------------------------------------------------*/
77/*---------------------------------------------------------------------------*/
78
79} // namespace Arcane
80
81/*---------------------------------------------------------------------------*/
82/*---------------------------------------------------------------------------*/
83
84#endif
Declarations of Arcane's general types.
Declarations of types on entities.
Interface of a DoF family.
Definition IDoFFamily.h:34
virtual String fullName() const =0
Full name of the family (including the mesh name).
virtual String name() const =0
Name of the family.
virtual Integer nbItem() const =0
Number of entities.
virtual DoFVectorView addDoFs(Int64ConstArrayView dof_uids, Int32ArrayView dof_lids)=0
Input is the DoF uids and we retrieve their lids.
virtual ItemGroup allItems() const =0
Group of all DoFs.
virtual void endUpdate()=0
virtual DoFVectorView addGhostDoFs(Int64ConstArrayView dof_uids, Int32ArrayView dof_lids, Int32ConstArrayView owners)=0
Adding ghosts must be followed by a call to computeSynchronizeInfos.
Interface of an entity family.
Definition IItemFamily.h:83
Mesh entity group.
Definition ItemGroup.h:51
ItemVectorViewT< DoF > DoFVectorView
View over a vector of degrees of freedom.
Definition ItemTypes.h:316
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.
ConstArrayView< Int32 > Int32ConstArrayView
C equivalent of a 1D array of 32-bit integers.
Definition UtilsTypes.h:482
ConstArrayView< Int64 > Int64ConstArrayView
C equivalent of a 1D array of 64-bit integers.
Definition UtilsTypes.h:480
ArrayView< Int32 > Int32ArrayView
C equivalent of a 1D array of 32-bit integers.
Definition UtilsTypes.h:453