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 Simulation
16{
17
18 struct Sparam
19 {
21
22 static Sparam
24 {
25 return { .f_reaction = true };
26 }
27 };
28
29 class SimulationUnit;
30 struct Dimensions;
31
32 class Getter
33 {
34 private:
36
37 public:
38 explicit Getter(SimulationUnit const* a);
39
40 Getter(const Getter& m);
41
42 Getter& operator=(const Getter& m) = delete;
43 Getter& operator=(Getter&& m) = delete;
44
45 ~Getter();
46
47 // [[nodiscard]] double start_time() const noexcept;
48 // [[nodiscard]] double endtime() const noexcept;
49 //
50
51 [[nodiscard]] const SimulatimeTimes& times() const noexcept;
52
53 [[nodiscard]] double absolute_time() const noexcept;
54 [[nodiscard]] double relative_time() const noexcept;
55
56 [[nodiscard]] bool two_phase_flow() const noexcept;
57 [[nodiscard]] Dimensions getDimensions() const noexcept;
58
59 [[nodiscard]] const std::unique_ptr<MC::MonteCarloUnit>&
60 mc_unit() const noexcept;
61 [[nodiscard]] const Simulation::Feed::SimulationFeed&
62 get_feed() const noexcept;
63
64 [[nodiscard]] std::span<const double> getCliqData() const;
65 [[nodiscard]] std::optional<std::span<const double>> getCgasData() const;
66 [[nodiscard]] std::span<const double> getContributionData() const;
67 [[nodiscard]] std::optional<std::span<const double>> getMTRData() const;
68
69 [[nodiscard]] std::span<double> getCliqData_mut() const;
70 [[nodiscard]] std::span<double> getContributionData_mut() const;
71 [[nodiscard]] std::ranges::subrange<ProbeIterator, ProbeIterator>
72 it_probes() const;
73 };
74
75}; // namespace Simulation
76
77#endif
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
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
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:35
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 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:19
bool f_reaction
Definition simulation_getter.hpp:20
static Sparam fdefault()
Definition simulation_getter.hpp:23