The BioCro C++ Library
aba_decay.h
Go to the documentation of this file.
1#ifndef ABA_DECAY_H
2#define ABA_DECAY_H
3
4#include "../framework/module.h"
5#include "../framework/state_map.h"
6
7namespace standardBML
8{
9class aba_decay : public differential_module
10{
11 public:
12 aba_decay(state_map const& input_quantities, state_map* output_quantities)
13 : differential_module{},
14
15 // Get pointers to input quantities
16 soil_aba_concentration_ip{get_ip(input_quantities, "soil_aba_concentration")},
17 aba_decay_constant_ip{get_ip(input_quantities, "aba_decay_constant")},
18
19 // Get pointers to output quantities
20 soil_aba_concentration_op{get_op(output_quantities, "soil_aba_concentration")}
21 {
22 }
23 static string_vector get_inputs();
24 static string_vector get_outputs();
25 static std::string get_name() { return "aba_decay"; }
26
27 private:
28 // Pointers to input quantities
29 const double* soil_aba_concentration_ip;
30 const double* aba_decay_constant_ip;
31
32 // Pointers to output quantities
33 double* soil_aba_concentration_op;
34
35 // Main operation
36 void do_operation() const;
37};
38
39string_vector aba_decay::get_inputs()
40{
41 return {
42 "aba_decay_constant", //
43 "soil_aba_concentration" //
44 };
45}
46
48{
49 return {
50 "soil_aba_concentration" //
51 };
52}
53
54void aba_decay::do_operation() const
55{
56 // Collect input quantities and make calculations
57 double aba_decay_constant = *aba_decay_constant_ip;
58 double soil_aba_concentration = *soil_aba_concentration_ip;
59
60 double decay_rate = -aba_decay_constant * soil_aba_concentration;
61
62 // Update the output quantity list
63 update(soil_aba_concentration_op, decay_rate);
64}
65
66} // namespace standardBML
67#endif
aba_decay(state_map const &input_quantities, state_map *output_quantities)
Definition: aba_decay.h:12
static string_vector get_outputs()
Definition: aba_decay.h:47
static string_vector get_inputs()
Definition: aba_decay.h:39
static std::string get_name()
Definition: aba_decay.h:25
This is the standard BioCro module library; it includes the essential modules used in typical BioCro ...
Definition: aba_decay.h:8