39 vector<string>::const_iterator it;
50 std::string lowercase = *it;
51 for(
auto&
c : lowercase)
c = tolower(
c);
56 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
57 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]*3);
60 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
61 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
62 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
63 const auto lid = stencil.ooo();
64 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
72 outputReducer->
addMetadata(outputReducer->
size()-1,
"T",
"$\\mathrm{T}$",
"$B_\\mathrm{fg}$",
"1.0");
77 if(
P::systemWriteAllDROs || lowercase ==
"fg_backgroundb" || lowercase ==
"backgroundb" || lowercase ==
"fg_b_background") {
80 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
81 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]*3);
84 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
85 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
86 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
87 const auto lid = stencil.ooo();
88 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
96 outputReducer->
addMetadata(outputReducer->
size() - 1,
"T",
"$\\mathrm{T}$",
"$B_\\mathrm{bg,fg}$",
"1.0");
101 if(
P::systemWriteAllDROs || lowercase ==
"fg_backgroundbvol" || lowercase ==
"backgroundbvol" || lowercase ==
"fg_b_background_vol") {
104 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
105 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]*3);
108 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
109 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
110 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
111 const auto lid = stencil.ooo();
112 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
120 outputReducer->
addMetadata(outputReducer->
size()-1,
"T",
"$\\mathrm{T}$",
"$B_\\mathrm{bg,vol,fg}$",
"1.0");
126 if(
P::systemWriteAllDROs || lowercase ==
"fg_perturbedb" || lowercase ==
"perturbedb" || lowercase ==
"fg_b_perturbed") {
129 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
130 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]*3);
133 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
134 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
135 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
136 const auto lid = stencil.ooo();
137 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
145 outputReducer->
addMetadata(outputReducer->
size()-1,
"T",
"$\\mathrm{T}$",
"$B_\\mathrm{per,fg}$",
"1.0");
153 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
154 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]*3);
157 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
158 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
159 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
160 const auto lid = stencil.ooo();
161 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
169 outputReducer->
addMetadata(outputReducer->
size()-1,
"V/m",
"$\\mathrm{V}\\,\\mathrm{m}^{-1}$",
"$E$",
"1.0");
176 outputReducer->
addMetadata(outputReducer->
size()-1,
"kg/m^3",
"$\\mathrm{kg}\\,\\mathrm{m}^{-3}$",
"$\\rho_\\mathrm{m}$",
"1.0");
183 outputReducer->
addMetadata(outputReducer->
size()-1,
"m/s",
"$\\mathrm{m}\\,\\mathrm{s}^{-1}$",
"$V$",
"1.0");
191 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
192 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
195 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
196 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
197 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
198 const auto lid = stencil.ooo();
199 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
205 outputReducer->
addMetadata(outputReducer->
size()-1,
"kg/m^3",
"$\\mathrm{kg}\\,\\mathrm{m}^{-3}$",
"$\\rho_\\mathrm{m}$",
"1.0");
212 outputReducer->
addMetadata(outputReducer->
size()-1,
"C/m^3",
"$\\mathrm{C}\\,\\mathrm{m}^{-3}$",
"$\\rho_\\mathrm{q}$",
"1.0");
220 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
221 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
224 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
225 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
226 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
227 const auto lid = stencil.ooo();
228 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
234 outputReducer->
addMetadata(outputReducer->
size()-1,
"C/m^3",
"$\\mathrm{C}\\,\\mathrm{m}^{-3}$",
"$\\rho_\\mathrm{q}$",
"1.0");
242 const std::string& pop =
species.name;
244 outputReducer->
addMetadata(outputReducer->
size()-1,
"1/m^3",
"$\\mathrm{m}^{-3}$",
"$n_\\mathrm{"+pop+
"}$",
"1.0");
253 outputReducer->
addMetadata(outputReducer->
size()-1,
"m/s",
"$\\mathrm{m}\\,\\mathrm{s}^{-1}$",
"$V$",
"1.0");
261 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
262 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]*3);
265 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
266 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
267 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
268 const auto lid = stencil.ooo();
269 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
277 outputReducer->
addMetadata(outputReducer->
size()-1,
"m/s",
"$\\mathrm{m}\\,\\mathrm{s}^{-1}$",
"$V$",
"1.0");
284 outputReducer->
addMetadata(outputReducer->
size()-1,
"1/s",
"$\\mathrm{s}^{-1}$",
"$\\nu_0$",
"1.0");
292 const std::string& pop =
species.name;
294 outputReducer->
addMetadata(outputReducer->
size()-1,
"m/s",
"$\\mathrm{m}\\,\\mathrm{s}^{-1}$",
"$V_\\mathrm{"+pop+
"}$",
"1.0");
300 if(
P::systemWriteAllDROs || lowercase ==
"populations_moments_backstream" || lowercase ==
"populations_moments_nonthermal" || lowercase ==
"populations_vg_moments_nonthermal") {
303 const std::string& pop =
species.name;
308 outputReducer->
addMetadata(outputReducer->
size()-4,
"1/m^3",
"$\\mathrm{m}^{-3}$",
"$n_\\mathrm{"+pop+
",nt}$",
"1.0");
309 outputReducer->
addMetadata(outputReducer->
size()-3,
"m/s",
"$\\mathrm{m}\\,\\mathrm{s}^{-1}$",
"$V_\\mathrm{"+pop+
",nt}$",
"1.0");
310 outputReducer->
addMetadata(outputReducer->
size()-2,
"Pa",
"$\\mathrm{Pa}$",
"$\\mathcal{P}_\\mathrm{"+pop+
",nt}$",
"1.0");
311 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa",
"$\\mathrm{Pa}$",
"$\\mathcal{\\tilde{P}}_\\mathrm{"+pop+
",nt}$",
"1.0");
317 if(
P::systemWriteAllDROs || lowercase ==
"populations_moments_nonbackstream" || lowercase ==
"populations_moments_thermal" || lowercase ==
"populations_vg_moments_thermal") {
320 const std::string& pop =
species.name;
325 outputReducer->
addMetadata(outputReducer->
size()-4,
"1/m^3",
"$\\mathrm{m}^{-3}$",
"$n_\\mathrm{"+pop+
",th}$",
"1.0");
326 outputReducer->
addMetadata(outputReducer->
size()-3,
"m/s",
"$\\mathrm{m}\\,\\mathrm{s}^{-1}$",
"$V_\\mathrm{"+pop+
",th}$",
"1.0");
327 outputReducer->
addMetadata(outputReducer->
size()-2,
"Pa",
"$\\mathrm{Pa}$",
"$\\mathcal{P}_\\mathrm{"+pop+
",th}$",
"1.0");
328 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa",
"$\\mathrm{Pa}$",
"$\\mathcal{\\tilde{P}}_\\mathrm{"+pop+
",th}$",
"1.0");
334 if(
P::systemWriteAllDROs || lowercase ==
"populations_minvalue" || lowercase ==
"populations_effectivesparsitythreshold" || lowercase ==
"populations_vg_effectivesparsitythreshold") {
338 const std::string& pop =
species.name;
340 outputReducer->
addMetadata(outputReducer->
size()-1,
"s^3/m^6",
"$\\mathrm{m}^{-6}\\,\\mathrm{s}^{3}$",
"$f_\\mathrm{"+pop+
",min}$",
"1.0");
346 if(
P::systemWriteAllDROs || lowercase ==
"populations_rholossadjust" || lowercase ==
"populations_rho_loss_adjust" || lowercase ==
"populations_vg_rho_loss_adjust") {
350 const std::string& pop =
species.name;
352 outputReducer->
addMetadata(outputReducer->
size()-1,
"1/m^3",
"$\\mathrm{m}^{-3}$",
"$\\Delta_\\mathrm{loss} n_\\mathrm{"+pop+
"}$",
"1.0");
358 if(
P::systemWriteAllDROs || lowercase ==
"lbweight" || lowercase ==
"vg_lbweight" || lowercase ==
"vg_loadbalanceweight" || lowercase ==
"vg_loadbalance_weight") {
361 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$\\mathrm{LB weight}$",
"");
369 outputReducer->
addMetadata(outputReducer->
size()-1,
"s",
"$\\mathrm{s}$",
"$\\Delta t_\\mathrm{V,max}$",
"1.0");
374 if(
P::systemWriteAllDROs || lowercase ==
"populations_maxvdt" || lowercase ==
"populations_vg_maxdt_acceleration" || lowercase ==
"populations_maxdt_acceleration") {
378 const std::string& pop =
species.name;
380 outputReducer->
addMetadata(outputReducer->
size()-1,
"s",
"$\\mathrm{s}$",
"$\\Delta t_\\mathrm{"+pop+
",V,max}$",
"1.0");
389 outputReducer->
addMetadata(outputReducer->
size()-1,
"s",
"$\\mathrm{s}$",
"$\\Delta t_\\mathrm{R,max}$",
"1.0");
394 if(
P::systemWriteAllDROs || lowercase ==
"populations_maxrdt" || lowercase ==
"populations_vg_maxdt_translation" || lowercase ==
"populations_maxdt_translation") {
398 const std::string& pop =
species.name;
400 outputReducer->
addMetadata(outputReducer->
size()-1,
"s",
"$\\mathrm{s}$",
"$\\Delta t_\\mathrm{"+pop+
",R,max}$",
"1.0");
406 if(
P::systemWriteAllDROs || lowercase ==
"populations_energydensity" || lowercase ==
"populations_vg_energydensity") {
410 const std::string& pop =
species.name;
412 std::stringstream conversion;
414 outputReducer->
addMetadata(outputReducer->
size()-1,
"eV/cm^3",
"$\\mathrm{eV}\\,\\mathrm{cm}^{-3}$",
"$U_\\mathrm{"+pop+
"}$",conversion.str());
420 if(
P::systemWriteAllDROs || lowercase ==
"populations_precipitationflux" || lowercase ==
"populations_vg_precipitationdifferentialflux" || lowercase ==
"populations_precipitationdifferentialflux") {
424 const std::string& pop =
species.name;
426 std::stringstream conversion;
428 outputReducer->
addMetadata(outputReducer->
size()-1,
"1/(cm^2 sr s eV)",
"$\\mathrm{cm}^{-2}\\,\\mathrm{sr}^{-1}\\,\\mathrm{s}^{-1}\\,\\mathrm{eV}^{-1}$",
"$\\mathcal{F}_\\mathrm{"+pop+
"}$",conversion.str());
434 if(
P::systemWriteAllDROs || lowercase ==
"populations_1dmuspace" || lowercase ==
"populations_vg_1dmuspace") {
438 const std::string& pop =
species.name;
440 outputReducer->
addMetadata(outputReducer->
size()-1,
"1/m^3",
"$\\mathrm{m}^{-3}$",
"$f(\\mu)_\\mathrm{"+pop+
"}$",
"1.0");
446 if(
P::systemWriteAllDROs || lowercase ==
"populations_precipitationlineflux" || lowercase ==
"populations_vg_precipitationlinedifferentialflux" || lowercase ==
"populations_precipitationlinedifferentialflux") {
450 const std::string& pop =
species.name;
452 std::stringstream conversion;
454 outputReducer->
addMetadata(outputReducer->
size()-1,
"1/(cm^2 sr s eV)",
"$\\mathrm{cm}^{-2}\\,\\mathrm{sr}^{-1}\\,\\mathrm{s}^{-1}\\,\\mathrm{eV}^{-1}$",
"$\\mathcal{F}_\\mathrm{"+pop+
"}$",conversion.str());
460 if(
P::systemWriteAllDROs || lowercase ==
"populations_heatflux" || lowercase ==
"populations_vg_heatflux") {
464 const std::string& pop =
species.name;
466 outputReducer->
addMetadata(outputReducer->
size()-1,
"W/m^2",
"$\\mathrm{W}\\,\\mathrm{m}^{-2}$",
"$q_\\mathrm{"+pop+
"}$",
"1.0");
472 if (
P::systemWriteAllDROs || lowercase ==
"populations_nonmaxwellianity" || lowercase ==
"populations_vg_nonmaxwellianity") {
476 const std::string& pop =
species.name;
479 "$\\tilde{\\epsilon}_\\mathrm{M," + pop +
"}$",
"1.0");
485 if(
P::systemWriteAllDROs || lowercase ==
"maxfieldsdt" || lowercase ==
"fg_maxfieldsdt" || lowercase ==
"fg_maxdt_fieldsolver") {
488 "fg_maxdt_fieldsolver", [](
const FieldSolverData& fieldSolverData)->std::vector<double> {
489 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
490 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
493 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
494 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
495 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
496 const auto lid = stencil.ooo();
497 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
498 retval[ri] = fieldSolverData.
technical[lid].maxFsDt;
503 outputReducer->
addMetadata(outputReducer->
size()-1,
"s",
"$\\mathrm{s}$",
"$\\Delta t_\\mathrm{f,max}$",
"1.0");
511 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$\\mathrm{MPI rank}$",
"");
520 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
521 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2], fieldSolverData.
fsgrid.getRank());
525 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$\\mathrm{fGrid rank}$",
"");
534 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
535 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
538 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
539 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
540 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
541 const auto lid = stencil.ooo();
542 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
543 retval[ri] = fieldSolverData.
technical[lid].refLevel;
548 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$\\mathrm{fGrid rank}$",
"");
556 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$\\mathrm{vGrid Boundary type}$",
"");
565 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
566 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
569 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
570 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
571 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
572 const auto lid = stencil.ooo();
573 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
574 retval[ri] = fieldSolverData.
technical[lid].sysBoundaryFlag;
579 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$\\mathrm{fGrid Boundary type}$",
"");
587 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$\\mathrm{vGrid Boundary layer}$",
"");
596 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
597 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
600 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
601 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
602 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
603 const auto lid = stencil.ooo();
604 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
605 retval[ri] = fieldSolverData.
technical[lid].sysBoundaryLayer;
610 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$\\mathrm{fGrid Boundary layer}$",
"");
615 if(
P::systemWriteAllDROs || lowercase ==
"populations_blocks" || lowercase ==
"populations_vg_blocks") {
619 const std::string& pop =
species.name;
621 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$\\mathrm{"+pop+
" blocks}$",
"");
631 const std::string& pop =
species.name;
643 const std::string& pop =
species.name;
651 if(
P::systemWriteAllDROs || lowercase ==
"fsaved" || lowercase ==
"vg_fsaved" || lowercase ==
"vg_f_saved") {
654 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$f(v)_\\mathrm{saved}$",
"");
659 if(
P::systemWriteAllDROs || lowercase ==
"populations_accsubcycles" || lowercase ==
"populations_acceleration_subcycles" || lowercase ==
"populations_vg_acceleration_subcycles") {
663 const std::string& pop =
species.name;
665 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$\\mathrm{"+pop+
" Acc subcycles}$",
"");
671 if(
P::systemWriteAllDROs || lowercase ==
"vole" || lowercase ==
"vg_vole" || lowercase ==
"evol" || lowercase ==
"vg_e_vol" || lowercase ==
"e_vol") {
674 outputReducer->
addMetadata(outputReducer->
size()-1,
"V/m",
"$\\mathrm{V}\\,\\mathrm{m}^{-1}$",
"$E_\\mathrm{vol,vg}$",
"1.0");
679 if(
P::systemWriteAllDROs || lowercase ==
"fg_vole" || lowercase ==
"fg_e_vol" || lowercase ==
"fg_evol") {
682 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
683 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]*3);
686 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
687 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
688 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
689 const auto lid = stencil.ooo();
690 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
698 outputReducer->
addMetadata(outputReducer->
size()-1,
"V/m",
"$\\mathrm{V}\\,\\mathrm{m}^{-1}$",
"$E_\\mathrm{vol,fg}$",
"1.0");
703 if(
P::systemWriteAllDROs || lowercase ==
"halle" || lowercase ==
"fg_halle" || lowercase ==
"fg_e_hall") {
705 std::string reducer_name =
"fg_e_hall_" + std::to_string(
index);
708 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
709 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
712 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
713 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
714 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
715 const auto lid = stencil.ooo();
716 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
717 retval[ri] = fieldSolverData.
EHall[lid][
index];
722 outputReducer->
addMetadata(outputReducer->
size()-1,
"V/m",
"$\\mathrm{V}\\,\\mathrm{m}^{-1}$",
"$E_\\mathrm{Hall,"+std::to_string(
index)+
"}$",
"1.0");
728 if(
P::systemWriteAllDROs || lowercase ==
"gradpee" || lowercase ==
"e_gradpe" || lowercase ==
"vg_e_gradpe") {
731 outputReducer->
addMetadata(outputReducer->
size()-1,
"V/m",
"$\\mathrm{V}\\,\\mathrm{m}^{-1}$",
"$E_{\\nabla P_\\mathrm{e}}$",
"1.0");
736 if(
P::systemWriteAllDROs || lowercase ==
"volb" || lowercase ==
"vg_volb" || lowercase ==
"b_vol" || lowercase ==
"bvol" || lowercase ==
"vg_bvol" || lowercase ==
"vg_b_vol") {
739 outputReducer->
addMetadata(outputReducer->
size()-1,
"T",
"$\\mathrm{T}$",
"$B_\\mathrm{vol,vg}$",
"1.0");
744 if(
P::systemWriteAllDROs || lowercase ==
"fg_volb" || lowercase ==
"fg_bvol" || lowercase ==
"fg_b_vol") {
747 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
748 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]*3);
751 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
752 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
753 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
754 const auto lid = stencil.ooo();
755 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
763 outputReducer->
addMetadata(outputReducer->
size()-1,
"T",
"$\\mathrm{T}$",
"$B_\\mathrm{vol,fg}$",
"1.0");
770 outputReducer->
addMetadata(outputReducer->
size()-1,
"T",
"$\\mathrm{T}$",
"$B_\\mathrm{vol,vg,bg}$",
"1.0");
777 outputReducer->
addMetadata(outputReducer->
size()-1,
"T",
"$\\mathrm{T}$",
"$B_\\mathrm{vol,vg,per}$",
"1.0");
785 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa",
"$\\mathrm{Pa}$",
"$P_\\mathrm{solver}$",
"1.0");
794 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
795 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
798 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
799 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
800 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
801 const auto lid = stencil.ooo();
802 const auto ri = gridSize[1] * gridSize[0] * stencil.k + gridSize[0] * stencil.j + stencil.i;
803 auto& moments = fieldSolverData.
moments[lid];
809 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa",
"$\\mathrm{Pa}$",
"$P_\\mathrm{fg}$",
"1.0");
814 if(
P::systemWriteAllDROs || lowercase ==
"populations_ptensor" || lowercase ==
"populations_vg_ptensor") {
818 const std::string& pop =
species.name;
820 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa",
"$\\mathrm{Pa}$",
"$\\mathcal{P}_\\mathrm{"+pop+
"}$",
"1.0");
822 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa",
"$\\mathrm{Pa}$",
"$\\mathcal{\\tilde{P}}_\\mathrm{"+pop+
"}$",
"1.0");
828 if(
P::systemWriteAllDROs || lowercase ==
"bvolderivs" || lowercase ==
"b_vol_derivs" || lowercase ==
"b_vol_derivatives" || lowercase ==
"vg_b_vol_derivatives" || lowercase ==
"derivs") {
839 outputReducer->
addMetadata(outputReducer->
size()-9,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{X,\\mathrm{per,vol,vg}} (\\Delta X)^{-1}$",
"1.0");
840 outputReducer->
addMetadata(outputReducer->
size()-8,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{X,\\mathrm{per,vol,vg}} (\\Delta Y)^{-1}$",
"1.0");
841 outputReducer->
addMetadata(outputReducer->
size()-7,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{X,\\mathrm{per,vol,vg}} (\\Delta Z)^{-1}$",
"1.0");
842 outputReducer->
addMetadata(outputReducer->
size()-6,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Y,\\mathrm{per,vol,vg}} (\\Delta X)^{-1}$",
"1.0");
843 outputReducer->
addMetadata(outputReducer->
size()-5,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Y,\\mathrm{per,vol,vg}} (\\Delta Y)^{-1}$",
"1.0");
844 outputReducer->
addMetadata(outputReducer->
size()-4,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Y,\\mathrm{per,vol,vg}} (\\Delta Z)^{-1}$",
"1.0");
845 outputReducer->
addMetadata(outputReducer->
size()-3,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Z,\\mathrm{per,vol,vg}} (\\Delta X)^{-1}$",
"1.0");
846 outputReducer->
addMetadata(outputReducer->
size()-2,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Z,\\mathrm{per,vol,vg}} (\\Delta Y)^{-1}$",
"1.0");
847 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Z,\\mathrm{per,vol,vg}} (\\Delta Z)^{-1}$",
"1.0");
864 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
865 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
867 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
868 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
869 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
870 const auto lid = stencil.ooo();
871 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
877 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{X,\\mathrm{per,fg}} (\\Delta Y)^{-1}$",
"1.0");
880 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
881 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
883 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
884 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
885 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
886 const auto lid = stencil.ooo();
887 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
893 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{X,\\mathrm{per,fg}} (\\Delta Z)^{-1}$",
"1.0");
896 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
897 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
899 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
900 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
901 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
902 const auto lid = stencil.ooo();
903 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
909 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Y,\\mathrm{per,fg}} (\\Delta X)^{-1}$",
"1.0");
912 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
913 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
915 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
916 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
917 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
918 const auto lid = stencil.ooo();
919 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
925 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Y,\\mathrm{per,fg}} (\\Delta Z)^{-1}$",
"1.0");
928 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
929 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
931 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
932 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
933 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
934 const auto lid = stencil.ooo();
935 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
941 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Z,\\mathrm{per,fg}} (\\Delta X)^{-1}$",
"1.0");
944 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
945 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
947 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
948 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
949 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
950 const auto lid = stencil.ooo();
951 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
957 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Z,\\mathrm{per,fg}} (\\Delta Y)^{-1}$",
"1.0");
960 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
961 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
963 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
964 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
965 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
966 const auto lid = stencil.ooo();
967 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
973 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-2}$",
"$\\Delta B_{X,\\mathrm{per,fg}} (\\Delta Y)^{-2}$",
"1.0");
976 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
977 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
979 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
980 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
981 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
982 const auto lid = stencil.ooo();
983 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
989 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-2}$",
"$\\Delta B_{X,\\mathrm{per,fg}} (\\Delta Z)^{-2}$",
"1.0");
992 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
993 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
995 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
996 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
997 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
998 const auto lid = stencil.ooo();
999 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1005 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-2}$",
"$\\Delta B_{X,\\mathrm{per,fg}} (\\Delta Y \\Delta Z)^{-1}$",
"1.0");
1008 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1009 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1011 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1012 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1013 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1014 const auto lid = stencil.ooo();
1015 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1021 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-2}$",
"$\\Delta B_{Y,\\mathrm{per,fg}} (\\Delta X)^{-2}$",
"1.0");
1024 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1025 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1027 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1028 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1029 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1030 const auto lid = stencil.ooo();
1031 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1037 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-2}$",
"$\\Delta B_{Y,\\mathrm{per,fg}} (\\Delta Z)^{-2}$",
"1.0");
1040 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1041 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1043 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1044 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1045 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1046 const auto lid = stencil.ooo();
1047 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1053 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-2}$",
"$\\Delta B_{Y,\\mathrm{per,fg}} (\\Delta X \\Delta Z)^{-1}$",
"1.0");
1056 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1057 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1059 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1060 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1061 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1062 const auto lid = stencil.ooo();
1063 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1069 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-2}$",
"$\\Delta B_{Z,\\mathrm{per,fg}} (\\Delta Z)^{-2}$",
"1.0");
1072 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1073 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1075 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1076 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1077 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1078 const auto lid = stencil.ooo();
1079 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1085 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-2}$",
"$\\Delta B_{Z,\\mathrm{per,fg}} (\\Delta Y)^{-2}$",
"1.0");
1088 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1089 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1091 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1092 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1093 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1094 const auto lid = stencil.ooo();
1095 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1101 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-2}$",
"$\\Delta B_{Z,\\mathrm{per,fg}} (\\Delta X \\Delta Y)^{-1}$",
"1.0");
1104 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1105 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1107 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1108 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1109 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1110 const auto lid = stencil.ooo();
1111 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1117 outputReducer->
addMetadata(outputReducer->
size()-1,
"kg/m^4",
"$\\mathrm{kg}\\mathrm{m}^{-4}$",
"$\\Delta \\rho_{m,\\mathrm{fg}} (\\Delta X)^{-1}$",
"1.0");
1120 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1121 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1123 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1124 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1125 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1126 const auto lid = stencil.ooo();
1127 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1133 outputReducer->
addMetadata(outputReducer->
size()-1,
"kg/m^4",
"$\\mathrm{kg}\\mathrm{m}^{-4}$",
"$\\Delta \\rho_{m,\\mathrm{fg}} (\\Delta Y)^{-1}$",
"1.0");
1136 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1137 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1139 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1140 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1141 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1142 const auto lid = stencil.ooo();
1143 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1149 outputReducer->
addMetadata(outputReducer->
size()-1,
"kg/m^4",
"$\\mathrm{kg}\\mathrm{m}^{-4}$",
"$\\Delta \\rho_{m,\\mathrm{fg}} (\\Delta Z)^{-1}$",
"1.0");
1152 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1153 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1155 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1156 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1157 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1158 const auto lid = stencil.ooo();
1159 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1165 outputReducer->
addMetadata(outputReducer->
size()-1,
"C/m^4",
"$\\mathrm{C}\\mathrm{m}^{-4}$",
"$\\Delta \\rho_{q,\\mathrm{fg}} (\\Delta X)^{-1}$",
"1.0");
1168 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1169 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1171 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1172 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1173 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1174 const auto lid = stencil.ooo();
1175 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1181 outputReducer->
addMetadata(outputReducer->
size()-1,
"C/m^4",
"$\\mathrm{C}\\mathrm{m}^{-4}$",
"$\\Delta \\rho_{q,\\mathrm{fg}} (\\Delta Y)^{-1}$",
"1.0");
1184 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1185 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1187 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1188 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1189 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1190 const auto lid = stencil.ooo();
1191 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1197 outputReducer->
addMetadata(outputReducer->
size()-1,
"C/m^4",
"$\\mathrm{C}\\mathrm{m}^{-4}$",
"$\\Delta \\rho_{q,\\mathrm{fg}} (\\Delta Z)^{-1}$",
"1.0");
1200 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1201 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1203 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1204 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1205 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1206 const auto lid = stencil.ooo();
1207 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1213 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa/m",
"$\\mathrm{Pa}\\mathrm{m}^{-1}$",
"$\\Delta P_{11,\\mathrm{fg}} (\\Delta X)^{-1}$",
"1.0");
1216 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1217 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1219 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1220 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1221 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1222 const auto lid = stencil.ooo();
1223 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1229 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa/m",
"$\\mathrm{Pa}\\mathrm{m}^{-1}$",
"$\\Delta P_{11,\\mathrm{fg}} (\\Delta Y)^{-1}$",
"1.0");
1232 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1233 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1235 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1236 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1237 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1238 const auto lid = stencil.ooo();
1239 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1245 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa/m",
"$\\mathrm{Pa}\\mathrm{m}^{-1}$",
"$\\Delta P_{11,\\mathrm{fg}} (\\Delta Z)^{-1}$",
"1.0");
1248 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1249 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1251 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1252 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1253 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1254 const auto lid = stencil.ooo();
1255 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1261 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa/m",
"$\\mathrm{Pa}\\mathrm{m}^{-1}$",
"$\\Delta P_{22,\\mathrm{fg}} (\\Delta X)^{-1}$",
"1.0");
1264 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1265 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1267 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1268 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1269 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1270 const auto lid = stencil.ooo();
1271 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1277 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa/m",
"$\\mathrm{Pa}\\mathrm{m}^{-1}$",
"$\\Delta P_{22,\\mathrm{fg}} (\\Delta Y)^{-1}$",
"1.0");
1280 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1281 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1283 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1284 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1285 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1286 const auto lid = stencil.ooo();
1287 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1293 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa/m",
"$\\mathrm{Pa}\\mathrm{m}^{-1}$",
"$\\Delta P_{22,\\mathrm{fg}} (\\Delta Z)^{-1}$",
"1.0");
1296 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1297 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1299 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1300 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1301 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1302 const auto lid = stencil.ooo();
1303 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1309 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa/m",
"$\\mathrm{Pa}\\mathrm{m}^{-1}$",
"$\\Delta P_{33,\\mathrm{fg}} (\\Delta X)^{-1}$",
"1.0");
1312 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1313 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1315 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1316 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1317 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1318 const auto lid = stencil.ooo();
1319 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1325 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa/m",
"$\\mathrm{Pa}\\mathrm{m}^{-1}$",
"$\\Delta P_{33,\\mathrm{fg}} (\\Delta Y)^{-1}$",
"1.0");
1328 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1329 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1331 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1332 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1333 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1334 const auto lid = stencil.ooo();
1335 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1341 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa/m",
"$\\mathrm{Pa}\\mathrm{m}^{-1}$",
"$\\Delta P_{33,\\mathrm{fg}} (\\Delta Z)^{-1}$",
"1.0");
1344 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1345 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1347 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1348 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1349 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1350 const auto lid = stencil.ooo();
1351 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1357 outputReducer->
addMetadata(outputReducer->
size()-1,
"1/s",
"$\\mathrm{s}^{-1}$",
"$\\Delta V_{X,\\mathrm{fg}} (\\Delta X)^{-1}$",
"1.0");
1360 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1361 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1363 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1364 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1365 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1366 const auto lid = stencil.ooo();
1367 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1373 outputReducer->
addMetadata(outputReducer->
size()-1,
"1/s",
"$\\mathrm{s}^{-1}$",
"$\\Delta V_{X,\\mathrm{fg}} (\\Delta Y)^{-1}$",
"1.0");
1376 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1377 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1379 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1380 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1381 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1382 const auto lid = stencil.ooo();
1383 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1389 outputReducer->
addMetadata(outputReducer->
size()-1,
"1/s",
"$\\mathrm{s}^{-1}$",
"$\\Delta V_{X,\\mathrm{fg}} (\\Delta Z)^{-1}$",
"1.0");
1392 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1393 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1395 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1396 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1397 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1398 const auto lid = stencil.ooo();
1399 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1405 outputReducer->
addMetadata(outputReducer->
size()-1,
"1/s",
"$\\mathrm{s}^{-1}$",
"$\\Delta V_{Y,\\mathrm{fg}} (\\Delta X)^{-1}$",
"1.0");
1408 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1409 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1411 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1412 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1413 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1414 const auto lid = stencil.ooo();
1415 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1421 outputReducer->
addMetadata(outputReducer->
size()-1,
"1/s",
"$\\mathrm{s}^{-1}$",
"$\\Delta V_{Y,\\mathrm{fg}} (\\Delta Y)^{-1}$",
"1.0");
1424 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1425 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1427 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1428 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1429 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1430 const auto lid = stencil.ooo();
1431 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1437 outputReducer->
addMetadata(outputReducer->
size()-1,
"1/s",
"$\\mathrm{s}^{-1}$",
"$\\Delta V_{Y,\\mathrm{fg}} (\\Delta Z)^{-1}$",
"1.0");
1440 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1441 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1443 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1444 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1445 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1446 const auto lid = stencil.ooo();
1447 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1453 outputReducer->
addMetadata(outputReducer->
size()-1,
"1/s",
"$\\mathrm{s}^{-1}$",
"$\\Delta V_{Z,\\mathrm{fg}} (\\Delta X)^{-1}$",
"1.0");
1456 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1457 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1459 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1460 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1461 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1462 const auto lid = stencil.ooo();
1463 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1469 outputReducer->
addMetadata(outputReducer->
size()-1,
"1/s",
"$\\mathrm{s}^{-1}$",
"$\\Delta V_{Z,\\mathrm{fg}} (\\Delta Y)^{-1}$",
"1.0");
1472 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1473 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1475 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1476 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1477 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1478 const auto lid = stencil.ooo();
1479 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1485 outputReducer->
addMetadata(outputReducer->
size()-1,
"1/s",
"$\\mathrm{s}^{-1}$",
"$\\Delta V_{Z,\\mathrm{fg}} (\\Delta Z)^{-1}$",
"1.0");
1488 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1489 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1491 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1492 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1493 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1494 const auto lid = stencil.ooo();
1495 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1501 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa/m",
"$\\mathrm{Pa}\\mathrm{m}^{-1}$",
"$\\Delta P_\\mathrm{e,fg} (\\Delta X)^{-1}$",
"1.0");
1504 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1505 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1507 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1508 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1509 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1510 const auto lid = stencil.ooo();
1511 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1517 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa/m",
"$\\mathrm{Pa}\\mathrm{m}^{-1}$",
"$\\Delta P_\\mathrm{e,fg} (\\Delta Y)^{-1}$",
"1.0");
1520 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1521 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1523 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1524 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1525 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1526 const auto lid = stencil.ooo();
1527 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1533 outputReducer->
addMetadata(outputReducer->
size()-1,
"Pa/m",
"$\\mathrm{Pa}\\mathrm{m}^{-1}$",
"$\\Delta P_\\mathrm{e,fg} (\\Delta Z)^{-1}$",
"1.0");
1536 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1537 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1539 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1540 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1541 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1542 const auto lid = stencil.ooo();
1543 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1549 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\mathrm{m}^{-1}$",
"$\\Delta B_{X,\\mathrm{per,vol,fg}} (\\Delta X)^{-1}$",
"1.0");
1552 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1553 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1555 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1556 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1557 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1558 const auto lid = stencil.ooo();
1559 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1565 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\mathrm{m}^{-1}$",
"$\\Delta B_{X,\\mathrm{per,vol,fg}} (\\Delta Y)^{-1}$",
"1.0");
1568 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1569 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1571 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1572 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1573 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1574 const auto lid = stencil.ooo();
1575 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1581 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\mathrm{m}^{-1}$",
"$\\Delta B_{X,\\mathrm{per,vol,fg}} (\\Delta Z)^{-1}$",
"1.0");
1584 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1585 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1587 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1588 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1589 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1590 const auto lid = stencil.ooo();
1591 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1597 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\mathrm{m}^{-1}$",
"$\\Delta B_{Y,\\mathrm{per,vol,fg}} (\\Delta X)^{-1}$",
"1.0");
1600 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1601 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1603 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1604 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1605 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1606 const auto lid = stencil.ooo();
1607 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1613 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\mathrm{m}^{-1}$",
"$\\Delta B_{Y,\\mathrm{per,vol,fg}} (\\Delta Y)^{-1}$",
"1.0");
1616 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1617 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1619 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1620 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1621 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1622 const auto lid = stencil.ooo();
1623 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1629 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\mathrm{m}^{-1}$",
"$\\Delta B_{Y,\\mathrm{per,vol,fg}} (\\Delta Z)^{-1}$",
"1.0");
1632 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1633 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1635 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1636 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1637 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1638 const auto lid = stencil.ooo();
1639 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1645 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\mathrm{m}^{-1}$",
"$\\Delta B_{Z,\\mathrm{per,vol,fg}} (\\Delta X)^{-1}$",
"1.0");
1648 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1649 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1651 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1652 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1653 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1654 const auto lid = stencil.ooo();
1655 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1661 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\mathrm{m}^{-1}$",
"$\\Delta B_{Z,\\mathrm{per,vol,fg}} (\\Delta Y)^{-1}$",
"1.0");
1664 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1665 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1667 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1668 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1669 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1670 const auto lid = stencil.ooo();
1671 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1677 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\mathrm{m}^{-1}$",
"$\\Delta B_{Z,\\mathrm{per,vol,fg}} (\\Delta Z)^{-1}$",
"1.0");
1693 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1694 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1696 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1697 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1698 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1699 const auto lid = stencil.ooo();
1700 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1706 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{X,\\mathrm{bg,fg}} (\\Delta Y)^{-1}$",
"1.0");
1710 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1711 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1713 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1714 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1715 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1716 const auto lid = stencil.ooo();
1717 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1723 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{X,\\mathrm{bg,fg}} (\\Delta Z)^{-1}$",
"1.0");
1727 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1728 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1730 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1731 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1732 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1733 const auto lid = stencil.ooo();
1734 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1740 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Y,\\mathrm{bg,fg}} (\\Delta X)^{-1}$",
"1.0");
1744 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1745 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1747 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1748 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1749 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1750 const auto lid = stencil.ooo();
1751 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1757 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Y,\\mathrm{bg,fg}} (\\Delta Z)^{-1}$",
"1.0");
1761 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1762 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1764 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1765 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1766 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1767 const auto lid = stencil.ooo();
1768 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1774 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Z,\\mathrm{bg,fg}} (\\Delta X)^{-1}$",
"1.0");
1778 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1779 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1781 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1782 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1783 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1784 const auto lid = stencil.ooo();
1785 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1791 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Z,\\mathrm{bg,fg}} (\\Delta Y)^{-1}$",
"1.0");
1795 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1796 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1798 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1799 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1800 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1801 const auto lid = stencil.ooo();
1802 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1808 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{X,\\mathrm{bg,vol,fg}} (\\Delta X)^{-1}$",
"1.0");
1812 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1813 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1815 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1816 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1817 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1818 const auto lid = stencil.ooo();
1819 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1825 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{X,\\mathrm{bg,vol,fg}} (\\Delta Y)^{-1}$",
"1.0");
1829 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1830 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1832 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1833 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1834 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1835 const auto lid = stencil.ooo();
1836 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1842 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{X,\\mathrm{bg,vol,fg}} (\\Delta Z)^{-1}$",
"1.0");
1846 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1847 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1849 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1850 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1851 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1852 const auto lid = stencil.ooo();
1853 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1859 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Y,\\mathrm{bg,vol,fg}} (\\Delta X)^{-1}$",
"1.0");
1863 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1864 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1866 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1867 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1868 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1869 const auto lid = stencil.ooo();
1870 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1876 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Y,\\mathrm{bg,vol,fg}} (\\Delta Y)^{-1}$",
"1.0");
1880 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1881 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1883 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1884 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1885 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1886 const auto lid = stencil.ooo();
1887 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1893 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Y,\\mathrm{bg,vol,fg}} (\\Delta Z)^{-1}$",
"1.0");
1897 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1898 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1900 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1901 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1902 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1903 const auto lid = stencil.ooo();
1904 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1910 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Z,\\mathrm{bg,vol,fg}} (\\Delta X)^{-1}$",
"1.0");
1914 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1915 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1917 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1918 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1919 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1920 const auto lid = stencil.ooo();
1921 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1927 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Z,\\mathrm{bg,vol,fg}} (\\Delta Y)^{-1}$",
"1.0");
1931 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1932 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1934 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1935 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1936 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1937 const auto lid = stencil.ooo();
1938 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1944 outputReducer->
addMetadata(outputReducer->
size()-1,
"T/m",
"$\\mathrm{T}\\,\\mathrm{m}^{-1}$",
"$\\Delta B_{Z,\\mathrm{bg,vol,fg}} (\\Delta Z)^{-1}$",
"1.0");
1960 outputReducer->
addMetadata(outputReducer->
size()-6,
"m",
"$\\mathrm{m}$",
"$X_\\mathrm{vg}$",
"1.0");
1961 outputReducer->
addMetadata(outputReducer->
size()-5,
"m",
"$\\mathrm{m}$",
"$Y_\\mathrm{vg}$",
"1.0");
1962 outputReducer->
addMetadata(outputReducer->
size()-4,
"m",
"$\\mathrm{m}$",
"$Z_\\mathrm{vg}$",
"1.0");
1963 outputReducer->
addMetadata(outputReducer->
size()-3,
"m",
"$\\mathrm{m}$",
"$\\delta X_\\mathrm{vg}$",
"1.0");
1964 outputReducer->
addMetadata(outputReducer->
size()-2,
"m",
"$\\mathrm{m}$",
"$\\delta Y_\\mathrm{vg}$",
"1.0");
1965 outputReducer->
addMetadata(outputReducer->
size()-1,
"m",
"$\\mathrm{m}$",
"$\\delta Z_\\mathrm{vg}$",
"1.0");
1973 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1974 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1977 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1978 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1979 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1980 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1981 retval[ri] = coordinates.getPhysicalCoords(stencil.i, stencil.j, stencil.k)[0];
1986 outputReducer->
addMetadata(outputReducer->
size()-1,
"m",
"$\\mathrm{m}$",
"$X_\\mathrm{fg}$",
"1.0");
1989 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
1990 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
1993 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
1994 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
1995 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
1996 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
1997 retval[ri] = coordinates.getPhysicalCoords(stencil.i, stencil.j, stencil.k)[1];
2002 outputReducer->
addMetadata(outputReducer->
size()-1,
"m",
"$\\mathrm{m}$",
"$Y_\\mathrm{fg}$",
"1.0");
2005 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
2006 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]);
2009 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
2010 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
2011 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
2012 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
2013 retval[ri] = coordinates.getPhysicalCoords(stencil.i, stencil.j, stencil.k)[2];
2018 outputReducer->
addMetadata(outputReducer->
size()-1,
"m",
"$\\mathrm{m}$",
"$Z_\\mathrm{fg}$",
"1.0");
2021 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
2022 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2], fieldSolverData.
fsgrid.getGridSpacing()[0]);
2026 outputReducer->
addMetadata(outputReducer->
size()-1,
"m",
"$\\mathrm{m}$",
"$\\delta X_\\mathrm{fg}$",
"1.0");
2029 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
2030 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2], fieldSolverData.
fsgrid.getGridSpacing()[1]);
2034 outputReducer->
addMetadata(outputReducer->
size()-1,
"m",
"$\\mathrm{m}$",
"$\\delta Y_\\mathrm{fg}$",
"1.0");
2037 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
2038 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2], fieldSolverData.
fsgrid.getGridSpacing()[2]);
2042 outputReducer->
addMetadata(outputReducer->
size()-1,
"m",
"$\\mathrm{m}$",
"$\\delta Z_\\mathrm{fg}$",
"1.0");
2049 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$\\frac{\\Delta \\rho}{\\hat{rho}}$",
"");
2056 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$\\frac{\\Delta U_1}{\\hat{U}_1}$",
"");
2063 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$\\frac{(\\Delta P)^2}{2 \\rho \\hat{U}_1}$",
"");
2070 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$\\frac{(\\Delta B_1)^2}{2 \\mu_0 \\hat{U}_1}$",
"");
2077 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$\\frac{|\\Delta B_1|}{\\hat{B}_1}$",
"");
2084 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$\\alpha_1$",
"");
2098 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$\\alpha_2$",
"");
2105 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"$P_\\perp / P_\\parallel$",
"");
2112 outputReducer->
addMetadata(outputReducer->
size()-1,
"",
"",
"Vorticity",
"");
2121 std::vector<Real> retval(grid.nodes.size());
2123 for(uint
i=0;
i<grid.nodes.size();
i++) {
2126 Real z = grid.nodes[
i].x[2];
2132 outputReducer->
addMetadata(outputReducer->
size()-1,
"Degrees",
"$^\\circ$",
"L",
"");
2141 std::vector<Real> retval(grid.nodes.size());
2143 for(uint n=0; n<grid.nodes.size(); n++) {
2144 Real theta = acos(grid.nodes[n].x[2] /
sqrt(grid.nodes[n].x[0] * grid.nodes[n].x[0] +
2145 grid.nodes[n].x[1] * grid.nodes[n].x[1] +
2146 grid.nodes[n].x[2] * grid.nodes[n].x[2]));
2147 if(theta > M_PI/2.) {
2148 theta = M_PI - theta;
2151 Real Chi0 = 0.01 + 0.99 * .5 * (1 + tanh((23. - theta * (180. / M_PI)) / 6));
2157 outputReducer->
addMetadata(outputReducer->
size()-1,
"arb.unit.",
"",
"Chi0",
"");
2166 std::vector<Real> retval(grid.elements.size());
2168 for(uint
i=0;
i<grid.elements.size();
i++) {
2169 retval[
i] = grid.elementArea(
i);
2174 outputReducer->
addMetadata(outputReducer->
size()-1,
"m^2",
"$\\mathrm{m}^2$",
"$A_m$",
"1.0");
2183 std::vector<Real> retval(grid.nodes.size()*3);
2185 for(uint
i=0;
i<grid.nodes.size();
i++) {
2193 outputReducer->
addMetadata(outputReducer->
size()-1,
"T",
"$\\mathrm{T}$",
"$B$",
"1.0");
2203 std::vector<Real> retval(grid.elements.size()*3);
2205 for(uint
i=0;
i<grid.elements.size();
i++) {
2207 const std::array<Real, 3>& c1 = grid.nodes[grid.elements[
i].corners[0]].x;
2208 const std::array<Real, 3>& c2 = grid.nodes[grid.elements[
i].corners[1]].x;
2209 const std::array<Real, 3>& c3 = grid.nodes[grid.elements[
i].corners[2]].x;
2212 std::array<std::array<Real,3>, 3> ET({grid.computeGradT(c2,c3,c1), grid.computeGradT(c3,c1,c2), grid.computeGradT(c1,c2,c3)});
2213 for(
int n=0; n<3; n++) {
2220 for(
int n=0; n<3; n++) {
2221 retval[3*
i + n] = ET[0][n] + ET[1][n] + ET[2][n];
2227 outputReducer->
addMetadata(outputReducer->
size()-1,
"V/m",
"$\\mathrm{V/m}$",
"$E$",
"1.0");
2235 std::vector<Real> retval(3*grid.elements.size());
2238 for(uint el=0; el<grid.elementDivFreeCurrent.size(); el++) {
2239 Eigen::Vector3d J = grid.elementDivFreeCurrent[el];
2240 retval[3*el] = J[0];
2241 retval[3*el+1] = J[1];
2242 retval[3*el+2] = J[2];
2249 outputReducer->
addMetadata(outputReducer->
size()-1,
"A",
"$\\mathrm{A}$",
"$J_{\\text{divJ}}$",
"1.0");
2258 std::vector<Real> retval(3*grid.elements.size());
2260 for(uint el=0; el<grid.elementCurlFreeCurrent.size(); el++) {
2261 Eigen::Vector3d J = grid.elementCurlFreeCurrent[el];
2262 retval[3*el] = J[0];
2263 retval[3*el+1] = J[1];
2264 retval[3*el+2] = J[2];
2270 outputReducer->
addMetadata(outputReducer->
size()-1,
"A",
"$\\mathrm{A}$",
"$J_{\\text{curlJ}}$",
"1.0");
2280 std::vector<Real> retval(grid.elements.size()*3);
2282 for(uint
i=0;
i<grid.elements.size();
i++) {
2284 std::array<Real, 9> sigma = grid.sigmaAverage(
i);
2287 std::array<Real, 3> E({0,0,0});
2288 const std::array<Real, 3>& c1 = grid.nodes[grid.elements[
i].corners[0]].x;
2289 const std::array<Real, 3>& c2 = grid.nodes[grid.elements[
i].corners[1]].x;
2290 const std::array<Real, 3>& c3 = grid.nodes[grid.elements[
i].corners[2]].x;
2293 std::array<std::array<Real,3>, 3> ET({grid.computeGradT(c2,c3,c1), grid.computeGradT(c3,c1,c2), grid.computeGradT(c1,c2,c3)});
2294 for(
int n=0; n<3; n++) {
2301 for(
int n=0; n<3; n++) {
2302 E[n] = ET[0][n] + ET[1][n] + ET[2][n];
2306 for(
int n=0; n<3; n++) {
2307 for(
int m=0; m<3; m++) {
2308 retval[3*
i + n] += sigma[3*n+m] * E[m];
2315 outputReducer->
addMetadata(outputReducer->
size()-1,
"A/m^2",
"$\\mathrm{A/m}^2$",
"$J$",
"1.0");
2324 std::vector<Real> retval(grid.elements.size()*3);
2326 for(uint
i=0;
i<grid.elements.size();
i++) {
2327 std::array<Real, 3> area = grid.mappedElementArea(
i);
2328 retval[3*
i] = area[0];
2329 retval[3*
i+1] = area[1];
2330 retval[3*
i+2] = area[2];
2335 outputReducer->
addMetadata(outputReducer->
size()-1,
"m^2",
"$\\mathrm{m}^2$",
"$A_m$",
"1.0");
2344 std::vector<Real> retval(grid.nodes.size());
2346 for(uint
i=0;
i<grid.nodes.size();
i++) {
2352 outputReducer->
addMetadata(outputReducer->
size()-1,
"mho",
"$\\mathrm{\\Omega^{-1}}$",
"$\\Sigma_P$",
"1.0");
2361 std::vector<Real> retval(grid.nodes.size());
2363 for(uint
i=0;
i<grid.nodes.size();
i++) {
2369 outputReducer->
addMetadata(outputReducer->
size()-1,
"mho",
"$\\mathrm{\\Omega^{-1}}$",
"$\\Sigma_H$",
"1.0");
2378 std::vector<Real> retval(grid.nodes.size());
2380 for(uint
i=0;
i<grid.nodes.size();
i++) {
2386 outputReducer->
addMetadata(outputReducer->
size()-1,
"mho",
"$\\mathrm{\\Omega^{-1}}$",
"$\\Sigma_\\parallel$",
"1.0");
2395 std::vector<Real> retval(grid.nodes.size());
2397 for(uint
i=0;
i<grid.nodes.size();
i++) {
2403 outputReducer->
addMetadata(outputReducer->
size()-1,
"m^-3",
"$\\mathrm{m^{-3}}$",
"$\\n_e$",
"1.0");
2412 std::vector<Real> retval(grid.nodes.size());
2414 for(uint
i=0;
i<grid.nodes.size();
i++) {
2415 retval[
i] = grid.nodes[
i].electronTemperature();
2420 outputReducer->
addMetadata(outputReducer->
size()-1,
"K",
"$\\mathrm{K}$",
"$T_e$",
"1.0");
2429 std::vector<Real> retval(grid.nodes.size());
2431 for(uint
i=0;
i<grid.nodes.size();
i++) {
2432 retval[
i] = grid.nodes[
i].deltaPhi();
2437 outputReducer->
addMetadata(outputReducer->
size()-1,
"eV",
"$\\mathrm{eV}$",
"$\\Delta\\Phi$",
"1.0");
2446 std::vector<Real> retval(grid.nodes.size());
2448 for(uint
i=0;
i<grid.nodes.size();
i++) {
2454 outputReducer->
addMetadata(outputReducer->
size()-1,
"W/m^2",
"$\\mathrm{W m^{-2}}$",
"$W_\\mathrm{precipitation}$",
"1.0");
2462 std::array< Real, SBC::productionNumParticleEnergies+1 >
particle_energy;
2472 std::vector<Real> retval(grid.nodes.size());
2473 for(uint
i=0;
i<grid.nodes.size();
i++) {
2481 * deltaE * exp(-energyparam);
2486 outputReducer->
addMetadata(outputReducer->
size()-1,
"1/m^2/s",
"$m^{-2} s^{-1}$",
"$\\bar{F}_\\mathrm{precip}$",
"1.0");
2494 std::array< Real, SBC::productionNumParticleEnergies+1 >
particle_energy;
2504 std::vector<Real> retval(grid.nodes.size());
2505 for(uint
i=0;
i<grid.nodes.size();
i++) {
2506 Real numberFlux = 0;
2518 * deltaE * exp(-energyparam);
2526 outputReducer->
addMetadata(outputReducer->
size()-1,
"eV",
"eV",
"$\\bar{E}_\\mathrm{precip}$",
"1.0");
2535 std::vector<Real> retval(grid.nodes.size());
2537 for(uint
i=0;
i<grid.nodes.size();
i++) {
2543 outputReducer->
addMetadata(outputReducer->
size()-1,
"V",
"$\\mathrm{V}$",
"$\\phi_I$",
"1.0");
2552 std::vector<Real> retval(grid.nodes.size());
2554 for(uint
i=0;
i<grid.nodes.size();
i++) {
2563 std::vector<Real> retval(grid.nodes.size());
2565 for(uint
i=0;
i<grid.nodes.size();
i++) {
2574 std::vector<Real> retval(grid.nodes.size());
2576 for(uint
i=0;
i<grid.nodes.size();
i++) {
2585 std::vector<Real> retval(grid.nodes.size());
2587 for(uint
i=0;
i<grid.nodes.size();
i++) {
2596 std::vector<Real> retval(grid.nodes.size());
2598 for(uint
i=0;
i<grid.nodes.size();
i++) {
2607 std::vector<Real> retval(grid.nodes.size());
2609 for(uint
i=0;
i<grid.nodes.size();
i++) {
2624 std::vector<Real> retval(grid.nodes.size()*3);
2626 for(uint
i=0;
i<grid.nodes.size();
i++) {
2627 retval[3*
i] = grid.nodes[
i].xMapped[0];
2628 retval[3*
i+1] = grid.nodes[
i].xMapped[1];
2629 retval[3*
i+2] = grid.nodes[
i].xMapped[2];
2634 outputReducer->
addMetadata(outputReducer->
size()-1,
"m",
"m",
"$x_\\mathrm{mapped}$",
"1.0");
2643 std::vector<Real> retval(grid.nodes.size()*3);
2645 for(uint
i=0;
i<grid.nodes.size();
i++) {
2653 outputReducer->
addMetadata(outputReducer->
size()-1,
"T",
"T",
"$B_\\mathrm{mapped}$",
"1.0");
2663 std::vector<Real> retval(grid.nodes.size());
2665 for(uint
i=0;
i<grid.nodes.size();
i++) {
2666 retval[
i] = (
Real)grid.nodes[
i].openFieldLine;
2679 std::vector<Real> retval(grid.nodes.size());
2681 for(uint
i=0;
i<grid.nodes.size();
i++) {
2683 for(uint e=0; e<grid.nodes[
i].numTouchingElements; e++) {
2684 area += grid.elementArea(grid.nodes[
i].touchingElements[e]);
2692 outputReducer->
addMetadata(outputReducer->
size()-1,
"A/m^2",
"$\\mathrm{A m}^{-2}$",
"$I_\\mathrm{FAC}$",
"1.0");
2701 std::vector<Real> retval(3);
2711 std::array<Real, 3> x;
2717 for(
int i=0;
i<3;
i++) {
2718 uint coupledNode = coupling[
i].first;
2719 Real a = coupling[
i].second;
2727 outputReducer->
addMetadata(outputReducer->
size()-1,
"m",
"m",
"$x_\\mathrm{coupled}$",
"1.0");
2756 const auto* gridSize = &fieldSolverData.
fsgrid.getLocalSize()[0];
2757 std::vector<double> retval(gridSize[0]*gridSize[1]*gridSize[2]*3);
2759 fieldSolverData.
fsgrid.serial_for([](
int timerId) -> phiprof::Timer {
return phiprof::Timer{timerId}; },
2760 phiprof::initializeTimer(
"DRO_fg"), fieldSolverData.
technical,
2761 [=, &retval](
const fsgrid::Coordinates coordinates,
const fsgrid::FsStencil& stencil,
cuint sysBoundaryFlag,
cuint sysBoundaryLayer) {
2762 const auto lid = stencil.ooo();
2763 const auto ri = gridSize[1]*gridSize[0]*stencil.k + gridSize[0]*stencil.j + stencil.i;
2780 MPI_Comm_rank(MPI_COMM_WORLD,&
myRank);
2782 std::cerr << __FILE__ <<
":" << __LINE__ <<
": The output variable " << *it <<
" is not defined." << std::endl;
2793 std::string lowercase = *it;
2794 for(
auto&
c : lowercase)
c = tolower(
c);
2812 if(
P::diagnosticWriteAllDROs || lowercase ==
"populations_rholossadjust" || lowercase ==
"populations_rho_loss_adjust" || lowercase ==
"populations_vg_rho_loss_adjust") {
2816 const std::string& pop =
species.name;
2823 if(
P::diagnosticWriteAllDROs || lowercase ==
"lbweight" || lowercase ==
"vg_lbweight" || lowercase ==
"vg_loadbalanceweight" || lowercase ==
"vg_loadbalance_weight" || lowercase ==
"loadbalance_weight") {
2829 if(
P::diagnosticWriteAllDROs || lowercase ==
"maxvdt" || lowercase ==
"maxdt_acceleration" || lowercase ==
"vg_maxdt_acceleration") {
2835 if(
P::diagnosticWriteAllDROs || lowercase ==
"maxrdt" || lowercase ==
"maxdt_translation" || lowercase ==
"vg_maxdt_translation") {
2841 if(
P::diagnosticWriteAllDROs || lowercase ==
"maxfieldsdt" || lowercase ==
"maxdt_fieldsolver" || lowercase ==
"fg_maxfieldsdt" || lowercase ==
"fg_maxdt_fieldsolver") {
2847 if(
P::diagnosticWriteAllDROs || lowercase ==
"populations_maxrdt" || lowercase ==
"populations_maxdt_translation" || lowercase ==
"populations_vg_maxdt_translation") {
2850 const std::string& pop =
species.name;
2857 if(
P::diagnosticWriteAllDROs || lowercase ==
"populations_maxvdt" || lowercase ==
"populations_maxdt_acceleration" || lowercase ==
"populations_vg_maxdt_acceleration") {
2860 const std::string& pop =
species.name;
2872 MPI_Comm_rank(MPI_COMM_WORLD,&
myRank);
2874 std::cerr << __FILE__ <<
":" << __LINE__ <<
": The diagnostic variable " << *it <<
" is not defined." << std::endl;