--- trunk/gadget/growthcalc.h 2014/02/10 17:09:07 1 +++ trunk/gadget/growthcalc.h 2015/04/29 12:55:30 2 @@ -9,6 +9,7 @@ #include "livesonareas.h" #include "modelvariablevector.h" #include "keeper.h" +#include "matrix.h" /** * \class GrowthCalcBase @@ -43,6 +44,11 @@ const PopInfoVector& numGrow, const AreaClass* const Area, const TimeClass* const TimeInfo, const DoubleVector& Fphi, const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv) = 0; + + virtual void calcGrowth(int area, double* Lgrowth, double* Wgrowth, + const PopInfoVector& numGrow, const AreaClass* const Area, + const TimeClass* const TimeInfo, const DoubleVector& Fphi, + const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv, int size) = 0; /** * \brief This will return the power term of the length - weight relationship * \return 0 (will be overridden in derived classes) @@ -90,6 +96,11 @@ const PopInfoVector& numGrow, const AreaClass* const Area, const TimeClass* const TimeInfo, const DoubleVector& Fphi, const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv); + + virtual void calcGrowth(int area, double* Lgrowth, double* Wgrowth, + const PopInfoVector& numGrow, const AreaClass* const Area, + const TimeClass* const TimeInfo, const DoubleVector& Fphi, + const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv, int size) {}; protected: /** * \brief This is the number of growth parameters (set to 9) @@ -138,6 +149,11 @@ const PopInfoVector& numGrow, const AreaClass* const Area, const TimeClass* const TimeInfo, const DoubleVector& Fphi, const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv); + + virtual void calcGrowth(int area, double* Lgrowth, double* Wgrowth, + const PopInfoVector& numGrow, const AreaClass* const Area, + const TimeClass* const TimeInfo, const DoubleVector& Fphi, + const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv, int size) {}; protected: /** * \brief This is the FormulaMatrixPtrVector of increase in length for each length group @@ -186,6 +202,11 @@ const PopInfoVector& numGrow, const AreaClass* const Area, const TimeClass* const TimeInfo, const DoubleVector& Fphi, const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv); + + virtual void calcGrowth(int area, double* Lgrowth, double* Wgrowth, + const PopInfoVector& numGrow, const AreaClass* const Area, + const TimeClass* const TimeInfo, const DoubleVector& Fphi, + const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv, int size) {}; /** * \brief This will return the power term of the length - weight relationship * \return lgrowthPar[7] @@ -256,6 +277,11 @@ const PopInfoVector& numGrow, const AreaClass* const Area, const TimeClass* const TimeInfo, const DoubleVector& Fphi, const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv); + + virtual void calcGrowth(int area, double* Lgrowth, double* Wgrowth, + const PopInfoVector& numGrow, const AreaClass* const Area, + const TimeClass* const TimeInfo, const DoubleVector& Fphi, + const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv, int size) {}; /** * \brief This will return the power term of the length - weight relationship * \return lgrowthPar[7] @@ -326,6 +352,11 @@ const PopInfoVector& numGrow, const AreaClass* const Area, const TimeClass* const TimeInfo, const DoubleVector& Fphi, const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv); + + virtual void calcGrowth(int area, double* Lgrowth, double* Wgrowth, + const PopInfoVector& numGrow, const AreaClass* const Area, + const TimeClass* const TimeInfo, const DoubleVector& Fphi, + const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv, int size) {}; /** * \brief This will return the power term of the length - weight relationship * \return lgrowthPar[7] @@ -408,6 +439,11 @@ const PopInfoVector& numGrow, const AreaClass* const Area, const TimeClass* const TimeInfo, const DoubleVector& Fphi, const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv); + + virtual void calcGrowth(int area, double* Lgrowth, double* Wgrowth, + const PopInfoVector& numGrow, const AreaClass* const Area, + const TimeClass* const TimeInfo, const DoubleVector& Fphi, + const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv, int size) {}; protected: /** * \brief This is the number of growth parameters (set to 2) @@ -460,6 +496,11 @@ const PopInfoVector& numGrow, const AreaClass* const Area, const TimeClass* const TimeInfo, const DoubleVector& Fphi, const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv); + + virtual void calcGrowth(int area, double* Lgrowth, double* Wgrowth, + const PopInfoVector& numGrow, const AreaClass* const Area, + const TimeClass* const TimeInfo, const DoubleVector& Fphi, + const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv, int size) {}; protected: /** * \brief This is the number of growth parameters (set to 2) @@ -510,6 +551,13 @@ const PopInfoVector& numGrow, const AreaClass* const Area, const TimeClass* const TimeInfo, const DoubleVector& Fphi, const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv); + + + virtual void calcGrowth(int area, double* Lgrowth, double* Wgrowth, + const PopInfoVector& numGrow, const AreaClass* const Area, + const TimeClass* const TimeInfo, const DoubleVector& Fphi, + const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv, int size); + /** * \brief This will return the power term of the length - weight relationship * \return growthPar[3] @@ -566,6 +614,11 @@ const PopInfoVector& numGrow, const AreaClass* const Area, const TimeClass* const TimeInfo, const DoubleVector& Fphi, const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv); + + virtual void calcGrowth(int area, double* Lgrowth, double* Wgrowth, + const PopInfoVector& numGrow, const AreaClass* const Area, + const TimeClass* const TimeInfo, const DoubleVector& Fphi, + const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv, int size) {}; /** * \brief This will return the power term of the length - weight relationship * \return growthPar[4] @@ -622,6 +675,12 @@ const PopInfoVector& numGrow, const AreaClass* const Area, const TimeClass* const TimeInfo, const DoubleVector& Fphi, const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv); + + + virtual void calcGrowth(int area, double* Lgrowth, double* Wgrowth, + const PopInfoVector& numGrow, const AreaClass* const Area, + const TimeClass* const TimeInfo, const DoubleVector& Fphi, + const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv, int size) {}; /** * \brief This will return the power term of the length - weight relationship * \return growthPar[4] @@ -678,6 +737,11 @@ const PopInfoVector& numGrow, const AreaClass* const Area, const TimeClass* const TimeInfo, const DoubleVector& Fphi, const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv); + + virtual void calcGrowth(int area, double* Lgrowth, double* Wgrowth, + const PopInfoVector& numGrow, const AreaClass* const Area, + const TimeClass* const TimeInfo, const DoubleVector& Fphi, + const DoubleVector& MaxCon, const LengthGroupDivision* const LgrpDiv, int size) {}; /** * \brief This will return the power term of the length - weight relationship * \return growthPar[4]