The BioCro C++ Library
module_graph_test.h
Go to the documentation of this file.
1#ifndef MODULE_GRAPH_TEST_H
2#define MODULE_GRAPH_TEST_H
3
4#include "../framework/module.h"
5#include "../framework/state_map.h"
6
7namespace standardBML
8{
9class Module_1 : public direct_module
10{
11 public:
12 Module_1(state_map const& /*input_quantities*/, state_map* output_quantities)
13 : direct_module{},
14
15 // Get pointers to input quantities
16 // None
17
18 // Get pointers to output quantities
19 A_op{get_op(output_quantities, "A")},
20 B_op{get_op(output_quantities, "B")}
21 {
22 }
23 static string_vector get_inputs();
24 static string_vector get_outputs();
25 static std::string get_name() { return "Module_1"; }
26
27 private:
28 // Pointers to input quantities
29 // Nothing here
30
31 // Pointers to output quantities
32 double* A_op;
33 double* B_op;
34
35 // Main operation
36 void do_operation() const;
37};
38
39string_vector Module_1::get_inputs()
40{
41 return {
42 // None
43 };
44}
45
46string_vector Module_1::get_outputs()
47{
48 return {
49 "A", //
50 "B" //
51 };
52}
53
54void Module_1::do_operation() const
55{
56 // Collect inputs and make calculations
57 // Nothing here
58
59 // Update the output quantity list
60 update(A_op, 0.0);
61 update(B_op, 0.0);
62}
63
64class Module_2 : public direct_module
65{
66 public:
67 Module_2(state_map const& input_quantities, state_map* output_quantities)
68 : direct_module{},
69
70 // Get pointers to input quantities
71 B_ip{get_ip(input_quantities, "B")},
72
73 // Get pointers to output quantities
74 C_op{get_op(output_quantities, "C")},
75 D_op{get_op(output_quantities, "D")}
76 {
77 }
78 static string_vector get_inputs();
79 static string_vector get_outputs();
80 static std::string get_name() { return "Module_2"; }
81
82 private:
83 // Pointers to input quantities
84 const double* B_ip;
85
86 // Pointers to output quantities
87 double* C_op;
88 double* D_op;
89
90 // Main operation
91 void do_operation() const;
92};
93
94string_vector Module_2::get_inputs()
95{
96 return {
97 "B" //
98 };
99}
100
102{
103 return {
104 "C", //
105 "D" //
106 };
107}
108
109void Module_2::do_operation() const
110{
111 // Collect inputs and make calculations
112 // Nothing here
113
114 // Update the output quantity list
115 update(C_op, 0.0);
116 update(D_op, 0.0);
117}
118
119class Module_3 : public direct_module
120{
121 public:
122 Module_3(state_map const& input_quantities, state_map* output_quantities)
123 : direct_module{},
124
125 // Get pointers to input quantities
126 A_ip{get_ip(input_quantities, "A")},
127 C_ip{get_ip(input_quantities, "C")},
128
129 // Get pointers to output quantities
130 E_op{get_op(output_quantities, "E")}
131 {
132 }
133 static string_vector get_inputs();
134 static string_vector get_outputs();
135 static std::string get_name() { return "Module_3"; }
136
137 private:
138 // Pointers to input quantities
139 const double* A_ip;
140 const double* C_ip;
141
142 // Pointers to output quantities
143 double* E_op;
144
145 // Main operation
146 void do_operation() const;
147};
148
149string_vector Module_3::get_inputs()
150{
151 return {
152 "A", //
153 "C" //
154 };
155}
156
158{
159 return {
160 "E" //
161 };
162}
163
164void Module_3::do_operation() const
165{
166 // Collect inputs and make calculations
167 // Nothing here
168
169 // Update the output quantity list
170 update(E_op, 0.0);
171}
172
173} // namespace standardBML
174#endif
Module_1(state_map const &, state_map *output_quantities)
static string_vector get_outputs()
static string_vector get_inputs()
static std::string get_name()
Module_2(state_map const &input_quantities, state_map *output_quantities)
static string_vector get_outputs()
static string_vector get_inputs()
static std::string get_name()
Module_3(state_map const &input_quantities, state_map *output_quantities)
static string_vector get_outputs()
static string_vector get_inputs()
static std::string get_name()
This is the standard BioCro module library; it includes the essential modules used in typical BioCro ...
Definition: aba_decay.h:8