14#ifndef ARCANE_CORE_MACHINESHMEMWINVARIABLE_H
15#define ARCANE_CORE_MACHINESHMEMWINVARIABLE_H
22#include "arcane/utils/Ref.h"
23#include "arcane/utils/NumArray.h"
25#include "arcane/core/MeshMDVariableRef.h"
27#include "arccore/base/FixedArray.h"
38class MachineShMemWinVariableBase;
39class MachineShMemWinVariable2DBase;
40class MachineShMemWinVariableMDBase;
110template <
class DataType>
170template <
class ItemType,
class DataType>
254template <
class DataType>
283 ARCANE_CORE_EXPORT
void barrier()
const;
330template <
class ItemType,
class DataType>
360 ARCANE_CORE_EXPORT
void barrier()
const;
414 Int32 m_nb_elem_dim2{};
436template <
class ItemType,
class DataType,
class Extents>
468 ARCANE_CORE_EXPORT
void barrier()
const;
521 Int32 m_nb_elem_dim2{};
522 std::array<
Int32, Extents::rank()> m_shape_dim2{};
544template <
class ItemType,
class DataType,
class Extents>
581template <
class ItemType,
class DataType,
class Extents>
585 using AddedFirstExtentsType = Extents::template AddedFirstExtentsType<DynExtent>;
593 template <Int32 Size>
620template <
class ItemType,
class DataType,
class Extents>
622:
public MachineShMemWinMDVariableT<ItemType, DataType, typename Extents::template AddedFirstLastExtentsType<DynExtent, DynExtent>>
624 using AddedFirstLastExtentsType = Extents::template AddedFirstLastExtentsType<DynExtent, DynExtent>;
632 template <Int32 Row, Int32 Column>
Declarations of Arcane's general types.
Constant view of an array of type T.
Base class for multi-dimensional 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.