1#ifndef SRC_IO_LOADBALANCEWRITER_H_
2#define SRC_IO_LOADBALANCEWRITER_H_
4#include "plugins/PluginBase.h"
5#include "utils/Timer.h"
12#define LB_WRITER_DEFAULT_TIMER_NAME "LoadbalanceWriter_default"
87 void recordTimes(
long unsigned int simstep);
89 void writeOutputFileHeader();
90 void writeLBEntry(
size_t id, std::ofstream &outputfile,
int numRanks);
92 void displayWarning(
unsigned long simstep,
const std::string& timername,
double f_LB);
94 unsigned long _writeFrequency;
95 unsigned long _averageLength{10};
98 std::vector<std::string> _timerNames;
99 std::vector<double> _times;
102 std::deque<double> _timesForAverageBuffer;
103 unsigned long _lastTimesOldValueCount{0};
104 std::vector<double> _global_sum_average_times;
105 std::vector<double> _global_max_average_times;
107 std::vector<double> _sum_times;
108 std::vector<double> _global_sum_times;
109 std::vector<double> _global_times;
110 std::vector<unsigned long> _simsteps;
111 std::map<std::string, double> _warninglevels;
114 std::map<std::string, bool> _incremental;
116 std::map<std::string, double> _incremental_previous_times;
117 std::vector<double> getAveragedTimes();
handle boundary region and multiple processes
Definition: DomainDecompBase.h:51
This class is used to read in the phasespace and to handle macroscopic values.
Definition: Domain.h:47
The LoadbalanceWriter writes out information about the programs load balance.
Definition: LoadBalanceWriter.h:39
void init(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain) override
Method init will be called at the begin of the simulation.
Definition: LoadBalanceWriter.cpp:53
void readXML(XMLfileUnits &xmlconfig) override
Read in XML configuration for LoadbalanceWriter.
Definition: LoadBalanceWriter.cpp:18
void finish(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain) override
Method finish will be called at the end of the simulation.
Definition: LoadBalanceWriter.h:77
void endStep(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain, unsigned long simstep) override
Method endStep will be called at the end of each time step.
Definition: LoadBalanceWriter.cpp:85
std::string getPluginName() override
return the name of the plugin
Definition: LoadBalanceWriter.h:81
This Interface is used to get access to particles and pairs of particles.
Definition: ParticleContainer.h:69
The PluginBase class provides the interface for any kind of output/plugin classes - called "(output) ...
Definition: PluginBase.h:47
This class is used to measure times in sequential and parallel versions.
Definition: Timer.h:59
XML file with unit attributes abstraction.
Definition: xmlfileUnits.h:25
::xsd::cxx::tree::string< char, simple_type > string
C++ type corresponding to the string XML Schema built-in type.
Definition: vtk-punstructured.h:270