Vlasiator ebf0dd394 on dev (v5.4.0 + 1054 commits)
Loading...
Searching...
No Matches
datareductionoperator.h
Go to the documentation of this file.
1/*
2 * This file is part of Vlasiator.
3 * Copyright 2010-2016 Finnish Meteorological Institute
4 *
5 * For details of usage, see the COPYING file and read the "Rules of the Road"
6 * at http://www.physics.helsinki.fi/vlasiator/
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License along
19 * with this program; if not, write to the Free Software Foundation, Inc.,
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 */
22
23#ifndef DATAREDUCTIONOPERATOR_H
24#define DATAREDUCTIONOPERATOR_H
25
26#include <vector>
27
28#include <vlsv_writer.h>
29
30#include "fsgrid.hpp"
31#include "../definitions.h"
33#include "../parameters.h"
34#include "../grid.h"
36using namespace spatial_cell;
37
38namespace DRO {
39
53
55 public:
57 virtual ~DataReductionOperator();
58
59 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const = 0;
60 virtual bool getUnitMetadata(std::string& _unit,std::string& _unitLaTeX,std::string& _variableLaTeX,std::string& _unitConversion) {
61 _unit=unit;
62 _unitLaTeX=unitLaTeX;
63 _unitConversion=unitConversion;
64 _variableLaTeX=variableLaTeX;
65 return true;
66 };
67 virtual bool setUnitMetadata(std::string& _unit,std::string& _unitLaTeX,std::string& _variableLaTeX,std::string& _unitConversion) {
68 unit = _unit;
69 unitLaTeX = _unitLaTeX;
70 unitConversion = _unitConversion;
71 variableLaTeX = _variableLaTeX;
72 return true;
73 }
74
75 virtual std::string getName() const = 0;
76 virtual bool reduceData(const SpatialCell* cell,char* buffer);
77 virtual bool reduceDiagnostic(const SpatialCell* cell,Real * result);
78 virtual bool setSpatialCell(const SpatialCell* cell) = 0;
79
80 protected:
81 std::string unit;
82 std::string unitLaTeX;
83 std::string variableLaTeX;
84 std::string unitConversion;
85
86 };
87
89 public:
91 virtual bool writeParameters(vlsv::Writer& vlsvWriter) = 0;
92 };
93
95
96 public:
97 typedef std::function<std::vector<double>(const FieldSolverData& fieldSolverData)> ReductionLambda;
98
99 private:
101 std::string variableName;
102
103 public:
105 virtual std::string getName() const;
106 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
107 virtual bool setSpatialCell(const SpatialCell* cell);
108 virtual bool reduceData(const SpatialCell* cell,char* buffer);
109 virtual bool reduceDiagnostic(const SpatialCell* cell,Real * result);
110 virtual bool writeFsGridData(const FieldSolverData& fieldSolverData, const std::string& meshName,
111 vlsv::Writer& vlsvWriter, const bool writeAsFloat = false);
112 };
113
114 // Generic (lambda-based) datareducer for ionosphere grid element-centered data
116 public:
117 typedef std::function<std::vector<Real>(SBC::SphericalTriGrid& grid)> ReductionLambda;
118 private:
120 std::string variableName;
121
122 public:
124 virtual std::string getName() const;
125 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
126 virtual bool setSpatialCell(const SpatialCell* cell);
127 virtual bool reduceData(const SpatialCell* cell,char* buffer);
128 virtual bool reduceDiagnostic(const SpatialCell* cell,Real * result);
129 virtual bool writeIonosphereData(SBC::SphericalTriGrid& grid, vlsv::Writer& vlsvWriter);
130 };
131
132 // Generic (lambda-based) datareducer for ionosphere grid node-centered data
134 public:
135 typedef std::function<std::vector<Real>(SBC::SphericalTriGrid& grid)> ReductionLambda;
136 private:
138 std::string variableName;
139
140 public:
142 virtual std::string getName() const;
143 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
144 virtual bool setSpatialCell(const SpatialCell* cell);
145 virtual bool reduceData(const SpatialCell* cell,char* buffer);
146 virtual bool reduceDiagnostic(const SpatialCell* cell,Real * result);
147 virtual bool writeIonosphereData(SBC::SphericalTriGrid& grid, vlsv::Writer& vlsvWriter);
148 };
149
150 // Generic (lambda-based) datareducer for ionosphere grid node-centered int data
152 public:
153 typedef std::function<std::vector<int>(SBC::SphericalTriGrid& grid)> ReductionLambda;
154 private:
156 std::string variableName;
157
158 public:
160 virtual std::string getName() const;
161 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
162 virtual bool setSpatialCell(const SpatialCell* cell);
163 virtual bool reduceData(const SpatialCell* cell,char* buffer);
164 virtual bool reduceDiagnostic(const SpatialCell* cell,Real * result);
165 virtual bool writeIonosphereData(SBC::SphericalTriGrid& grid, vlsv::Writer& vlsvWriter);
166 };
167
168 // Generic (lambda-based) datareducer for vlasov grid data
170 public:
171 typedef std::function<std::vector<Real>(const SpatialCell* cell)> ReductionLambda;
172 private:
175 std::string variableName;
176
177 public:
179 virtual std::string getName() const;
180 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
181 virtual bool setSpatialCell(const SpatialCell* cell) {return true;};
182 virtual bool reduceData(const SpatialCell* cell,char* buffer);
183 virtual bool reduceDiagnostic(const SpatialCell* cell,Real * result) {return false;};
184 };
185
187 public:
188 DataReductionOperatorCellParams(const std::string& name,const unsigned int parameterIndex,const unsigned int vectorSize);
190
191 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
192 virtual std::string getName() const;
193 virtual bool reduceData(const SpatialCell* cell,char* buffer);
194 virtual bool reduceDiagnostic(const SpatialCell* cell,Real * result);
195 virtual bool setSpatialCell(const SpatialCell* cell);
196
197 protected:
200 std::string variableName;
201 const Real *data;
202 };
203
205 public:
206 DataReductionOperatorDerivatives(const std::string& name,const unsigned int parameterIndex,const unsigned int vectorSize);
207 virtual bool setSpatialCell(const SpatialCell* cell);
208 };
209
211 public:
212 DataReductionOperatorBVOLDerivatives(const std::string& name,const unsigned int parameterIndex,const unsigned int vectorSize);
213 virtual bool setSpatialCell(const SpatialCell* cell);
214 };
215
217 public:
218 MPIrank();
219 virtual ~MPIrank();
220
221 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
222 virtual std::string getName() const;
223 virtual bool reduceData(const SpatialCell* cell,char* buffer);
224 virtual bool setSpatialCell(const SpatialCell* cell);
225
226 protected:
229 };
230
232 public:
234 virtual ~MLPepochs();
235 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
236 virtual std::string getName() const;
237 virtual bool reduceData(const SpatialCell* cell,char* buffer);
238 virtual bool setSpatialCell(const SpatialCell* cell);
239 virtual bool reduceDiagnostic(const SpatialCell* cell,Real* buffer);
240
241 protected:
242 uint32_t epochs;
243 uint popID;
244 std::string popName;
245 };
246
248 public:
250 virtual ~MLPerror();
251 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
252 virtual std::string getName() const;
253 virtual bool reduceData(const SpatialCell* cell,char* buffer);
254 virtual bool setSpatialCell(const SpatialCell* cell);
255 virtual bool reduceDiagnostic(const SpatialCell* cell,Real* buffer);
256
257 protected:
258 float error;
259 uint popID;
260 std::string popName;
261 };
262
263
265 public:
266 BoundaryType();
267 virtual ~BoundaryType();
268
269 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
270 virtual std::string getName() const;
271 virtual bool reduceData(const SpatialCell* cell,char* buffer);
272 virtual bool setSpatialCell(const SpatialCell* cell);
273
274 protected:
276 };
277
279 public:
281 virtual ~BoundaryLayer();
282
283 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
284 virtual std::string getName() const;
285 virtual bool reduceData(const SpatialCell* cell,char* buffer);
286 virtual bool setSpatialCell(const SpatialCell* cell);
287
288 protected:
290 };
291
293 public:
295 virtual ~Blocks();
296
297 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
298 virtual std::string getName() const;
299 virtual bool reduceData(const SpatialCell* cell,char* buffer);
300 virtual bool reduceDiagnostic(const SpatialCell* cell,Real* buffer);
301 virtual bool setSpatialCell(const SpatialCell* cell);
302
303 protected:
305 uint popID;
306 std::string popName;
307 };
308
310 public:
311 VariableBVol();
312 virtual ~VariableBVol();
313
314 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
315 virtual std::string getName() const;
316 virtual bool reduceData(const SpatialCell* cell,char* buffer);
317 virtual bool setSpatialCell(const SpatialCell* cell);
318
319 protected:
320 Real B[3];
321 };
322
323
325 public:
327 virtual ~VariablePressureSolver();
328
329 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
330 virtual std::string getName() const;
331 virtual bool reduceData(const SpatialCell* cell,char* buffer);
332 virtual bool setSpatialCell(const SpatialCell* cell);
333
334 protected:
336 };
337
339 public:
341 virtual ~VariablePTensorDiagonal();
342
343 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
344 virtual std::string getName() const;
345 virtual bool reduceData(const SpatialCell* cell,char* buffer);
346 virtual bool setSpatialCell(const SpatialCell* cell);
347
348 protected:
351 uint popID;
352 std::string popName;
353 };
354
356 public:
359
360 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
361 virtual std::string getName() const;
362 virtual bool reduceData(const SpatialCell* cell,char* buffer);
363 virtual bool setSpatialCell(const SpatialCell* cell);
364
365 protected:
368 uint popID;
369 std::string popName;
370 };
371
373 public:
376
377 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
378 virtual std::string getName() const;
379 virtual bool reduceDiagnostic(const SpatialCell* cell,Real* result);
380 virtual bool setSpatialCell(const SpatialCell* cell);
381
382 protected:
383
384 };
385
387 public:
390
391 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
392 virtual std::string getName() const;
393 virtual bool reduceDiagnostic(const SpatialCell* cell,Real* result);
394 virtual bool setSpatialCell(const SpatialCell* cell);
395
396 protected:
397
398 };
399
401 public:
403 virtual ~VariableRhoThermal();
404
405 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
406 virtual std::string getName() const;
407 virtual bool reduceData(const SpatialCell* cell,char* buffer);
408 virtual bool setSpatialCell(const SpatialCell* cell);
409
410 protected:
412 uint popID;
413 std::string popName;
414 bool doSkip;
415 };
416
418 public:
420 virtual ~VariableRhoNonthermal();
421
422 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
423 virtual std::string getName() const;
424 virtual bool reduceData(const SpatialCell* cell,char* buffer);
425 virtual bool setSpatialCell(const SpatialCell* cell);
426
427 protected:
429 uint popID;
430 std::string popName;
431 bool doSkip;
432 };
433
435 public:
437 virtual ~VariableVThermal();
438
439 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
440 virtual std::string getName() const;
441 virtual bool reduceData(const SpatialCell* cell,char* buffer);
442 virtual bool setSpatialCell(const SpatialCell* cell);
443
444 protected:
446 uint popID;
447 std::string popName;
448 bool doSkip;
449 };
450
452 public:
454 virtual ~VariableVNonthermal();
455
456 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
457 virtual std::string getName() const;
458 virtual bool reduceData(const SpatialCell* cell,char* buffer);
459 virtual bool setSpatialCell(const SpatialCell* cell);
460
461 protected:
463 uint popID;
464 std::string popName;
465 bool doSkip;
466 };
467
469 public:
472
473 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
474 virtual std::string getName() const;
475 virtual bool reduceData(const SpatialCell* cell,char* buffer);
476 virtual bool setSpatialCell(const SpatialCell* cell);
477
478 protected:
481 uint popID;
482 std::string popName;
483 bool doSkip;
484 };
485
487 public:
490
491 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
492 virtual std::string getName() const;
493 virtual bool reduceData(const SpatialCell* cell,char* buffer);
494 virtual bool setSpatialCell(const SpatialCell* cell);
495
496 protected:
499 uint popID;
500 std::string popName;
501 bool doSkip;
502 };
503
505 public:
508
509 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
510 virtual std::string getName() const;
511 virtual bool reduceData(const SpatialCell* cell,char* buffer);
512 virtual bool setSpatialCell(const SpatialCell* cell);
513
514 protected:
517 uint popID;
518 std::string popName;
519 bool doSkip;
520 };
521
523 public:
526
527 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
528 virtual std::string getName() const;
529 virtual bool reduceData(const SpatialCell* cell,char* buffer);
530 virtual bool setSpatialCell(const SpatialCell* cell);
531
532 protected:
535 uint popID;
536 std::string popName;
537 bool doSkip;
538 };
539
541 public:
544
545 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
546 virtual std::string getName() const;
547 virtual bool reduceData(const SpatialCell* cell,char* buffer);
548 virtual bool reduceDiagnostic(const spatial_cell::SpatialCell* cell,Real* result);
549 virtual bool setSpatialCell(const SpatialCell* cell);
550
551 protected:
552 uint popID;
553 std::string popName;
554 };
555
557 public:
559 virtual ~VariableEnergyDensity();
560
561 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
562 virtual std::string getName() const;
563 virtual bool reduceData(const SpatialCell* cell,char* buffer);
564 virtual bool setSpatialCell(const SpatialCell* cell);
565 virtual bool writeParameters(vlsv::Writer& vlsvWriter);
566
567 protected:
568 uint popID;
569 std::string popName;
574 };
575
576 // Precipitation directional differential number flux (within loss cone)
578 public:
581
582 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
583 virtual std::string getName() const;
584 virtual bool reduceData(const SpatialCell* cell,char* buffer);
585 virtual bool setSpatialCell(const SpatialCell* cell);
586 virtual bool writeParameters(vlsv::Writer& vlsvWriter);
587
588 protected:
589 uint popID;
590 std::string popName;
594 std::vector<Real> channels, dataDiffFlux;
595 };
596
597
598 // V-space flatten into 1D mu-distribution
600 public:
602 virtual ~VariableMuSpace();
603
604 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
605 virtual std::string getName() const;
606 virtual bool reduceData(const SpatialCell* cell,char* buffer);
607 virtual bool setSpatialCell(const SpatialCell* cell);
608 virtual bool writeParameters(vlsv::Writer& vlsvWriter);
609
610 protected:
611 uint popID;
612 std::string popName;
613 int nBins;
614 };
615
616 // Precipitation directional differential number flux (along line)
618 public:
621
622 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
623 virtual std::string getName() const;
624 virtual bool reduceData(const SpatialCell* cell,char* buffer);
625 virtual bool setSpatialCell(const SpatialCell* cell);
626 virtual bool writeParameters(vlsv::Writer& vlsvWriter);
627 protected:
628 uint popID;
629 std::string popName;
632 std::vector<Real> channels, dataLineDiffFlux;
633 };
634
635 // Heat flux vector
637 public:
639 virtual ~VariableHeatFluxVector();
640
641 virtual bool getDataVectorInfo(std::string& dataType,unsigned int& dataSize,unsigned int& vectorSize) const;
642 virtual std::string getName() const;
643 virtual bool reduceData(const SpatialCell* cell,char* buffer);
644 virtual bool setSpatialCell(const SpatialCell* cell);
645
646 protected:
649 uint popID;
650 std::string popName;
651 };
652
653 // Dimensionless non-maxwellianity parameter
655 public:
658
659 virtual bool getDataVectorInfo(std::string& dataType, unsigned int& dataSize, unsigned int& vectorSize) const;
660 virtual std::string getName() const;
661 virtual bool reduceData(const SpatialCell* cell, char* buffer);
662 virtual bool setSpatialCell(const SpatialCell* cell);
663
664 protected:
673 uint popID;
674 std::string popName;
675 };
676
677} // namespace DRO
678
679#endif
680
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual std::string getName() const
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool reduceDiagnostic(const SpatialCell *cell, Real *buffer)
virtual std::string getName() const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual std::string getName() const
virtual bool setSpatialCell(const SpatialCell *cell)
DataReductionOperatorBVOLDerivatives(const std::string &name, const unsigned int parameterIndex, const unsigned int vectorSize)
virtual bool setSpatialCell(const SpatialCell *cell)
DataReductionOperatorCellParams(const std::string &name, const unsigned int parameterIndex, const unsigned int vectorSize)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool reduceDiagnostic(const SpatialCell *cell, Real *result)
DataReductionOperatorDerivatives(const std::string &name, const unsigned int parameterIndex, const unsigned int vectorSize)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool reduceDiagnostic(const SpatialCell *cell, Real *result)
virtual bool setSpatialCell(const SpatialCell *cell)
DataReductionOperatorFsGrid(const std::string &name, ReductionLambda l)
std::function< std::vector< double >(const FieldSolverData &fieldSolverData)> ReductionLambda
virtual bool writeFsGridData(const FieldSolverData &fieldSolverData, const std::string &meshName, vlsv::Writer &vlsvWriter, const bool writeAsFloat=false)
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool writeParameters(vlsv::Writer &vlsvWriter)=0
virtual bool setSpatialCell(const SpatialCell *cell)=0
virtual bool reduceDiagnostic(const SpatialCell *cell, Real *result)
virtual std::string getName() const =0
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool setUnitMetadata(std::string &_unit, std::string &_unitLaTeX, std::string &_variableLaTeX, std::string &_unitConversion)
virtual bool getUnitMetadata(std::string &_unit, std::string &_unitLaTeX, std::string &_variableLaTeX, std::string &_unitConversion)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const =0
DataReductionOperatorIonosphereElement(const std::string &name, ReductionLambda l)
virtual bool writeIonosphereData(SBC::SphericalTriGrid &grid, vlsv::Writer &vlsvWriter)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool reduceDiagnostic(const SpatialCell *cell, Real *result)
std::function< std::vector< Real >(SBC::SphericalTriGrid &grid)> ReductionLambda
virtual bool reduceData(const SpatialCell *cell, char *buffer)
DataReductionOperatorIonosphereNode(const std::string &name, ReductionLambda l)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool reduceDiagnostic(const SpatialCell *cell, Real *result)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool writeIonosphereData(SBC::SphericalTriGrid &grid, vlsv::Writer &vlsvWriter)
std::function< std::vector< Real >(SBC::SphericalTriGrid &grid)> ReductionLambda
std::function< std::vector< int >(SBC::SphericalTriGrid &grid)> ReductionLambda
DataReductionOperatorIonosphereNodeInt(const std::string &name, ReductionLambda l)
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool reduceDiagnostic(const SpatialCell *cell, Real *result)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool writeIonosphereData(SBC::SphericalTriGrid &grid, vlsv::Writer &vlsvWriter)
std::function< std::vector< Real >(const SpatialCell *cell)> ReductionLambda
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool reduceDiagnostic(const SpatialCell *cell, Real *result)
DataReductionOperatorMPIGridCell(const std::string &name, int numFloats, ReductionLambda l)
virtual ~DiagnosticFluxB()
virtual bool reduceDiagnostic(const SpatialCell *cell, Real *result)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual std::string getName() const
virtual ~DiagnosticFluxE()
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual std::string getName() const
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool reduceDiagnostic(const SpatialCell *cell, Real *result)
virtual bool reduceDiagnostic(const SpatialCell *cell, Real *buffer)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual std::string getName() const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual std::string getName() const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool reduceDiagnostic(const SpatialCell *cell, Real *buffer)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual std::string getName() const
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual std::string getName() const
virtual bool reduceDiagnostic(const spatial_cell::SpatialCell *cell, Real *result)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual std::string getName() const
virtual bool writeParameters(vlsv::Writer &vlsvWriter)
virtual bool setSpatialCell(const SpatialCell *cell)
VariableEnergyDensity(cuint popID)
Energy density Calculates the energy density of particles in three bins: total energy density,...
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual std::string getName() const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool setSpatialCell(const SpatialCell *cell)
virtual std::string getName() const
VariableMuSpace(cuint popID)
V-space flatten into 1D mu distribution.
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool writeParameters(vlsv::Writer &vlsvWriter)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool setSpatialCell(const SpatialCell *cell)
virtual std::string getName() const
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
VariableNonMaxwellianity(cuint popID)
Non-Maxwellianity Calculates for a population the dimensionless parameter defined by Graham et al....
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual std::string getName() const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual std::string getName() const
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool writeParameters(vlsv::Writer &vlsvWriter)
virtual bool setSpatialCell(const SpatialCell *cell)
VariablePrecipitationDiffFlux(cuint popID)
Precipitation directional differential number flux (within loss cone) Evaluation of the precipitating...
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool setSpatialCell(const SpatialCell *cell)
VariablePrecipitationLineDiffFlux(cuint popID)
Precipitation directional differential number flux (along line) Evaluation of the precipitating diffe...
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool writeParameters(vlsv::Writer &vlsvWriter)
virtual std::string getName() const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual std::string getName() const
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool setSpatialCell(const SpatialCell *cell)
virtual std::string getName() const
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool setSpatialCell(const SpatialCell *cell)
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual std::string getName() const
virtual bool getDataVectorInfo(std::string &dataType, unsigned int &dataSize, unsigned int &vectorSize) const
virtual std::string getName() const
virtual bool reduceData(const SpatialCell *cell, char *buffer)
virtual bool setSpatialCell(const SpatialCell *cell)
const uint32_t cuint
Definition definitions.h:50
float Real
Definition definitions.h:41