51 "/*--------------------------------*- BHgpu -*----------------*---------------*\\" <<
'\n' << \
52 "| ##### ## ## | | Version 1.5 |" <<
'\n' << \
53 "| ## ## ## ## #### ## ## | BHcu: Barnes-Hut method | 2023/08/29 |" <<
'\n' << \
54 "| ##### ###### ## ## ## | for 2D vortex particles *----------------*" <<
'\n' << \
55 "| ## ## ## ## ## ## ## | Open Source Code |" <<
'\n' << \
56 "| ##### ## ## #### #### | https://www.github.com/vortexmethods/fastm |" <<
'\n' << \
58 "| Copyright (C) 2020-2023 I. Marchevsky, E. Ryatina, A. Kolganova |" <<
'\n' << \
59 "| Copyright (C) 2013, Texas State University-San Marcos. All rights reserved. |" <<
'\n' << \
60 "\\*---------------------------------------------------------------------------*/" <<
'\n';
66 std::cout << std::endl;
67 std::cout <<
" Configuration for task \"" <<
task <<
"\"" << std::endl;
68 std::cout <<
"------------------------------------------------------------------------" << std::endl;
69 std::cout <<
"Floating point type: " << (
sizeof(
real) == 4 ?
"float" :
"double") <<
" (" <<
sizeof(
real) <<
" bytes)" << std::endl;
70 std::cout <<
"Number of bodies: " << nbodies <<
" (eps = " <<
EPS <<
")" << std::endl;
71 std::cout <<
"Multipoles: " <<
"up to " <<
order <<
"-th order" << std::endl;
72 std::cout <<
"Theta in proximity criterion: " <<
THETA << std::endl;
73 std::cout <<
"Compare/save: " << (
compare ?
"true" :
"false") <<
"/" << (
save ?
"true" :
"false") << std::endl;
74 std::cout <<
"------------------------------------------------------------------------" << std::endl;
80 const float* timing,
const float* mintiming,
const float* avtiming,
81 double runtime,
double minruntime,
double avruntime)
85 std::cout << std::endl;
86 std::cout <<
" Time statistics " << std::endl;
87 std::cout <<
"------------------------------------------------------------------------" << std::endl;
88 std::cout <<
" run/runs total BBK TBK CLK SKK FCK ker.time " << std::endl;
92 printf(
"# %3d/%-3d: %6.3lf s (", run + 1, runs, runtime);
94 printf(
" %3.1f ", timing[1]);
95 printf(
" %4.1f ", timing[2]);
96 printf(
" %4.1f ", timing[3]);
97 printf(
" %4.1f ", timing[4]);
98 printf(
" %6.1f ", timing[5]);
100 printf(
") = %6.1f ms\n", timing[6]);
104 std::cout <<
"------------------------------------------------------------------------" << std::endl;
106 printf(
" min : %6.3lf s (", minruntime);
108 printf(
" %3.1f ", mintiming[1]);
109 printf(
" %4.1f ", mintiming[2]);
110 printf(
" %4.1f ", mintiming[3]);
111 printf(
" %4.1f ", mintiming[4]);
112 printf(
" %6.1f ", mintiming[5]);
113 printf(
") | %6.1f ms\n", mintiming[6]);
116 printf(
" aver : %6.3lf s (", avruntime / runs);
118 printf(
" %3.1f ", avtiming[1] / runs);
119 printf(
" %4.1f ", avtiming[2] / runs);
120 printf(
" %4.1f ", avtiming[3] / runs);
121 printf(
" %4.1f ", avtiming[4] / runs);
122 printf(
" %6.1f ", avtiming[5] / runs);
123 printf(
") | %6.1f ms\n", avtiming[6] / runs);
130 std::cout << std::endl;
131 std::cout <<
" Accuracy control " << std::endl;
132 std::cout <<
"------------------------------------------------------------------------" << std::endl;
137 std::cout <<
"Relative error: " << val << std::endl;
139 std::cout <<
"------------------------------------------------------------------------" << std::endl;
void PrintStatistics(int run, int runs, const float *timing, const float *mintiming, const float *avtiming, double runtime, double minruntime, double avruntime)
void PrintLogoToStream(std::ostream &str)
void PrintConfiguration(int nbodies)
static const std::string task
#define THETA
Параметр точности
Параметры решаемой задачи
void PrintAccuracyError(real val)
#define EPS
Радиус вихревого элемента
static const bool compare