Modular Megafauna Model 1.1.5
A physiological, dynamic herbivore simulator in C++.
Loading...
Searching...
No Matches
simple_habitat.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2020 W. Traylor <wolfgang.traylor@senckenberg.de>
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
11#ifndef FAUNA_DEMO_SIMPLE_HABITAT_H
12#define FAUNA_DEMO_SIMPLE_HABITAT_H
13
14#include <vector>
15#include "logistic_grass.h"
16
17using namespace Fauna;
18
19namespace Fauna {
20namespace Demo {
21
23class SimpleHabitat : public Habitat {
24 public:
26 struct Parameters {
29
31
33 std::vector<double> air_temperature = {0.0};
34 };
35
37
43 const std::string aggregation_unit)
47
48 public: // ------ Fauna::Habitat implementations ----
49 virtual void add_excreted_nitrogen(const double) {} // disabled
50 virtual const char* get_aggregation_unit() const {
51 return aggregation_unit.c_str();
52 }
54 HabitatForage result;
55 result.grass = grass.get_forage();
56 return result;
57 }
58 virtual HabitatEnvironment get_environment() const;
59 virtual void init_day(const int today);
60 virtual void remove_eaten_forage(const ForageMass& eaten_forage);
61
62 protected:
64
65 virtual void grow_daily(const int day_of_year) {
67 }
68
69 private:
70 const std::string aggregation_unit;
72
75 double air_temperature = 0.0;
76
79
81
84};
85
86} // namespace Demo
87} // namespace Fauna
88
89#endif // FAUNA_DEMO_SIMPLE_HABITAT_H
Definition: logistic_grass.h:25
const GrassForage & get_forage() const
Get current grass forage.
Definition: logistic_grass.h:93
void grow_daily(const int day_of_year)
Perform grass growth and decay for one day.
Definition: logistic_grass.cpp:123
A herbivore habitat independent of the LPJ-GUESS framework for testing.
Definition: simple_habitat.h:23
double air_temperature
Definition: simple_habitat.h:75
virtual void init_day(const int today)
Update at the start of the day.
Definition: simple_habitat.cpp:23
virtual void grow_daily(const int day_of_year)
Perform daily growth.
Definition: simple_habitat.h:65
virtual HabitatForage get_available_forage() const
Get dry-matter biomass [kgDM/km²] that is available to herbivores to eat.
Definition: simple_habitat.h:53
virtual HabitatEnvironment get_environment() const
Get today’s abiotic environmental variables in the habitat.
Definition: simple_habitat.cpp:17
virtual const char * get_aggregation_unit() const
A string identifier for the group of habitats whose output is aggregated.
Definition: simple_habitat.h:50
const std::string aggregation_unit
Definition: simple_habitat.h:70
int simulation_month
The current simulation month, starting with zero.
Definition: simple_habitat.h:83
virtual void remove_eaten_forage(const ForageMass &eaten_forage)
Remove forage eaten by herbivores.
Definition: simple_habitat.cpp:42
const SimpleHabitat::Parameters settings
Definition: simple_habitat.h:71
LogisticGrass grass
Grass in the habitat.
Definition: simple_habitat.h:78
SimpleHabitat(const SimpleHabitat::Parameters settings, const std::string aggregation_unit)
Constructor with simulation settings.
Definition: simple_habitat.h:42
virtual void add_excreted_nitrogen(const double)
Definition: simple_habitat.h:49
All values for large herbivore forage in a Habitat.
Definition: habitat_forage.h:21
GrassForage grass
The grass forage in the habitat.
Definition: habitat_forage.h:28
Abstract class of a homogenous spatial unit populated by herbivores.
Definition: habitat.h:29
int day_of_year
Definition: habitat.h:125
Simplistic grass model for demonstration purpose.
Definition: average.h:16
Settings for grass growth.
Definition: logistic_grass.h:31
Simulation parameters for a SimpleHabitat object.
Definition: simple_habitat.h:26
std::vector< double > air_temperature
Air temperature [°C] for each month.
Definition: simple_habitat.h:33
LogisticGrass::Parameters grass
Parameters for logistic grass growth.
Definition: simple_habitat.h:28
Variables describing the habitat that are not forage ⇒ abiotic environment.
Definition: environment.h:16