DOLFINx 0.10.0.0
DOLFINx C++ interface
Loading...
Searching...
No Matches
Table.h
1// Copyright (C) 2008-2011 Anders Logg
2//
3// This file is part of DOLFINx (https://www.fenicsproject.org)
4//
5// SPDX-License-Identifier: LGPL-3.0-or-later
6
7#pragma once
8
9#include <cstdint>
10#include <map>
11#include <mpi.h>
12#include <string>
13#include <variant>
14#include <vector>
15
16namespace dolfinx
17{
18
28class Table
29{
30public:
33 enum class Reduction : std::uint8_t
34 {
35 average,
36 max,
37 min
38 };
39
41 Table(std::string title = "", bool right_justify = true);
42
44 Table(const Table& table) = default;
45
47 Table(Table&& table) = default;
48
50 ~Table() = default;
51
53 Table& operator=(const Table& table) = default;
54
56 Table& operator=(Table&& table) = default;
57
62 void set(const std::string& row, const std::string& col,
63 std::variant<std::string, int, double> value);
64
69 std::variant<std::string, int, double> get(const std::string& row,
70 const std::string& col) const;
71
76 Table reduce(MPI_Comm comm, Reduction reduction) const;
77
79 std::string name;
80
82 std::string str() const;
83
84private:
85 // Row and column names
86 std::vector<std::string> _rows, _cols;
87
88 // Table entry values
89 std::map<std::pair<std::string, std::string>,
90 std::variant<std::string, int, double>>
91 _values;
92
93 // True if we should right-justify the table entries
94 bool _right_justify;
95};
96
97} // namespace dolfinx
Table & operator=(Table &&table)=default
Move assignment.
Table(const Table &table)=default
Copy constructor.
void set(const std::string &row, const std::string &col, std::variant< std::string, int, double > value)
Definition Table.cpp:39
~Table()=default
Destructor.
Reduction
Definition Table.h:34
std::string name
Table name.
Definition Table.h:79
std::variant< std::string, int, double > get(const std::string &row, const std::string &col) const
Definition Table.cpp:55
Table(Table &&table)=default
Move constructor.
Table(std::string title="", bool right_justify=true)
Create empty table.
Definition Table.cpp:33
std::string str() const
Return string representation of the table.
Definition Table.cpp:200
Table reduce(MPI_Comm comm, Reduction reduction) const
Definition Table.cpp:69
Table & operator=(const Table &table)=default
Assignment operator.
Top-level namespace.
Definition defines.h:12