Gadget
grower.h
Go to the documentation of this file.
1 #ifndef grower_h
2 #define grower_h
3 
4 #include "areatime.h"
5 #include "conversionindex.h"
6 #include "commentstream.h"
7 #include "popinfomatrix.h"
9 #include "livesonareas.h"
10 #include "formulavector.h"
11 #include "keeper.h"
12 #include "growthcalc.h"
13 
20 class Grower : public HasName, protected LivesOnAreas {
21 public:
35  Grower(CommentStream& infile, const LengthGroupDivision* const OtherLgrpDiv,
36  const LengthGroupDivision* const GivenLgrpDiv, const IntVector& Areas,
37  const TimeClass* const TimeInfo, Keeper* const keeper, const char* refWeight,
38  const char* givenname, const AreaClass* const Area, const CharPtrVector& lenindex);
42  ~Grower();
51  void calcGrowth(int area, const AreaClass* const Area, const TimeClass* const TimeInfo,
52  const DoubleVector& FeedingLevel, const DoubleVector& Consumption);
59  void calcGrowth(int area, const AreaClass* const Area, const TimeClass* const TimeInfo);
66  void implementGrowth(int area, const PopInfoVector& NumberInArea,
67  const LengthGroupDivision* const Lengths);
73  void implementGrowth(int area, const LengthGroupDivision* const Lengths);
79  void Sum(const PopInfoVector& NumberInArea, int area);
83  void Reset();
88  void Print(ofstream& outfile) const;
94  const DoubleMatrix& getLengthIncrease(int area) const { return *lgrowth[this->areaNum(area)]; };
100  const DoubleMatrix& getWeightIncrease(int area) const { return *wgrowth[this->areaNum(area)]; };
106  const DoubleVector& getWeight(int area) const { return interpWeightGrowth[this->areaNum(area)]; };
111  int getFixedWeights() { return fixedweights; };
112 protected:
179  double growth;
183  double alpha;
202  double part3;
208 };
209 
210 #endif
This is the class used to store information about the areas used for the current model.
Definition: areatime.h:18
This class implements a dynamic vector of char values.
Definition: charptrvector.h:8
This is the class used to strip comments (and whitespace) from any input stream.
Definition: commentstream.h:40
This is the class used to convert information from one LengthGroupDivision length structure to a seco...
Definition: conversionindex.h:12
This class implements a dynamic vector of DoubleMatrix values.
Definition: doublematrixptrvector.h:10
This class implements a dynamic vector of DoubleVector values.
Definition: doublematrix.h:11
This class implements a dynamic vector of double values.
Definition: doublevector.h:11
This is the class used to calculate the value of the variables used in the model simulation.
Definition: formula.h:18
This is the class used to calculate, and implement, the affect of growth on the stock.
Definition: grower.h:20
DoubleMatrix calcWeightGrowth
This is the DoubleMatrix used to store the calculated increase in weight on the current timestep.
Definition: grower.h:144
DoubleMatrixPtrVector wgrowth
This is the DoubleMatrixPtrVector used to store the calculated increase in weight for each length gro...
Definition: grower.h:154
const DoubleMatrix & getLengthIncrease(int area) const
This function will return the calculated length increase due to growth on an area.
Definition: grower.h:94
DoubleMatrixPtrVector lgrowth
This is the DoubleMatrixPtrVector used to store the calculated increase in length for each length gro...
Definition: grower.h:149
void calcGrowth(int area, const AreaClass *const Area, const TimeClass *const TimeInfo, const DoubleVector &FeedingLevel, const DoubleVector &Consumption)
This will calculate the growth of the stock for the current timestep on a given area.
Definition: grower.cc:163
ConversionIndex * CI
This is the ConversionIndex used to convert from the stock LengthGroupDivision to the LengthGroupDivi...
Definition: grower.h:124
DoubleMatrix calcLengthGrowth
This is the DoubleMatrix used to store the calculated increase in length on the current timestep.
Definition: grower.h:139
DoubleMatrix interpWeightGrowth
This is the DoubleMatrix used to store the increase in weight on the current timestep.
Definition: grower.h:134
double alpha
This is the value of alpha in the beta binomial distribution.
Definition: grower.h:183
~Grower()
This is the default Grower destructor.
Definition: grower.cc:113
void Sum(const PopInfoVector &NumberInArea, int area)
This will calculate the amount of the stock that is on a given area and timestep.
Definition: grower.cc:153
DoubleVector part2
This is a DoubleVector used when calculating the beta binomial distribution.
Definition: grower.h:197
int getFixedWeights()
This will return the flag used to denote whether the weights have been fixed or not.
Definition: grower.h:111
PopInfoMatrix numGrow
This is the PopInfoMatrix used to store information about the current population of the stock that is...
Definition: grower.h:111
int maxlengthgroupgrowth
This is the maximum number of length groups that an individual fish from the stock can grow on one ti...
Definition: grower.h:175
Formula beta
This is the value of beta in the beta binomial distribution.
Definition: grower.h:187
const DoubleMatrix & getWeightIncrease(int area) const
This function will return the calculated weight increase due to growth on an area.
Definition: grower.h:100
double growth
This is the mean growth, as calculated for this length group by the GrowthCalc function.
Definition: grower.h:179
DoubleVector dummyfphi
This is the dummy DoubleVector used during the growth calculation.
Definition: grower.h:159
int fixedweights
This is the flag used to denote whether the change is weight is to be calculated, or fixed to values ...
Definition: grower.h:171
DoubleMatrix interpLengthGrowth
This is the DoubleMatrix used to store the increase in length on the current timestep.
Definition: grower.h:129
void implementGrowth(int area, const PopInfoVector &NumberInArea, const LengthGroupDivision *const Lengths)
This will implement the calculated changes due to growth of the stock.
Definition: growermemberfunctions.cc:8
DoubleVector part4
This is a DoubleVector used when calculating the beta binomial distribution.
Definition: grower.h:207
void Reset()
This will reset the growth information for the current model run.
Definition: grower.cc:193
Grower(CommentStream &infile, const LengthGroupDivision *const OtherLgrpDiv, const LengthGroupDivision *const GivenLgrpDiv, const IntVector &Areas, const TimeClass *const TimeInfo, Keeper *const keeper, const char *refWeight, const char *givenname, const AreaClass *const Area, const CharPtrVector &lenindex)
This is the Grower constructor.
Definition: grower.cc:11
DoubleVector part1
This is a DoubleVector used when calculating the beta binomial distribution.
Definition: grower.h:192
const DoubleVector & getWeight(int area) const
This function will return the fixed weight increase due to growth on an area.
Definition: grower.h:106
int functionnumber
This is the identifier of the function to be used to calculate the growth.
Definition: grower.h:167
void Print(ofstream &outfile) const
This function will print the growth data.
Definition: grower.cc:124
GrowthCalcBase * growthcalc
This is the GrowthCalcBase used to calculate the growth information.
Definition: grower.h:163
double part3
This is a double used when calculating the beta binomial distribution.
Definition: grower.h:202
LengthGroupDivision * LgrpDiv
This is the LengthGroupDivision used to store length information.
Definition: grower.h:120
This is the base class used to calculate the growth of a stock within the model.
Definition: growthcalc.h:18
This is the base class for any object that has a name.
Definition: hasname.h:10
This class implements a dynamic vector of int values.
Definition: intvector.h:11
This is the class used to store information about the variables that are used in model simulation.
Definition: keeper.h:17
This is the class used to store information about the length groups of the modelled stock population.
Definition: lengthgroup.h:10
This is the class used to store information about the areas an object is defined on for the current m...
Definition: livesonareas.h:10
int areaNum(int area) const
This function will return the area associated with an internal area.
Definition: livesonareas.cc:33
This class implements a dynamic vector of PopInfoVector values.
Definition: popinfomatrix.h:11
This class implements a dynamic vector of PopInfo values.
Definition: popinfovector.h:11
This is the class used to store information about the timesteps used for the current model.
Definition: areatime.h:87