OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
Tags.h
Go to the documentation of this file.
1// -*- C++ -*-
2/***************************************************************************
3 *
4 * The IPPL Framework
5 *
6 *
7 * Visit http://people.web.psi.ch/adelmann/ for more details
8 *
9 ***************************************************************************/
10
11#ifndef TAGS_H
12#define TAGS_H
13
14/*
15 * Tags.h - list of special tags used by each major component in the ippl
16 * library. When a new general communication cycle (i.e. swapping
17 * boundaries) is added, a new item should be added to this list.
18 * BH, 6/19/95
19 *
20 * Updated for beta, JVWR, 7/27/96
21 */
22
23// special tag used to indicate the program should quit. The values are
24// arbitrary, but non-zero.
25#define IPPL_ABORT_TAG 5 // program should abort()
26#define IPPL_EXIT_TAG 6 // program should exit()
27#define IPPL_RETRANSMIT_TAG 7 // node should resend a message
28#define IPPL_MSG_OK_TAG 8 // some messages were sent correctly
29
30
31// tags for reduction
32#define COMM_REDUCE_SEND_TAG 10000
33#define COMM_REDUCE_RECV_TAG 11000
34#define COMM_REDUCE_SCATTER_TAG 12000
35#define COMM_REDUCE_CYCLE 1000
36
37
38// tag for applying parallel periodic boundary condition.
39
40#define BC_PARALLEL_PERIODIC_TAG 15000
41#define BC_TAG_CYCLE 1000
42
43// Field<T,Dim> tags
44#define F_GUARD_CELLS_TAG 20000 // Field::fillGuardCells()
45#define F_WRITE_TAG 21000 // Field::write()
46#define F_READ_TAG 22000 // Field::read()
47#define F_GEN_ASSIGN_TAG 23000 // assign(BareField,BareField)
48#define F_REPARTITION_BCAST_TAG 24000 // broadcast in FieldLayout::repartion.
49#define F_REDUCE_PERP_TAG 25000 // reduction in binary load balance.
50#define F_GETSINGLE_TAG 26000 // IndexedBareField::getsingle()
51#define F_REDUCE_TAG 27000 // Reduction in minloc/maxloc
52#define F_LAYOUT_IO_TAG 28000 // Reduction in minloc/maxloc
53#define F_TAG_CYCLE 1000
54
55// Tags for FieldView and FieldBlock
56#define FV_2D_TAG 30000 // FieldView::update_2D_data()
57#define FV_3D_TAG 31000 // FieldView::update_2D_data()
58#define FV_TAG_CYCLE 1000
59
60#define FB_WRITE_TAG 32000 // FieldBlock::write()
61#define FB_READ_TAG 33000 // FieldBlock::read()
62#define FB_TAG_CYCLE 1000
63
64#define FP_GATHER_TAG 34000 // FieldPrint::print()
65#define FP_TAG_CYCLE 1000
66
67// Tags for DiskField
68#define DF_MAKE_HOST_MAP_TAG 35000
69#define DF_FIND_RECV_NODES_TAG 36000
70#define DF_QUERY_TAG 37000
71#define DF_READ_TAG 38000
72#define DF_OFFSET_TAG 39000
73#define DF_READ_META_TAG 40000
74#define DF_TAG_CYCLE 1000
75
76// Special tags used by Particle classes for communication.
77#define P_WEIGHTED_LAYOUT_TAG 50000
78#define P_WEIGHTED_RETURN_TAG 51000
79#define P_WEIGHTED_TRANSFER_TAG 52000
80#define P_SPATIAL_LAYOUT_TAG 53000
81#define P_SPATIAL_RETURN_TAG 54000
82#define P_SPATIAL_TRANSFER_TAG 55000
83#define P_SPATIAL_GHOST_TAG 56000
84#define P_SPATIAL_RANGE_TAG 57000
85#define P_RESET_ID_TAG 58000
86#define P_LAYOUT_CYCLE 1000
87
88// Tags for Ippl setup
89#define IPPL_MAKE_HOST_MAP_TAG 60000
90#define IPPL_TAG_CYCLE 1000
91
92// Tags for Ippl application codes
93#define IPPL_APP_TAG0 90000
94#define IPPL_APP_TAG1 91000
95#define IPPL_APP_TAG2 92000
96#define IPPL_APP_TAG3 93000
97#define IPPL_APP_TAG4 94000
98#define IPPL_APP_TAG5 95000
99#define IPPL_APP_TAG6 96000
100#define IPPL_APP_TAG7 97000
101#define IPPL_APP_TAG8 98000
102#define IPPL_APP_TAG9 99000
103#define IPPL_APP_CYCLE 1000
104
105#endif // TAGS_H