BioCMAMC-ST
scalar_initializer.hpp
1#ifndef __SIMULATION_SCALAR_INITIALIZER_HPP__
2#define __SIMULATION_SCALAR_INITIALIZER_HPP__
3
4#include <cstddef>
5#include <cstdint>
6#include <functional>
7#include <optional>
8#include <span>
9#include <vector>
10
11namespace Simulation
12{
13 enum class ScalarInitialiserType:std::uint8_t
14 {
15 Uniform, // Need vec{uniform concentration}
16 Local, // Need vec{index compartment }+ vec{concentration}
17 File, // Need filepath
18 CustomScript ,// Need script path
19 FullCase ,// Need script path
20 };
21
22 // using init_scalar_f_t =
23 // std::function<void(size_t, CmaRead::L2DView<double> &)>;
24
26 std::function<double(std::size_t, std::size_t)>;
27
28
30 {
31 std::size_t n_species;
32 std::span<double> volumesgas;
33 std::span<double> volumesliq;
35
36 std::optional<init_scalar_f_t> liquid_f_init = std::nullopt;
37 std::optional<init_scalar_f_t> gas_f_init = std::nullopt;
38 std::optional<std::vector<double>> liquid_buffer = std::nullopt;
39 std::optional<std::vector<double>> gas_buffer = std::nullopt;
40 bool gas_flow = false;
41 };
42
43} // namespace Simulation
44
45#endif
Namespace that contains classes and structures related to simulation handling.
Definition host_specific.hpp:12
std::function< double(std::size_t, std::size_t)> init_scalar_f_t
Definition scalar_initializer.hpp:25
ScalarInitialiserType
Definition scalar_initializer.hpp:14
Definition scalar_initializer.hpp:30
std::optional< std::vector< double > > liquid_buffer
Definition scalar_initializer.hpp:38
bool gas_flow
Definition scalar_initializer.hpp:40
std::optional< init_scalar_f_t > liquid_f_init
Definition scalar_initializer.hpp:36
std::size_t n_species
Definition scalar_initializer.hpp:31
ScalarInitialiserType type
Definition scalar_initializer.hpp:34
std::optional< init_scalar_f_t > gas_f_init
Definition scalar_initializer.hpp:37
std::span< double > volumesliq
Definition scalar_initializer.hpp:33
std::optional< std::vector< double > > gas_buffer
Definition scalar_initializer.hpp:39
std::span< double > volumesgas
Definition scalar_initializer.hpp:32