13#ifndef ARCANE_CORE_MACHINESHMEMWINVARIABLE_H
14#define ARCANE_CORE_MACHINESHMEMWINVARIABLE_H
18#include "arccore/base/FixedArray.h"
22#include "arcane/utils/Ref.h"
23#include "arcane/utils/NumArray.h"
25#include "arcane/core/MeshMDVariableRef.h"
26#include "arcane/core/MeshMatrixMDVariableRef.h"
27#include "arcane/core/MeshVectorMDVariableRef.h"
39class MachineShMemWinVariableBase;
40class MachineShMemWinVariable2DBase;
41class MachineShMemWinVariableMDBase;
111template <
class DataType>
171template <
class ItemType,
class DataType>
255template <
class DataType>
284 ARCANE_CORE_EXPORT
void barrier()
const;
331template <
class ItemType,
class DataType>
361 ARCANE_CORE_EXPORT
void barrier()
const;
415 Int32 m_nb_elem_dim2{};
437template <
class ItemType,
class DataType,
class Extents>
469 ARCANE_CORE_EXPORT
void barrier()
const;
522 Int32 m_nb_elem_dim2{};
523 std::array<
Int32, Extents::rank()> m_shape_dim2{};
545template <
class ItemType,
class DataType,
class Extents>
582template <
class ItemType,
class DataType,
class Extents>
586 using AddedFirstExtentsType = Extents::template AddedFirstExtentsType<DynExtent>;
594 template <Int32 Size>
621template <
class ItemType,
class DataType,
class Extents>
623:
public MachineShMemWinMDVariableT<ItemType, DataType, typename Extents::template AddedFirstLastExtentsType<DynExtent, DynExtent>>
625 using AddedFirstLastExtentsType = Extents::template AddedFirstLastExtentsType<DynExtent, DynExtent>;
633 template <Int32 Row, Int32 Column>
Declarations of Arcane's general types.
Constant view of an array of type T.
Base class for multidimensional views.
MachineShMemWinMDVariableT(MeshVariableArrayRefT< ItemType, DataType > var)
Constructor.
MDSpan< DataType, Extents > operator()(Int32 rank, Int32 notlocal_id)
Method to get the multi-dimensional array of an item from another subdomain.
ConstArrayView< Int32 > machineRanks() const
Method to get the ranks that possess a segment in the window.
MDSpan< DataType, typename MDDimType< Extents::rank()+1 >::DimType > view(Int32 rank) const
Method to get a view of the variable from another subdomain on the node.
void updateVariable()
Method to update this object after a change in the mesh and/or after a resizing of the variable.
void barrier() const
Method to wait until all processes/threads on the node call this method to continue execution.
Class allowing access to shared elements of the variable in shared memory.
MachineShMemWinMeshMDVariableT(MeshMDVariableRefT< ItemType, DataType, Extents > var)
Constructor.
Class allowing access to shared elements of the variable in shared memory.
MachineShMemWinMeshMatrixMDVariableT(MeshMatrixMDVariableRefT< ItemType, DataType, Row, Column, Extents > var)
Constructor.
void updateVariable()
Method to update this object after a change in the mesh and/or after a resizing of the variable.
Span2< DataType > view(Int32 rank) const
Method to get a view of the variable from another subdomain on the node.
void barrier() const
Method to wait until all processes/threads on the node call this method to continue execution.
Span< DataType > operator()(Int32 rank, Int32 notlocal_id)
Method to get the array of an item from another subdomain.
MachineShMemWinMeshVariableArrayT(MeshVariableArrayRefT< ItemType, DataType > var)
Constructor.
ConstArrayView< Int32 > machineRanks() const
Method to get the ranks that possess a segment in the window.
void updateVariable()
Method allowing updating this object after a change in the mesh.
DataType operator()(Int32 rank, Int32 notlocal_id)
Method allowing retrieval of an element of the variable from another subdomain.
Span< DataType > view(Int32 rank) const
Method allowing retrieval of a view on the variable of another subdomain on the node.
MachineShMemWinMeshVariableScalarT(MeshVariableScalarRefT< ItemType, DataType > var)
Constructor.
Class allowing access to shared elements of the variable in shared memory.
MachineShMemWinMeshVectorMDVariableT(MeshVectorMDVariableRefT< ItemType, DataType, Size, Extents > var)
Constructor.
ConstArrayView< Int32 > machineRanks() const
Method allowing retrieval of ranks that possess a segment in the window.
Span2< DataType > view(Int32 rank) const
Method allowing retrieval of a view on the array of another subdomain on the node.
MachineShMemWinVariableArray2T(VariableRefArray2T< DataType > var)
Constructor.
void barrier() const
Method allowing waiting until all processes/threads on the node call this method to continue executio...
void updateVariable()
Method allowing updating this object after a resizing of the variable.
MachineShMemWinVariableArrayT(VariableRefArrayT< DataType > var)
Constructor.
Span< DataType > view(Int32 rank) const
Method allowing retrieval of a view on the array of another subdomain on the node.
void updateVariable()
Method allowing updating this object after a resizing of the variable.
void barrier() const
Method allowing waiting until all processes/threads on the node call this method to continue executio...
ConstArrayView< Int32 > machineRanks() const
Method allowing retrieval of ranks that possess a segment in the window.
MachineShMemWinVariableCommon(IVariable *var)
Constructor.
Class managing a multi-dimensional variable on a mesh entity.
Class managing a multi-dimensional NumMatrix type variable on a mesh entity.
Array variable on a mesh entity type.
Scalar variable on a mesh entity type.
Class managing a multi-dimensional NumVector type variable on a mesh entity.
Reference to an instance.
View for a 2D array whose size is an 'Int64'.
View of an array of elements of type T.
Two-dimensional array variable.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
std::int32_t Int32
Signed integer type of 32 bits.