Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// ============================================================================
// == ==
// == AMDiS - Adaptive multidimensional simulations ==
// == ==
// ============================================================================
// == ==
// == TU Dresden ==
// == ==
// == Institut für Wissenschaftliches Rechnen ==
// == Zellescher Weg 12-14 ==
// == 01069 Dresden ==
// == germany ==
// == ==
// ============================================================================
// == ==
// == https://gforge.zih.tu-dresden.de/projects/amdis/ ==
// == ==
// ============================================================================
/** \file ParallelDomainDbg.h */
#ifndef AMDIS_PARALLELDOMAINDBG_H
#define AMDIS_PARALLELDOMAINDBG_H
#include "parallel/ParallelDomainBase.h"
namespace AMDiS {
class ParallelDomainDbg {
public:
/** \brief
* Tests the interior boundaries on all ranks if their order fits together.
*
* \param[in] pdb Parallel problem definition used for debugging.
*/
static void testInteriorBoundary(ParallelDomainBase &pdb);
/** \brief
* This function is used for debugging only. It traverses all interior boundaries
* and compares the dof indices on them with the dof indices of the boundarys
* neighbours. The function fails, when dof indices on an interior boundary do
* not fit together.
*
* \param[in] pdb Parallel problem definition used for debugging.
* \param[in] printCoords If true, the coords of all common dofs are printed
* to the screen.
*/
static void testCommonDofs(ParallelDomainBase &pdb, bool printCoords = false);
/** \brief
* Tests if all elements in the macro mesh are memeber of exactly one rank.
*
* \param[in] pdb Parallel problem definition used for debugging.
*/
static void testAllElements(ParallelDomainBase &pdb);
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/** \brief
* This function is used for debugging only. It prints all information from
* the local to global dof mapping, see \ref mapLocalGlobalDofs.
*
* \param[in] pdb Parallel problem definition used for debugging.
* \param[in] rank If specified, only the information from the given rank
* is printed.
*/
static void printMapLocalGlobal(ParallelDomainBase &pdb, int rank = -1);
/** \brief
* This function is used for debugging only. It prints all information about
* the periodic mapping of dofs, that are on periodic boundaries.
*
* \param[in] pdb Parallel problem definition used for debugging.
* \param[in] rank If specified, only the information from the given rank
* is printed.
*/
static void printMapPeriodic(ParallelDomainBase &pdb, int rank = -1);
/** \brief
* This function is used for debugging only. It prints information about dofs
* in rank's partition.
*
* \param[in] pdb Parallel problem definition used for debugging.
* \param[in] rank If specified, only the information from the given
* rank is printed.
* \param[in] rankDofs List of all dofs in ranks partition that are owned
* by rank.
* \param[in] rankAllDofs List of all dofs in ranks partition.
*/
static void printRankDofs(ParallelDomainBase &pdb,
int rank,
DofContainer& rankDofs,
DofContainer& rankAllDofs);
};
} // namespace AMDiS
#endif