The BioCro C++ Library
soil_sunlight.h
Go to the documentation of this file.
1#ifndef SOIL_SUNLIGHT_H
2#define SOIL_SUNLIGHT_H
3
4#include "../framework/module.h"
5#include "../framework/state_map.h"
6
7namespace standardBML
8{
35class soil_sunlight : public direct_module
36{
37 public:
39 state_map const& input_quantities,
40 state_map* output_quantities)
41 : direct_module{},
42
43 // Get pointers to input quantities
44 canopy_direct_transmission_fraction{get_input(input_quantities, "canopy_direct_transmission_fraction")},
45 litter_cover_fraction{get_input(input_quantities, "litter_cover_fraction")},
46
47 // Get pointers to output quantities
48 soil_sunlit_fraction_op{get_op(output_quantities, "soil_sunlit_fraction")}
49 {
50 }
51 static string_vector get_inputs();
52 static string_vector get_outputs();
53 static std::string get_name() { return "soil_sunlight"; }
54
55 private:
56 // References to input quantities
57 double const& canopy_direct_transmission_fraction;
58 double const& litter_cover_fraction;
59
60 // Pointers to output quantities
61 double* soil_sunlit_fraction_op;
62
63 // Main operation
64 void do_operation() const;
65};
66
68{
69 return {
70 "canopy_direct_transmission_fraction", // dimensionless
71 "litter_cover_fraction" // dimensionless
72 };
73}
74
76{
77 return {
78 "soil_sunlit_fraction" // dimensionless
79 };
80}
81
82void soil_sunlight::do_operation() const
83{
84 update(soil_sunlit_fraction_op, canopy_direct_transmission_fraction *
85 (1.0 - litter_cover_fraction));
86}
87
88} // namespace standardBML
89#endif
Determines the fraction of ground area under the canopy exposed to direct sunlight.
Definition: soil_sunlight.h:36
static string_vector get_outputs()
Definition: soil_sunlight.h:75
static string_vector get_inputs()
Definition: soil_sunlight.h:67
soil_sunlight(state_map const &input_quantities, state_map *output_quantities)
Definition: soil_sunlight.h:38
static std::string get_name()
Definition: soil_sunlight.h:53
This is the standard BioCro module library; it includes the essential modules used in typical BioCro ...
Definition: aba_decay.h:8