BioCMAMC-ST
simulation_getter.hpp
1#ifndef __SIMULATIONS_UNIT_GETTER_HPP__
2#define __SIMULATIONS_UNIT_GETTER_HPP__
3
4#include <optional>
5#include <simulation/feed_descriptor.hpp>
6#include <simulation/probe.hpp>
7#include <simulation/simulation_times.hpp>
8#include <span>
9
10namespace MC
11{
12 struct MonteCarloUnit;
13} // namespace MC
14
15namespace Mixture
16{
17
18 class SpecieTable;
19
20} // namespace Mixture
21
22namespace Simulation
23{
24
25 struct Sparam
26 {
28
29 static Sparam
31 {
32 return { .f_reaction = true };
33 }
34 };
35
36 class SimulationUnit;
37 struct Dimensions;
38
39 class Getter
40 {
41 private:
43
44 public:
45 explicit Getter(SimulationUnit const* a);
46
47 Getter(const Getter& m);
48
49 Getter& operator=(const Getter& m) = delete;
50 Getter& operator=(Getter&& m) = delete;
51
52 ~Getter();
53
54 // [[nodiscard]] double start_time() const noexcept;
55 // [[nodiscard]] double endtime() const noexcept;
56 //
57
58 [[nodiscard]] const SimulatimeTimes& times() const noexcept;
59
60 [[nodiscard]] double absolute_time() const noexcept;
61 [[nodiscard]] double relative_time() const noexcept;
62
63 [[nodiscard]] bool two_phase_flow() const noexcept;
64 [[nodiscard]] Dimensions getDimensions() const noexcept;
65
66 [[nodiscard]] const std::shared_ptr<Mixture::SpecieTable>&
67 table() const noexcept;
68
73 [[nodiscard]] std::shared_ptr<Mixture::SpecieTable>
74 table_ownable() const noexcept;
75
76 [[nodiscard]] const std::unique_ptr<MC::MonteCarloUnit>&
77 mc_unit() const noexcept;
78
79 [[nodiscard]] const Simulation::Feed::SimulationFeed&
80 get_feed() const noexcept;
81
82 [[nodiscard]] std::span<const double> getCliqData() const;
83 [[nodiscard]] std::optional<std::span<const double>> getCgasData() const;
84 [[nodiscard]] std::span<const double> getContributionData() const;
85 [[nodiscard]] std::optional<std::span<const double>> getMTRData() const;
86
87 [[nodiscard]] std::span<double> getCliqData_mut() const;
88 [[nodiscard]] std::span<double> getContributionData_mut() const;
89 [[nodiscard]] std::ranges::subrange<ProbeIterator, ProbeIterator>
90 it_probes() const;
91 };
92
93}; // namespace Simulation
94
95#endif
Definition species_descriptor.hpp:36
const Simulation::Feed::SimulationFeed & get_feed() const noexcept
Definition simulation.getset.cpp:87
bool two_phase_flow() const noexcept
Definition simulation.getset.cpp:44
std::span< double > getContributionData_mut() const
Definition simulation.getset.cpp:135
std::shared_ptr< Mixture::SpecieTable > table_ownable() const noexcept
Definition simulation.getset.cpp:171
Dimensions getDimensions() const noexcept
Definition simulation.getset.cpp:73
std::optional< std::span< const double > > getCgasData() const
Definition simulation.getset.cpp:110
~Getter()
Definition simulation.getset.cpp:37
const std::shared_ptr< Mixture::SpecieTable > & table() const noexcept
Definition simulation.getset.cpp:163
Getter(SimulationUnit const *a)
Definition simulation.getset.cpp:25
std::span< double > getCliqData_mut() const
Definition simulation.getset.cpp:103
Getter & operator=(const Getter &m)=delete
double relative_time() const noexcept
Definition simulation.getset.cpp:156
double absolute_time() const noexcept
Definition simulation.getset.cpp:52
Getter & operator=(Getter &&m)=delete
std::ranges::subrange< ProbeIterator, ProbeIterator > it_probes() const
Definition simulation.getset.cpp:142
const SimulatimeTimes & times() const noexcept
Definition simulation.getset.cpp:149
SimulationUnit const * a_
Definition simulation_getter.hpp:42
std::optional< std::span< const double > > getMTRData() const
Definition simulation.getset.cpp:128
const std::unique_ptr< MC::MonteCarloUnit > & mc_unit() const noexcept
Definition simulation.getset.cpp:80
std::span< const double > getContributionData() const
Definition simulation.getset.cpp:121
std::span< const double > getCliqData() const
Definition simulation.getset.cpp:96
Definition simulation.hpp:46
Namespace that contains classes and structures related to Monte Carlo (MC) simulations.
Definition alias.hpp:16
Definition species_descriptor.hpp:10
Definition feed_descriptor.hpp:36
Namespace that contains classes and structures related to simulation handling.
Definition host_specific.hpp:12
MapProbes::const_iterator ProbeIterator
Definition probe.hpp:154
General-purpose Monte Carlo unit to carry out simulations.
Definition unit.hpp:34
Definition dimensions.hpp:9
Definition simulation_times.hpp:7
Definition simulation_getter.hpp:26
bool f_reaction
Definition simulation_getter.hpp:27
static Sparam fdefault()
Definition simulation_getter.hpp:30