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

DiFfRG: /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/discretization/data/csv_output.hh Source File
DiFfRG
Discretization Framework for functional Renormalization Group flows
csv_output.hh
Go to the documentation of this file.
1#pragma once
2
3// DiFfRG
5
6// standard library
7#include <fstream>
8#include <unordered_map>
9#include <unordered_set>
10#include <vector>
11
12namespace DiFfRG
13{
21 {
22 public:
30 CsvOutput(const std::string top_folder, const std::string output_name);
31 [[deprecated("Use CsvOutput(top_folder, output_name) instead")]] CsvOutput(
32 const std::string top_folder, const std::string output_name, [[maybe_unused]] const ConfigTree &config)
33 : CsvOutput(std::move(top_folder), std::move(output_name))
34 {
35 }
36
43 void value(const std::string &name, const double value);
44
51 void flush(const double time);
52 void validate_frame() const;
53
59 void set_Lambda(const double Lambda);
60
61 private:
62 const std::string top_folder;
63 const std::string output_name;
64 std::ofstream output_stream;
65
66 std::vector<std::string> insertion_order;
67 std::unordered_map<std::string, std::vector<double>> values;
68 std::unordered_set<std::string> written_this_frame;
69
70 std::vector<std::string> header;
71 std::vector<double> time_values;
72 std::vector<double> k_values;
73
74 double Lambda;
75 };
76} // namespace DiFfRG
A hierarchical configuration tree, readable from JSON and TOML files.
Definition config_tree.hh:32
A class to output data to a CSV file.
Definition csv_output.hh:21
std::vector< std::string > insertion_order
Definition csv_output.hh:66
void flush(const double time)
Add a value to the output.
std::unordered_map< std::string, std::vector< double > > values
Definition csv_output.hh:67
void validate_frame() const
std::ofstream output_stream
Definition csv_output.hh:64
const std::string output_name
Definition csv_output.hh:63
void value(const std::string &name, const double value)
Add a value to the output.
std::vector< std::string > header
Definition csv_output.hh:70
CsvOutput(const std::string top_folder, const std::string output_name)
Construct a new Csv Output object.
std::vector< double > k_values
Definition csv_output.hh:72
CsvOutput(const std::string top_folder, const std::string output_name, const ConfigTree &config)
Definition csv_output.hh:31
void set_Lambda(const double Lambda)
Set the value of Lambda. If Lambda is set, the output will contain a column for k = exp(-t) * Lambda.
std::vector< double > time_values
Definition csv_output.hh:71
double Lambda
Definition csv_output.hh:74
std::unordered_set< std::string > written_this_frame
Definition csv_output.hh:68
const std::string top_folder
Definition csv_output.hh:62
Definition complex_math.hh:10
@ config
/discretization/threads.