/home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/discretization/data/diagnostic_port.hh Source File#

DiFfRG: /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/discretization/data/diagnostic_port.hh Source File
DiFfRG
Discretization Framework for functional Renormalization Group flows
diagnostic_port.hh
Go to the documentation of this file.
1#pragma once
2
4
5#include <initializer_list>
6#include <memory>
7#include <string>
8#include <utility>
9#include <vector>
10
11namespace DiFfRG
12{
21 {
22 public:
23 using Field = std::pair<std::string, double>;
24 using Record = std::vector<Field>;
25
26 DiagnosticPort() = default;
27
28 void record(const std::string &table, double time, const Record &fields) const;
29 void record(const std::string &table, double time, std::initializer_list<Field> fields) const;
30 void scalar(const std::string &table, const std::string &name, double time, double value) const;
31 void write_text(const std::string &relative_path, const std::string &contents) const;
32
33 explicit operator bool() const noexcept { return static_cast<bool>(state); }
34
35 private:
36 struct State;
37 explicit DiagnosticPort(std::shared_ptr<State> state) : state(std::move(state)) {}
38
39 static DiagnosticPort create(const OutputPath &path, double Lambda, bool active);
40
41 std::shared_ptr<State> state;
42
43 template <unsigned int, typename> friend class OutputSession_impl;
44 };
45} // namespace DiFfRG
Definition diagnostic_port.hh:21
std::shared_ptr< State > state
Definition diagnostic_port.hh:41
void scalar(const std::string &table, const std::string &name, double time, double value) const
void record(const std::string &table, double time, const Record &fields) const
void write_text(const std::string &relative_path, const std::string &contents) const
std::pair< std::string, double > Field
Definition diagnostic_port.hh:23
void record(const std::string &table, double time, std::initializer_list< Field > fields) const
std::vector< Field > Record
Definition diagnostic_port.hh:24
static DiagnosticPort create(const OutputPath &path, double Lambda, bool active)
DiagnosticPort(std::shared_ptr< State > state)
Definition diagnostic_port.hh:37
Definition output_path.hh:16
Definition output_session.hh:176
Definition complex_math.hh:10