Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
ParallelMngUtilsFactoryBase.cc
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/* ParallelMngUtilsFactoryBase.cc (C) 2000-2025 */
9/* */
10/* Base class of a factory for utility functions of IParallelMng. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/impl/internal/ParallelMngUtilsFactoryBase.h"
15
16#include "arcane/utils/Real2.h"
17#include "arcane/utils/Real3.h"
18#include "arcane/utils/Real2x2.h"
19#include "arcane/utils/Real3x3.h"
20
21#include "arcane/impl/GetVariablesValuesParallelOperation.h"
22#include "arcane/impl/TransferValuesParallelOperation.h"
23#include "arcane/impl/ParallelExchanger.h"
24#include "arcane/impl/ParallelTopology.h"
25#include "arcane/impl/internal/VariableSynchronizer.h"
26
27#include "arcane/core/DataTypeDispatchingDataVisitor.h"
28#include "arcane/core/IItemFamily.h"
29#include "arcane/core/internal/SerializeMessage.h"
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33
34namespace Arcane
35{
36
37/*---------------------------------------------------------------------------*/
38/*---------------------------------------------------------------------------*/
39
45
46/*---------------------------------------------------------------------------*/
47/*---------------------------------------------------------------------------*/
48
54
55/*---------------------------------------------------------------------------*/
56/*---------------------------------------------------------------------------*/
57
60{
61 return createParallelExchangerImpl(makeRef(pm));
62}
63
64/*---------------------------------------------------------------------------*/
65/*---------------------------------------------------------------------------*/
66
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
77
84
85/*---------------------------------------------------------------------------*/
86/*---------------------------------------------------------------------------*/
87
94
95/*---------------------------------------------------------------------------*/
96/*---------------------------------------------------------------------------*/
97
100{
101 Int32 my_rank = pm->commRank();
102 auto x = new SerializeMessage(my_rank, rank, ISerializeMessage::MT_Send);
104}
105
106/*---------------------------------------------------------------------------*/
107/*---------------------------------------------------------------------------*/
108
111{
112 Int32 my_rank = pm->commRank();
113 auto x = new SerializeMessage(my_rank, rank, ISerializeMessage::MT_Recv);
115}
116
117/*---------------------------------------------------------------------------*/
118/*---------------------------------------------------------------------------*/
119
120} // End namespace Arcane
121
122/*---------------------------------------------------------------------------*/
123/*---------------------------------------------------------------------------*/
Operations to access variable values from another subdomain.
Interface of an entity family.
Definition IItemFamily.h:83
virtual ItemGroup allItems() const =0
Group of all entities.
Interface of the parallelism manager for a subdomain.
virtual Int32 commRank() const =0
Rank of this instance in the communicator.
Mesh entity group.
Definition ItemGroup.h:51
Ref< IVariableSynchronizer > createSynchronizer(IParallelMng *pm, IItemFamily *family) override
Returns an interface to synchronize variables on the group of the family family.
Ref< IGetVariablesValuesParallelOperation > createGetVariablesValuesOperation(IParallelMng *pm) override
Returns an operation to retrieve the values of a variable on the entities of another subdomain.
Ref< ISerializeMessage > createReceiveSerializeMessage(IParallelMng *pm, Int32 rank) override
Creates a non-blocking serialization message for receiving from rank rank.
Ref< ITransferValuesParallelOperation > createTransferValuesOperation(IParallelMng *pm) override
Returns an operation to transfer values between ranks.
Ref< IParallelExchanger > createExchanger(IParallelMng *pm) override
Returns an interface to transfer messages between ranks.
Ref< IParallelTopology > createTopology(IParallelMng *pm) override
Creates an instance containing information about the rank topology of this manager.
Ref< ISerializeMessage > createSendSerializeMessage(IParallelMng *pm, Int32 rank) override
Creates a non-blocking serialization message for sending to rank rank.
Information on the topology for allocating computing cores.
virtual void initialize()
Initializes the instance. This operation is collective.
Reference to an instance.
Message using a SerializeBuffer.
Operations to transfer values to other subdomains.
Interface of a variable synchronization service.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
auto makeRef(InstanceType *t) -> Ref< InstanceType >
Creates a reference on a pointer.
std::int32_t Int32
Signed integer type of 32 bits.