Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
ITransferValuesParallelOperation.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/* ITransferValuesParallelOperation.h (C) 2000-2025 */
9/* */
10/* Value transfer across different processors. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_ITRANSFERVALUESPARALLELOPERATION_H
13#define ARCANE_CORE_ITRANSFERVALUESPARALLELOPERATION_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/Array.h"
18
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
105class ARCANE_CORE_EXPORT ITransferValuesParallelOperation
106{
107 public:
108
111
112 public:
113
115 virtual IParallelMng* parallelMng() = 0;
116
117 public:
118
120 virtual void setTransferRanks(Int32ConstArrayView ranks) = 0;
122 virtual void addArray(Int32ConstArrayView send_values, SharedArray<Int32> recv_value) = 0;
124 virtual void addArray(Int64ConstArrayView send_values, SharedArray<Int64> recv_values) = 0;
126 virtual void addArray(RealConstArrayView send_values, SharedArray<Real> recv_values) = 0;
132 virtual void transferValues() = 0;
133};
134
135/*---------------------------------------------------------------------------*/
136/*---------------------------------------------------------------------------*/
137
138} // namespace Arcane
139
140/*---------------------------------------------------------------------------*/
141/*---------------------------------------------------------------------------*/
142
143#endif
Declarations of Arcane's general types.
Interface of the parallelism manager for a subdomain.
Sends values across different processors.
virtual void addArray(Int32ConstArrayView send_values, SharedArray< Int32 > recv_value)=0
Adds an array of Int32.
virtual void addArray(RealConstArrayView send_values, SharedArray< Real > recv_values)=0
Adds an array of Int64.
virtual ~ITransferValuesParallelOperation()=default
Destructor.
virtual void transferValues()=0
Sends and receives values.
virtual void addArray(Int64ConstArrayView send_values, SharedArray< Int64 > recv_values)=0
Adds an array of Int64.
virtual IParallelMng * parallelMng()=0
Associated parallelism manager.
virtual void setTransferRanks(Int32ConstArrayView ranks)=0
Positions the array indicating who to send the values to.
1D vector of data with reference semantics.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
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
ConstArrayView< Real > RealConstArrayView
C equivalent of a 1D array of reals.
Definition UtilsTypes.h:488