SPH
LogWriter.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include "physics/Integrals.h"
5 #include "run/Trigger.h"
6 
8 
10 class ILogWriter : public PeriodicTrigger {
11 protected:
13 
14 public:
23  explicit ILogWriter(const SharedPtr<ILogger>& logger, const Float period = 0._f);
24 
28  virtual AutoPtr<ITrigger> action(Storage& storage, Statistics& stats) override final;
29 
34  virtual void write(const Storage& storage, const Statistics& stats) = 0;
35 };
36 
40 class StandardLogWriter : public ILogWriter {
41 private:
42  std::string name;
43 
44 public:
45  StandardLogWriter(const SharedPtr<ILogger>& logger, const RunSettings& settings);
46 
47  virtual void write(const Storage& storage, const Statistics& stats) override;
48 };
49 
54 public:
56  : StandardLogWriter(logger, settings) {}
57 
58  virtual void write(const Storage& storage, const Statistics& stats) override;
59 };
60 
62 class BriefLogWriter : public ILogWriter {
63 private:
64  std::string name;
65 
66 public:
67  BriefLogWriter(const SharedPtr<ILogger>& logger, const RunSettings& settings);
68 
69  virtual void write(const Storage& storage, const Statistics& stats) override;
70 };
71 
76 private:
77  TotalEnergy energy;
78  TotalMomentum momentum;
79  TotalAngularMomentum angularMomentum;
80 
81 public:
83  IntegralsLogWriter(const Path& path, const Size interval);
84 
85  IntegralsLogWriter(const SharedPtr<ILogger>& logger, const Size interval);
86 
87  virtual void write(const Storage& storage, const Statistics& stats) override;
88 };
89 
93 class NullLogWriter : public ILogWriter {
94 public:
95  NullLogWriter();
96 
97  virtual void write(const Storage& storage, const Statistics& stats) override;
98 };
99 
NAMESPACE_SPH_BEGIN
Definition: BarnesHut.cpp:13
uint32_t Size
Integral type used to index arrays (by default).
Definition: Globals.h:16
double Float
Precision used withing the code. Use Float instead of float or double where precision is important.
Definition: Globals.h:13
Integrals of motion and other integral quantities.
#define NAMESPACE_SPH_END
Definition: Object.h:12
Triggers of auxiliary actions during the run.
Wrapper of pointer that deletes the resource from destructor.
Definition: AutoPtr.h:15
Writer logging only basic run information.
Definition: LogWriter.h:62
virtual void write(const Storage &storage, const Statistics &stats) override
Writes to the log using provided storage and statistics.
Definition: LogWriter.cpp:140
BriefLogWriter(const SharedPtr< ILogger > &logger, const RunSettings &settings)
Definition: LogWriter.cpp:135
Base class for objects logging run statistics.
Definition: LogWriter.h:10
SharedPtr< ILogger > logger
Definition: LogWriter.h:12
virtual AutoPtr< ITrigger > action(Storage &storage, Statistics &stats) override final
Writes to the log using provided storage and statistics.
Definition: LogWriter.cpp:18
ILogWriter(const SharedPtr< ILogger > &logger, const Float period=0._f)
Constructs the log file.
Definition: LogWriter.cpp:12
virtual void write(const Storage &storage, const Statistics &stats)=0
Writes to the log using provided storage and statistics.
Writer logging selected integrals of motion.
Definition: LogWriter.h:75
virtual void write(const Storage &storage, const Statistics &stats) override
Writes to the log using provided storage and statistics.
Definition: LogWriter.cpp:155
IntegralsLogWriter(const Path &path, const Size interval)
Creates a writer that writes the output into given file.
Definition: LogWriter.cpp:149
Helper writer that does not write any logs.
Definition: LogWriter.h:93
virtual void write(const Storage &storage, const Statistics &stats) override
Writes to the log using provided storage and statistics.
Definition: LogWriter.cpp:170
Object representing a path on a filesystem.
Definition: Path.h:17
Trigger executing given action every period.
Definition: Trigger.h:37
Writer logging useful statistics (current run time, relative progress, time step, ....
Definition: LogWriter.h:40
virtual void write(const Storage &storage, const Statistics &stats) override
Writes to the log using provided storage and statistics.
Definition: LogWriter.cpp:42
StandardLogWriter(const SharedPtr< ILogger > &logger, const RunSettings &settings)
Definition: LogWriter.cpp:37
Object holding various statistics about current run.
Definition: Statistics.h:22
Container storing all quantities used within the simulations.
Definition: Storage.h:230
Computes total angular momentum of all SPH particles with a respect to the reference frame.
Definition: Integrals.h:81
Returns the total energy of all particles.
Definition: Integrals.h:132
Computes total momentum of all SPH particles with a respect to the reference frame.
Definition: Integrals.h:62
Extension of StandardLogWriter, printing additional information abount quantities.
Definition: LogWriter.h:53
virtual void write(const Storage &storage, const Statistics &stats) override
Writes to the log using provided storage and statistics.
Definition: LogWriter.cpp:91
VerboseLogWriter(const SharedPtr< ILogger > &logger, const RunSettings &settings)
Definition: LogWriter.h:55