Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
IGatherGroup.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/* IGatherGroup.h (C) 2000-2026 */
9/* */
10/* Interface for managing groupings across a limited number of subdomains. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#ifndef ARCANE_CORE_INTERNAL_IGATHERGROUP_H
15#define ARCANE_CORE_INTERNAL_IGATHERGROUP_H
16
17/*---------------------------------------------------------------------------*/
18/*---------------------------------------------------------------------------*/
19
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
35class ARCANE_CORE_EXPORT IGatherGroup
36{
37
38 public:
39
40 virtual ~IGatherGroup() = default;
41
42 public:
43
51 virtual bool isNeedGather() = 0;
52
63 virtual void gatherToMasterIO(Int64 sizeof_elem, Span<const Byte> in, Span<Byte> out) = 0;
64};
65
66/*---------------------------------------------------------------------------*/
67/*---------------------------------------------------------------------------*/
68
73class ARCANE_CORE_EXPORT IGatherGroupInfo
74{
75 public:
76
77 virtual ~IGatherGroupInfo() = default;
78
79 public:
80
92 virtual void computeSize(Int32 nb_elem_in) = 0;
93
98 virtual void setNeedRecompute() = 0;
99
104 virtual bool isComputed() = 0;
105
110 virtual Int32 nbElemOutput() = 0;
111
118 virtual Int32 sizeOfOutput(Int32 sizeof_type) = 0;
119
125
129 virtual Int32 nbWriterGlobal() = 0;
130};
131
132/*---------------------------------------------------------------------------*/
133/*---------------------------------------------------------------------------*/
134
135} // End namespace Arcane
136
137/*---------------------------------------------------------------------------*/
138/*---------------------------------------------------------------------------*/
139
140#endif
Declarations of Arcane's general types.
Interface class allowing the calculation and storage of grouping information.
virtual SmallSpan< Int32 > nbElemRecvGatherToMasterIO()=0
Method allowing knowledge of the number of elements that each third-party subdomain will send to us.
virtual void computeSize(Int32 nb_elem_in)=0
Method allowing the calculation of grouping information.
virtual Int32 nbElemOutput()=0
Method allowing knowledge of the number of elements that our subdomain must process after reception.
virtual Int32 sizeOfOutput(Int32 sizeof_type)=0
Method allowing knowledge of the size, in bytes, of the set of elements that our subdomain must proce...
virtual Int32 nbWriterGlobal()=0
Method allowing knowledge of the number of writing subdomains.
virtual void setNeedRecompute()=0
Method allowing a request for recalculation of grouping information. To do this, the method computeSi...
virtual bool isComputed()=0
Method allowing determination of whether the method computeSize() has already been called.
Interface class allowing the grouping of data from certain subdomains onto other subdomains.
virtual void gatherToMasterIO(Int64 sizeof_elem, Span< const Byte > in, Span< Byte > out)=0
Method allowing the grouping of data from multiple subdomains onto one or more subdomains.
virtual bool isNeedGather()=0
Method allowing determination of whether the grouping needs to be performed or if the data can be wri...
View of an array of elements of type T.
Definition Span.h:805
View of an array of elements of type T.
Definition Span.h:635
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
std::int64_t Int64
Signed integer type of 64 bits.
std::int32_t Int32
Signed integer type of 32 bits.