OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
ParticleDebugFunctions.cpp
Go to the documentation of this file.
1// -*- C++ -*-
2/***************************************************************************
3 *
4 * The IPPL Framework
5 *
6 * This program was prepared by PSI.
7 * All rights in the program are reserved by PSI.
8 * Neither PSI nor the author(s)
9 * makes any warranty, express or implied, or assumes any liability or
10 * responsibility for the use of this software
11 *
12 * Visit www.amas.web.psi for more details
13 *
14 ***************************************************************************/
15
16// -*- C++ -*-
17//-----------------------------------------------------------------------------
18// The IPPL Framework - Visit http://people.web.psi.ch/adelmann/ for more details
19//
20// This program was prepared by the Regents of the University of California at
21// ParticleDebugFunctions.h , Tim Williams 8/6/1998
22// Helper functions to print out (formatted ASCII) ParticleAttrib elements.
23// Intended mainly for use from within a debugger, called interactively, but
24// also callable as template functions from source code. To call from many
25// debuggers, the user has to provide nontemplate wrapper functions, as
26// described in ParticleDebugFunctions.cpp.
27
28// include files
29
30#include "Utility/PAssert.h"
31#include "Utility/IpplInfo.h"
33
34// forward class declarations
35//class Inform;
36
37//----------------------------------------------------------------------
38// Set up the I/O "stream" (IPPL Inform object) format where the output goes.
39// This "sticks around" once set until re-set.
40//----------------------------------------------------------------------
41Inform* PtclDbgInform; // Pointer to active Inform object
42bool PtclDbgInformIsSet = false; // Flags whether pointer is set
43void setPtclDbgInform(Inform& inform) {
44
45 PtclDbgInform = &inform;
46 PtclDbgInformIsSet = true;
47}
48
49//-----------------------------------------------------------------------------
50// Set up some pre-instantiated common template particle debug functions, for
51// common ParticleAttrib types.
52// Uncallable from the debuggers I've tried, so comment out and use named
53// nontemplate function workaraound below. --TJW 8/7/98
54//-----------------------------------------------------------------------------
55// Forward template function declarations
56// template<class T>
57// void pap(ParticleAttrib<T>& pattr, bool docomm);
58// template<class T>
59// void epap(ParticleAttrib<T>& pattr, int i, bool docomm);
60// template<class T>
61// void spap(ParticleAttrib<T>& pattr,
62// int ibase, int ibound, int istride, bool docomm);
63// #include "Utility/ParticleDebug.h"
64
65// Need these additional forward class declarations as well
66// template<class T> class ParticleAttrib;
67// template<class T, unsigned D> class Vektor;
68
69// template void epap(ParticleAttrib<double>& pattr, int i, bool docomm);
70// template void spap(ParticleAttrib<double>& pattr, int base, int bnd,
71// int stride, bool docomm);
72// template void epap(ParticleAttrib<int>& pattr, int i, bool docomm);
73// template void spap(ParticleAttrib<int>& pattr, int base, int bnd,
74// int stride, bool docomm);
75
76//-----------------------------------------------------------------------------
77// Named nontemplate function workaraound: --TJW 8/7/98
78// Users should put functions like these examples somewhere in their own source
79// modules, to get access from brain-dead debuggers like the SGI debugger cvd,
80// which can't invoke template functions, and gets confused by multipple
81// prototypes (making it necessary to embed all this information into the names
82// of separately-defined functions).
83//-----------------------------------------------------------------------------
84// void dpap(ParticleAttrib<double>& pattr, bool docomm) {
85// pap(pattr, docomm);
86// }
87// void depap(ParticleAttrib<double>& pattr, int i, bool docomm) {
88// epap(pattr, i, docomm);
89// }
90// void dspap(ParticleAttrib<double>& pattr, int base, int bnd, int stride,
91// bool docomm) {
92// spap(pattr, base, bnd, stride, docomm);
93// }
94// void fpap(ParticleAttrib<float>& pattr, bool docomm) {
95// pap(pattr, docomm);
96// }
97// void fepap(ParticleAttrib<float>& pattr, int i, bool docomm) {
98// epap(pattr, i, docomm);
99// }
100// void fspap(ParticleAttrib<float>& pattr, int base, int bnd, int stride,
101// bool docomm) {
102// spap(pattr, base, bnd, stride, docomm);
103// }
104// void ipap(ParticleAttrib<int>& pattr, bool docomm) {
105// pap(pattr, docomm);
106// }
107// void iepap(ParticleAttrib<int>& pattr, int i, bool docomm) {
108// epap(pattr, i, docomm);
109// }
110// void ispap(ParticleAttrib<int>& pattr, int base, int bnd, int stride,
111// bool docomm) {
112// spap(pattr, base, bnd, stride, docomm);
113// }
114// void bpap(ParticleAttrib<bool>& pattr, bool docomm) {
115// pap(pattr, docomm);
116// }
117// void bepap(ParticleAttrib<bool>& pattr, int i, bool docomm) {
118// epap(pattr, i, docomm);
119// }
120// void bspap(ParticleAttrib<bool>& pattr, int base, int bnd, int stride,
121// bool docomm) {
122// spap(pattr, base, bnd, stride, docomm);
123// }
124// void dv1pap(ParticleAttrib<Vektor<double,1> >& pattr, bool docomm) {
125// pap(pattr, docomm);
126// }
127// void dv1epap(ParticleAttrib<Vektor<double,1> >& pattr, int i, bool docomm) {
128// epap(pattr, i, docomm);
129// }
130// void dv1spap(ParticleAttrib<Vektor<double,1> >& pattr, int base, int bnd,
131// int stride, bool docomm) {
132// spap(pattr, base, bnd, stride, docomm);
133// }
134// void dv2pap(ParticleAttrib<Vektor<double,2> >& pattr, bool docomm) {
135// pap(pattr, docomm);
136// }
137// void dv2epap(ParticleAttrib<Vektor<double,2> >& pattr, int i, bool docomm) {
138// epap(pattr, i, docomm);
139// }
140// void dv2spap(ParticleAttrib<Vektor<double,2> >& pattr, int base, int bnd,
141// int stride, bool docomm) {
142// spap(pattr, base, bnd, stride, docomm);
143// }
144// void dv3pap(ParticleAttrib<Vektor<double,3> >& pattr, bool docomm) {
145// pap(pattr, docomm);
146// }
147// void dv3epap(ParticleAttrib<Vektor<double,3> >& pattr, int i, bool docomm) {
148// epap(pattr, i, docomm);
149// }
150// void dv3spap(ParticleAttrib<Vektor<double,3> >& pattr, int base, int bnd,
151// int stride, bool docomm) {
152// spap(pattr, base, bnd, stride, docomm);
153// }
154// void fv1pap(ParticleAttrib<Vektor<float,1> >& pattr, bool docomm) {
155// pap(pattr, docomm);
156// }
157// void fv1epap(ParticleAttrib<Vektor<float,1> >& pattr, int i, bool docomm) {
158// epap(pattr, i, docomm);
159// }
160// void fv1spap(ParticleAttrib<Vektor<float,1> >& pattr, int base, int bnd,
161// int stride, bool docomm) {
162// spap(pattr, base, bnd, stride, docomm);
163// }
164// void fv2pap(ParticleAttrib<Vektor<float,2> >& pattr, bool docomm) {
165// pap(pattr, docomm);
166// }
167// void fv2epap(ParticleAttrib<Vektor<float,2> >& pattr, int i, bool docomm) {
168// epap(pattr, i, docomm);
169// }
170// void fv2spap(ParticleAttrib<Vektor<float,2> >& pattr, int base, int bnd,
171// int stride, bool docomm) {
172// spap(pattr, base, bnd, stride, docomm);
173// }
174// void fv3pap(ParticleAttrib<Vektor<float,3> >& pattr, bool docomm) {
175// pap(pattr, docomm);
176// }
177// void fv3epap(ParticleAttrib<Vektor<float,3> >& pattr, int i, bool docomm) {
178// epap(pattr, i, docomm);
179// }
180// void fv3spap(ParticleAttrib<Vektor<float,3> >& pattr, int base, int bnd,
181// int stride, bool docomm) {
182// spap(pattr, base, bnd, stride, docomm);
183// }
184
185// $Id: ParticleDebugFunctions.cpp,v 1.1.1.1 2003/01/23 07:40:33 adelmann Exp $
186
187/***************************************************************************
188 * $RCSfile: addheaderfooter,v $ $Author: adelmann $
189 * $Revision: 1.1.1.1 $ $Date: 2003/01/23 07:40:17 $
190 * IPPL_VERSION_ID: $Id: addheaderfooter,v 1.1.1.1 2003/01/23 07:40:17 adelmann Exp $
191 ***************************************************************************/
192
bool PtclDbgInformIsSet
Inform * PtclDbgInform
void setPtclDbgInform(Inform &inform)
Definition: Inform.h:42