FIMS  v0.8.0
Loading...
Searching...
No Matches
fleet.hpp
Go to the documentation of this file.
1
9#ifndef FIMS_POPULATION_DYNAMICS_FLEET_HPP
10#define FIMS_POPULATION_DYNAMICS_FLEET_HPP
11
12#include "../../common/data_object.hpp"
13#include "../../common/fims_vector.hpp"
14#include "../../common/model_object.hpp"
15#include "../../distributions/distributions.hpp"
16#include "../selectivity/selectivity.hpp"
17
18namespace fims_popdy {
19
24template <class Type>
25struct Fleet : public fims_model_object::FIMSObject<Type> {
26 static uint32_t id_g;
27 size_t n_years;
28 size_t n_ages;
29 size_t n_lengths;
31 // selectivity
33 std::shared_ptr<SelectivityBase<Type>>
36 // landings data
38 std::shared_ptr<fims_data_object::DataObject<Type>>
43 // index data
45 std::shared_ptr<fims_data_object::DataObject<Type>>
50 // age comp data
52 std::shared_ptr<fims_data_object::DataObject<Type>>
55 // length comp data
57 std::shared_ptr<fims_data_object::DataObject<Type>>
60 // Mortality and catchability
68 q;
76 Fleet() { this->id = Fleet::id_g++; }
77
81 virtual ~Fleet() {}
82
89 void Prepare() {
90 // for(size_t fleet_ = 0; fleet_ <= this->n_fleets; fleet_++) {
91 // this -> Fmort[fleet_] = fims_math::exp(this -> log_Fmort[fleet_]);
92
93 for (size_t i = 0; i < this->log_q.size(); i++) {
94 this->q[i] = fims_math::exp(this->log_q[i]);
95 }
96
97 for (size_t year = 0; year < this->n_years; year++) {
98 this->Fmort[year] = fims_math::exp(this->log_Fmort[year]);
99 }
100 }
101
106 std::map<std::string, fims::Vector<fims::Vector<Type>>>& report_vectors) {
107 report_vectors["log_Fmort"].emplace_back(this->log_Fmort.to_tmb());
108 report_vectors["log_q"].emplace_back(this->log_q.to_tmb());
109 }
110
115 std::map<std::string, size_t>& report_vector_count) {
116 report_vector_count["log_Fmort"] += 1;
117 report_vector_count["log_q"] += 1;
118 }
119};
120
121// default id of the singleton fleet class
122template <class Type>
124
125} // end namespace fims_popdy
126
127#endif /* FIMS_POPULATION_DYNAMICS_FLEET_HPP */
Definition fims_vector.hpp:27
The population dynamics of FIMS.
Definition catch_at_age.hpp:41
void clear_internal()
Clears the internal objects.
Definition rcpp_interface.hpp:279
FIMSObject struct that defines member types and returns the unique id.
Definition model_object.hpp:25
Base class for all fleets.
Definition fleet.hpp:25
std::string observed_landings_units
Definition fleet.hpp:41
Fleet()
Constructor.
Definition fleet.hpp:76
fims::Vector< Type > log_q
Definition fleet.hpp:64
std::shared_ptr< SelectivityBase< Type > > selectivity
Definition fleet.hpp:34
static uint32_t id_g
Definition fleet.hpp:26
int fleet_observed_lengthcomp_data_id_m
Definition fleet.hpp:56
int fleet_selectivity_id_m
Definition fleet.hpp:32
std::shared_ptr< fims_data_object::DataObject< Type > > observed_agecomp_data
Definition fleet.hpp:53
size_t n_years
Definition fleet.hpp:27
int fleet_observed_agecomp_data_id_m
Definition fleet.hpp:51
std::shared_ptr< fims_data_object::DataObject< Type > > observed_index_data
Definition fleet.hpp:46
fims::Vector< Type > Fmort
Definition fleet.hpp:66
void Prepare()
Prepare to run the fleet module. Called at each model iteration, and used to exponentiate the natural...
Definition fleet.hpp:89
size_t n_ages
Definition fleet.hpp:28
virtual ~Fleet()
Destructor.
Definition fleet.hpp:81
fims::Vector< Type > q
Definition fleet.hpp:68
std::shared_ptr< fims_data_object::DataObject< Type > > observed_lengthcomp_data
Definition fleet.hpp:58
virtual void create_report_vectors(std::map< std::string, fims::Vector< fims::Vector< Type > > > &report_vectors)
Definition fleet.hpp:105
fims::Vector< Type > age_to_length_conversion
Definition fleet.hpp:70
int fleet_observed_index_data_id_m
Definition fleet.hpp:44
std::shared_ptr< fims_data_object::DataObject< Type > > observed_landings_data
Definition fleet.hpp:39
fims::Vector< Type > log_Fmort
Definition fleet.hpp:62
int fleet_observed_landings_data_id_m
Definition fleet.hpp:37
virtual void get_report_vector_count(std::map< std::string, size_t > &report_vector_count)
Definition fleet.hpp:114
size_t n_lengths
Definition fleet.hpp:29
std::string observed_index_units
Definition fleet.hpp:48