Beispiel #1
0
        public ShadowModelParameter(ModelParameterClass mp)
        {
            FModelParam           = mp.ModelParam;
            FLabel                = mp.Label;
            FFieldname            = mp.Fieldname;
            Ftype                 = mp.ParamType;
            FRangeCheckType       = mp.RangeCheckType;
            FLowRange             = mp.LowRange;
            FHighRange            = mp.HighRange;
            FSpecialBaseCheck     = mp.SpecialBaseCheck;
            FSpecialProviderCheck = mp.FSpecialProviderCheck;
            if (mp.isProviderParam)
            {
                ShadowProviderArrayProperty spap = new ShadowProviderArrayProperty(mp.ParameterManager, mp.ProviderProperty);
                FProviderProperty = FDefaultValues = spap;
            }
            else
            {
                if (mp.isBaseParam)
                {
                    FValue = FDefault = (mp as ModelParameterClass).Value;
                }
            }
#if ExtendedParameter
            setupExtended();
#endif
        }
Beispiel #2
0
            public MyParameterInfo(string fieldName, string name, int minintValue, int maxintValue, int rangeInterval, ModelParameterClass MP, providerArrayProperty pap)

            {
                Fieldname     = fieldName;
                Name          = name;
                MinIntValue   = minintValue;
                MaxIntValue   = maxintValue;
                RangeInterval = rangeInterval;
                PAP           = pap;
                TheMP         = MP;
            }
Beispiel #3
0
 //
 public MyParameterInfo(string fieldName, int code, string name, int minintValue, int maxintValue, int rangeInterval, providerArrayProperty pap)
 {
     Fieldname     = fieldName;
     Code          = code;
     Name          = name;
     MinIntValue   = minintValue;
     MaxIntValue   = maxintValue;
     RangeInterval = rangeInterval;
     //PAP = new providerArrayProperty();
     PAP = pap;
     //TheMP = mp;
 }
 internal void SetupParameters(WaterSimManager WSim)
 {
     // Only add one parameter  Checking just in case more than one is added, Process manager should not allow more than one but that will
     // not stop someone from constructing two objects and not add to ProcessManager
     if (ClassCount == 0)
     {
         ClassCount++;
         // Add % Groundwater
         Percent_Credits_Available = new providerArrayProperty(WSim.ParamManager, eModelParam.epPCT_CreditsAvailable, get_PCT_CreditsAvail, eProviderAggregateMode.agWeighted);
         WSim.ParamManager.AddParameter(new ModelParameterClass(eModelParam.epPCT_CreditsAvailable, "Percent of Initial Groundwater Credits Available", "PCTCRED", modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_PCT_CreditsAvail, null, null, null, null, Percent_Credits_Available));
         // epYearCreditsGoesNeg
         Year_Credits_Go_Negative = new providerArrayProperty(WSim.ParamManager, eModelParam.epYearCreditsGoesNeg, get_PCT_CreditsAvail, eProviderAggregateMode.agWeighted);
         WSim.ParamManager.AddParameter(new ModelParameterClass(eModelParam.epYearCreditsGoesNeg, "Year that Credts go negative", "YRCREDNEG", modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_Year_CreditsGoNegative, null, null, null, null, Year_Credits_Go_Negative));
     }
     this.FWsim = WSim;
 }
Beispiel #5
0
        /// <summary>   Constructor. </summary>
        ///
        /// <remarks>   For now this constructor is hidden </remarks>
        ///
        /// <param name="aModelParam">                  a model parameter. </param>
        /// <param name="aLabel">                       a label. </param>
        /// <param name="aFieldname">                   a fieldname. </param>
        /// <param name="aParamType">                   Type of a parameter. </param>
        /// <param name="aRangeCheckType">              Type of a range check. </param>
        /// <param name="aLowRange">                    a low range. </param>
        /// <param name="aHighRange">                   a high range. </param>
        /// <param name="specialBaseRangeCheck">        The special base range check. </param>
        /// <param name="specialProviderRangeCheck">    The special provider range check. </param>
        /// <param name="Providerproperty">             The providerproperty. </param>
        /// <param name="DefaultValue">                 The default value for simulating a model reset</param>
        internal ShadowModelParameter(int aModelParam, string aLabel, string aFieldname, modelParamtype aParamType,
                                      rangeChecktype aRangeCheckType, int aLowRange, int aHighRange,
                                      DcheckBase specialBaseRangeCheck, DcheckProvider specialProviderRangeCheck, providerArrayProperty Providerproperty, int DefaultValue) : base()

        {
            FModelParam           = aModelParam;
            FLabel                = aLabel;
            FFieldname            = aFieldname;
            Ftype                 = aParamType;
            FRangeCheckType       = aRangeCheckType;
            FLowRange             = aLowRange;
            FHighRange            = aHighRange;
            FSpecialBaseCheck     = specialBaseRangeCheck;
            FSpecialProviderCheck = specialProviderRangeCheck;
            FProviderProperty     = FDefaultValues = Providerproperty;
            FValue                = FDefault = DefaultValue;
            // FReload = ReloadValuesOnSet;
        }
Beispiel #6
0
        partial void     initialize_Sustainable_ModelParameters()
        {
            Percent_Deficit             = new providerArrayProperty(_pm, eModelParam.epPCT_Deficit, get_PCT_Deficit, eProviderAggregateMode.agWeighted);
            Percent_Reclaimed_of_Total  = new providerArrayProperty(_pm, eModelParam.epPctRecOfTotal, get_PCT_Reclaimed_Of_Total, eProviderAggregateMode.agWeighted);
            FutureYearsSustainedPumping = new providerArrayProperty(_pm, eModelParam.epGWYrsSustain, get_FutureYearsSustainedPumping, eProviderAggregateMode.agWeighted);
            //
            //RunningGWregional = new providerArrayProperty(_pm, eModelParam.epRegGWpctInitial, get_PCT_RegGWfromInitial, eProviderAggregateMode.agWeighted);
            //
            ModelParameterGroupClass SINYRGW_Group = new ModelParameterGroupClass("Sustainable GW Years Dependencies", SINYRGW_List);

            _pm.GroupManager.Add(SINYRGW_Group);
            _pm.AddParameter(new ModelParameterClass(eModelParam.epGWYrsSustain, "Years Pumping Can Be Sustained", "SINYRGW", FutureYearsSustainedPumping, SINYRGW_Group, 0, 100));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epRegGWYrsSustain, "Years Pumping Can Be Sustained", "SINYRGWR", get_Regional_FutureYearsSustainedPumping, SINYRGW_Group, 0, 100));
            //
            _pm.AddParameter(new ModelParameterClass(eModelParam.epRegPctGWDemand, "% Demand met by Groundwater", "SINPCTGW", get_Regional_PCT_GW_of_Demand, SINYRGW_Group, 0, 100));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epPctRecOfTotal, "Percent Supply Reclaimed", "PCTSUPREC", Percent_Reclaimed_of_Total, 0, 100));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epPCT_Deficit, "Percent Demand Deficit", "PCTDEMDEF", Percent_Deficit, 0, 100));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epAgSustainIndicator, "Agricuture Sustainability Indicator", "SINDAG", GetAgIndicator, 0, 100));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epEnvSustainIndicator, "Environment Sustainability Indicator", "SINDENV", GetEnvIndicator, 0, 500));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epWaterUseIndicator, "Water Use Sustainability Indicator", "SINDPC", GetPersonalGPCDIndicator, 0, 100));

            _pm.AddParameter(new ModelParameterClass(eModelParam.epMeadDeadPool, "Lake Mead Dead Pool", "MDDPL", get_MeadDeadPool, 800, 1300));
            _pm.AddParameter(new ModelParameterClass(eModelParam.epMeadLowerSNWA, "Lake Mead Lower SNWA Intake", "MDLIL", get_MeadSNWALowerIntake, 800, 1300));
            _pm.AddParameter(new ModelParameterClass(eModelParam.epMeadShortageSharingLow, "Lake Mead Shortage Sharing Low", "MDSSL", get_MeadShortageSharingLevelLow, 800, 1300));
            _pm.AddParameter(new ModelParameterClass(eModelParam.epMeadShortageSharingMed, "Lake Mead Shortage Sharing Med and Minimum Power Pool", "MDSSM", get_MeadShortageSharingLevelMed, 800, 1300));
            _pm.AddParameter(new ModelParameterClass(eModelParam.epMeadShortageSharingHigh, "Lake Mead Shortage Sharing High", "MDSSH", get_MeadShortageSharingLevelHigh, 800, 1300));
            _pm.AddParameter(new ModelParameterClass(eModelParam.epMeadMinPower, "Lake Mead Minimum Power Pool", "MDMPL", get_MeadMinPowerLevel, 800, 1300));
            _pm.AddParameter(new ModelParameterClass(eModelParam.epMeadCapacity, "Lake Mead Capacity", "MDCPL", get_MeadCapacity, 800, 1300));
            //
            _pm.AddParameter(new ModelParameterClass(eModelParam.epRegGWpctInitial, "% of initial Regional GW", "SINGWPCT", get_PCT_RegGWfromInitial, 0, 150));

            //
            GW_PCTinitial = 63152280;
            // GW_PCTinitial = this.Regional_Groundwater_Balance;

            //
        }
Beispiel #7
0
        // Construictor
        public Models(int RegionN, WaterSimDCDC.WaterSimManager TheWaterSimManager)
        {
            FWSIM = TheWaterSimManager;
            // Construct the stream model
            FStreamModel = new StreamModel(RegionN);
            // create submodels
            for (int i = 0; i < RegionN; i++)
            {
                FSubModelList.Add(new Submodel());
            }

            // Create WaterSim Parameters

            // This parameter accesses the array of regional stream allocation
            StreamAllocation = new providerArrayProperty(FWSIM.ParamManager, epP_StreamAllocation, geti_StreamAllocation, eProviderAggregateMode.agSum);
            FWSIM.ParamManager.AddParameter(new ModelParameterClass(epP_StreamAllocation, "Regional Stream Allocation", "RSTALLOC", rangeChecktype.rctNoRangeCheck, 0, 0, null, StreamAllocation));

            // This parameter sets or get value from the stream model
            FWSIM.ParamManager.AddParameter(new ModelParameterClass(ep_StreamWithdraw, "Stream Withdrawal", "STRWD", rangeChecktype.rctCheckRange, 0, 100000000, geti_StremWithdraw, seti_StreamWithdraw, null));
        }
Beispiel #8
0
 internal void SetupParameters(WaterSimManager WSim)
 {
     // Only add one parameter  Checking just in case more than one is added, Process manager should not allow more than one but that will
     // not stop someone from constructing two objects and not add to ProcessManager
     if (ClassCount == 0)
     {
         ClassCount++;
         // Add % Groundwater
         Percent_Groundwater_Available = new providerArrayProperty(WSim.ParamManager, eModelParam.epPCT_GWAvailable, get_PCT_GWAvail, eProviderAggregateMode.agWeighted);
         WSim.ParamManager.AddParameter(new ModelParameterClass(eModelParam.epPCT_GWAvailable, "Percent of Initial Groundwater Available", "PCTGWAVL", modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_PCT_GWAvail, null, null, null, null, Percent_Groundwater_Available));
         // Add Years of groundwater below zero
         Years_GW_At_or_Below_Zero = new providerArrayProperty(WSim.ParamManager, eModelParam.epYrsGWZero, get_YearsOfZero, eProviderAggregateMode.agAverage);
         WSim.ParamManager.AddParameter(new ModelParameterClass(eModelParam.epYrsGWZero, "# of Years of Groundwater At or Below Zero", "YRGW0", modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_YearsOfZero, null, null, null, null, Years_GW_At_or_Below_Zero));
         // add Year GW goes zero estimator
         Year_Groundwater_Will_Be_Zero = new providerArrayProperty(WSim.ParamManager, eModelParam.epYearGWGoesZero, get_YearGWWillBeZero, eProviderAggregateMode.agAverage);
         WSim.ParamManager.AddParameter(new ModelParameterClass(eModelParam.epYearGWGoesZero, "The Year Estimated Groundwater Will Be Zero", "GW0WHEN", modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_YearGWWillBeZero, null, null, null, null, Year_Groundwater_Will_Be_Zero));
         // add       Years_Groundwater_Not_Assured/
         Years_Groundwater_Not_Assured = new providerArrayProperty(WSim.ParamManager, eModelParam.epYearsNotAssured, get_Years_NotAssured, eProviderAggregateMode.agAverage);
         WSim.ParamManager.AddParameter(new ModelParameterClass(eModelParam.epYearsNotAssured, "# of Years Groundwater is Not ADWR Assured", "GWNOTAS", modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_Years_NotAssured, null, null, null, null, Years_Groundwater_Not_Assured));
     }
     this.FWsim = WSim;
 }
        ///-------------------------------------------------------------------------------------------------
        /// <summary>   Adds a tracking model parameters. </summary>
        ///
        /// <param name="WSim"> The WatewrSimManager who will mabage tracking aprameters. </param>
        ///-------------------------------------------------------------------------------------------------

        private void AddTrackingParameter(WaterSimManager WSim)
        {
            Deficit_Years = new providerArrayProperty(WSim.ParamManager, eModelParam.epDeficit_Years, this.get_Deficit_Years, eProviderAggregateMode.agAverage);
            // Added on 08.23.16 das
            CreditDeficit_Years = new providerArrayProperty(WSim.ParamManager, eModelParam.epCreditDeficit_Years, this.get_CreditDeficit_Years, eProviderAggregateMode.agAverage);

            // Only add one parameter  Checking just in case more than one is added, Process manager should not allow more than one but that will
            // not stop someone from constructing two objects and not add to ProcessManager
            if (ClassCount == 0)
            {
                WSim.ParamManager.AddParameter(new ModelParameterClass(eModelParam.epDeficit_Years, "Cumulative Years of Demand Deficit", "CUMDEF", modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, this.get_Deficit_Years, null, null, null, null, Deficit_Years));
                FWSim = WSim;
            }

            ClassCount++;
            if (ClassCount_2 == 0)
            {
                WSim.ParamManager.AddParameter(new ModelParameterClass(eModelParam.epCreditDeficit_Years, "Cumulative Years of Credit Deficit", "CREDDEF", modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, this.get_CreditDeficit_Years, null, null, null, null, Deficit_Years));

                FWSim = WSim;
            }
            ClassCount_2++;
        }
        //---------------------------------------------------------------------------
        // Define Constants for new parameters
        //public const int epCreditDeficits = 102;
        //public const int epWaterFromAgPumping = 103;
        //---------------------------------------------------------------------
        // This routine is called by initialize Groundwater Model Parameters
        partial void initialize_GWModelParameters()
        {
            for (int p = 0; p < ProviderClass.NumberOfProviders; p++)
            {
                AgGWtoMuniAccumulate[p] = 0;
            }
            // Begin Added 2/24/14 das rq
            Use_WaterFromAgPumping = new providerArrayProperty(_pm, eModelParam.epProvider_WaterFromAgPumping, get_WaterFromAgPumping, set_WaterFromAgPumping, eProviderAggregateMode.agSum);
            // QUAY EDIT 6/17/14 Changed max value to 100,000 from 50,000.  This was causing an error in the web interface routines
            //this.ParamManager.AddParameter(new ModelParameterClass(eModelParam.epProvider_WaterFromAgPumping, "Water to Muni from Ag Pumping", "AGTOMUN1", modelParamtype.mptInputProvider, rangeChecktype.rctCheckRange, 0, 300000, null, get_WaterFromAgPumping, null, set_WaterFromAgPumping, null, null, Use_WaterFromAgPumping));
            this.ParamManager.AddParameter(new ModelParameterClass(eModelParam.epProvider_WaterFromAgPumping, "Agricultural Pumping to Municipal", "AGTOMUN1", modelParamtype.mptOutputProvider, rangeChecktype.rctCheckRange, 0, 300000, null, get_WaterFromAgPumping, null, set_WaterFromAgPumping, null, null, Use_WaterFromAgPumping));

            //
            Use_WaterFromAgSurface = new providerArrayProperty(_pm, eModelParam.epProvider_WaterFromAgSurface, get_WaterFromAgSurface, set_WaterFromAgSurface, eProviderAggregateMode.agSum);
            // QUAY EDIT 6/17/14 Changed max value to 100,000 from 50,000.  This was causing an error in the web interface routines
            this.ParamManager.AddParameter(new ModelParameterClass(eModelParam.epProvider_WaterFromAgSurface, "Water to Muni from Ag Surface CAP", "AGTOMUN2", modelParamtype.mptInputProvider, rangeChecktype.rctCheckRange, 0, 10000, null, get_WaterFromAgSurface, null, set_WaterFromAgSurface, null, null, Use_WaterFromAgSurface));
            //
            WaterFromAgPumpingMax = new providerArrayProperty(_pm, eModelParam.epProvider_WaterFromAgPumpingMax, geti_WaterFromAgPumpingMax, null, eProviderAggregateMode.agSum);
            this.ParamManager.AddParameter(new ModelParameterClass(eModelParam.epProvider_WaterFromAgPumpingMax, "Water to Muni from Ag Pumping Max", "AGTOMPX", modelParamtype.mptOutputProvider, rangeChecktype.rctCheckRange, 0, 50000, null, geti_WaterFromAgPumpingMax, null, null, null, null, WaterFromAgPumpingMax));
            ////
            WaterFromAgSurfaceMax = new providerArrayProperty(_pm, eModelParam.epProvider_WaterFromAgSurfaceMax, geti_WaterFromAgSurfaceMax, null, eProviderAggregateMode.agSum);
            this.ParamManager.AddParameter(new ModelParameterClass(eModelParam.epProvider_WaterFromAgSurfaceMax, "Water to Muni from Ag Surface CAP Max", "AGTOMSX", modelParamtype.mptOutputProvider, rangeChecktype.rctCheckRange, 0, 50000, null, geti_WaterFromAgSurfaceMax, null, null, null, null, WaterFromAgSurfaceMax));
            // End Added 2/24/14 das rq

            // deleted das rq 2/24/14 AF_water_FromAgPumping = new providerArrayProperty(this.ParamManager, eModelParam.epProvider_WaterFromAgPumping, get_waterFromAgPumping, set_waterFromAgPumping, eProviderAggregateMode.agNone);
            // Modified QUAY 1/20/14 - Added this.ParamManager,  to call
            AF_water_CreditDeficits = new providerArrayProperty(this.ParamManager, eModelParam.epCreditDeficits, get_waterCreditDeficits, eProviderAggregateMode.agSum);

            this.ParamManager.AddParameter(new ModelParameterClass(eModelParam.epGroundwater_Model, "Groundwater Model", "GWMODEL", modelParamtype.mptInputBase, rangeChecktype.rctCheckRange, 0, 1, geti_Groundwater_Model, null, seti_Groundwater_Model, null, null, null, null));
            // deleted das rq 2/24/14  this.ParamManager.AddParameter(new ModelParameterClass(eModelParam.epProvider_WaterFromAgPumping, "Water From Ag Pumping(AF)", "WAGPUMP", modelParamtype.mptInputProvider, rangeChecktype.rctCheckRange, 0, 55, null, get_waterFromAgPumping, null, set_waterFromAgPumping, null, null, AF_water_FromAgPumping));
            //

            //
            // Outputs at the Provider level (array)
            //=================================
            this.ParamManager.AddParameter(new ModelParameterClass(eModelParam.epCreditDeficits, "Water Credit Deficits(AF)", "WDEFICIT", modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, -300000, 0, null, get_waterCreditDeficits, null, null, null, null, AF_water_CreditDeficits));
        }
        //==================================
        partial void initialize_Derived_ModelParameters()
        {
            // add Total_Reclaimed_Used
            Total_Reclaimed_Used = new providerArrayProperty(_pm, eModelParam.epTotalReclaimedUsed, get_Reclaimed_Used, eProviderAggregateMode.agSum);
            _pm.AddParameter(new ModelParameterClass(eModelParam.epTotalReclaimedUsed, "Total Reclaimed Water Used ", "TRECUSED", Total_Reclaimed_Used, 0, 50000));        //modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_Reclaimed_Used, null, null, null, null, Total_Reclaimed_Used));
            // add PCT_GW_of_Demand
            PCT_GW_of_Demand = new providerArrayProperty(_pm, eModelParam.epPCTGWofDemand, get_PCT_GWofDemand, eProviderAggregateMode.agWeighted);
            _pm.AddParameter(new ModelParameterClass(eModelParam.epPCTGWofDemand, "PCT Demand met by Groundwater", "PCTGWDEM", PCT_GW_of_Demand, 0, 100));        //modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_PCT_GWofDemand, null, null, null, null, PCT_GW_of_Demand));
            // add Total_Water_Supply_Used
            Total_Water_Supply_Used = new providerArrayProperty(_pm, eModelParam.epTotalSupplyUsed, get_TotalSupply, eProviderAggregateMode.agSum);
            _pm.AddParameter(new ModelParameterClass(eModelParam.epTotalSupplyUsed, "Total Water Supply Used", "TOTSUPUSE", Total_Water_Supply_Used, DepWaterSupplyGroup, 0, 700000));        //modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_TotalSupply, null, null, null, null, Total_Water_Supply_Used));
            // add Total_Water_Supply_Used
            Provider_Effluent_to_AG = new providerArrayProperty(_pm, eModelParam.epProvderEffluentToAg, get_Effluent_To_Ag, eProviderAggregateMode.agSum);
            _pm.AddParameter(new ModelParameterClass(eModelParam.epProvderEffluentToAg, "Provider Effluent to AG", "PEFFTOAG", Provider_Effluent_to_AG, 0, 200000));        //, modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_Effluent_To_Ag, null, null, null, null, Provider_Effluent_to_AG));
            // add Total_Water_Supply_Used
            Total_Effluent = new providerArrayProperty(_pm, eModelParam.epTotalEffluent, get_Total_Effluent, eProviderAggregateMode.agSum);
            _pm.AddParameter(new ModelParameterClass(eModelParam.epTotalEffluent, "Total Effluent Created", "TOTEFF", Total_Effluent, 0, 300000));          //modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_Total_Effluent, null, null, null, null, Total_Effluent));
            //
            //Total_Effluent = new providerArrayProperty(_pm, eModelParam.epTotalEffluent, get_Total_Effluent, eProviderAggregateMode.agSum);
            //_pm.AddParameter(new ModelParameterClass(eModelParam.epTotalEffluent, "Total Effluent Created", "TOTEFF", Total_Effluent, 0, 300000)); //modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_Total_Effluent, null, null, null, null, Total_Effluent));

            // add Projected pop Parameters
            //
            // 07.25.2016 ASK Ray why this is in here...
            //
            // create Population class add load with data
            PopData = new PopulationClass(DataDirectory, 2000);
            // On Project
            Projected_OnProject_Pop = new providerArrayProperty(_pm, eModelParam.epProjectedOnProjectPop, get_Projected_On_Pop, eProviderAggregateMode.agSum);
            _pm.AddParameter(new ModelParameterClass(eModelParam.epProjectedOnProjectPop, "Projected Pop OnProject", "PRJPOPON", Projected_OnProject_Pop, 0, 2000000));         //modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_Projected_On_Pop, null, null, null, null, Projected_OnProject_Pop));

            Difference_Projected_OnProject_Pop = new providerArrayProperty(_pm, eModelParam.epDifferenceProjectedOnPop, get_Difference_Projected_On_Pop, eProviderAggregateMode.agSum);
            _pm.AddParameter(new ModelParameterClass(eModelParam.epDifferenceProjectedOnPop, "Deviation from Projected Pop On Project", "DIFPOPON", Difference_Projected_OnProject_Pop, 0, 1000000));          //modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_Difference_Projected_On_Pop, null, null, null, null, Difference_Projected_OnProject_Pop));
            // Other Project

            Projected_Other_Pop = new providerArrayProperty(_pm, eModelParam.epProjectedOtherPop, get_Projected_Off_Pop, eProviderAggregateMode.agSum);
            _pm.AddParameter(new ModelParameterClass(eModelParam.epProjectedOtherPop, "Projected Pop Off Project", "PRJPOPOFF", Projected_Other_Pop, 0, 2000000));         //modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_Projected_Off_Pop, null, null, null, null, Projected_Other_Pop));

            Difference_Projected_Other_Pop = new providerArrayProperty(_pm, eModelParam.epDifferenceProjectedOtherPop, get_Difference_Projected_Off_Pop, eProviderAggregateMode.agSum);
            _pm.AddParameter(new ModelParameterClass(eModelParam.epDifferenceProjectedOtherPop, "Deviation from Projected Pop Off Project", "DIFPOPOF", Difference_Projected_Other_Pop, 0, 1000000));          //modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_Difference_Projected_Off_Pop, null, null, null, null, Difference_Projected_Other_Pop));
            // Total

            Projected_Pop = new providerArrayProperty(_pm, eModelParam.epProjectedTotalPop, get_Projected_Pop, eProviderAggregateMode.agSum);
            _pm.AddParameter(new ModelParameterClass(eModelParam.epProjectedTotalPop, "Projected Total Pop", "PRJPOPTOT", Projected_Pop, 1000, 4000000));          //modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_Projected_Pop, null, null, null, null, Projected_Pop));

            Difference_Projected_Pop = new providerArrayProperty(_pm, eModelParam.epDifferenceTotalPop, get_Difference_Projected_Pop, eProviderAggregateMode.agSum);
            _pm.AddParameter(new ModelParameterClass(eModelParam.epDifferenceTotalPop, "Deviation from Projected Total Pop", "DIFPOPTOT", modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 2000000, null, get_Difference_Projected_Pop, null, null, null, null, Difference_Projected_Pop));

            PCT_Difference_Projected_Pop = new providerArrayProperty(_pm, eModelParam.epPCTDiffProjectedTotalPop, get_PCTDifference_Projected_Pop, eProviderAggregateMode.agSum);
            _pm.AddParameter(new ModelParameterClass(eModelParam.epPCTDiffProjectedTotalPop, "PCT Deviation from Projected Total Pop", "PCTPOPTOT", PCT_Difference_Projected_Pop, 0, 100));         //modelParamtype.mptOutputProvider, rangeChecktype.rctNoRangeCheck, 0, 0, null, get_PCTDifference_Projected_Pop, null, null, null, null, PCT_Difference_Projected_Pop));

            ProcessRegistry.addAnnualFeedbackProcess(typeof(Processes.AlterGrowthFeedbackProcess));
            ProcessRegistry.addAnnualFeedbackProcess(typeof(Processes.AlterGPCDFeedbackProcess));
            ProcessRegistry.addAnnualFeedbackProcess(typeof(Processes.AlterGPCDAWSFeedbackProcess));
            ProcessRegistry.addAnnualFeedbackProcess(typeof(Processes.AWSLimitFeedbackProcess));
            ProcessRegistry.addAnnualFeedbackProcess(typeof(Processes.TrackProviderDeficitsParameter));
            ProcessRegistry.addAnnualFeedbackProcess(typeof(Processes.Personal_GPCD_WebFeedbackProcess));
            //
            ProcessRegistry.addAnnualFeedbackProcess(typeof(Processes.PolicyLimitFeedbackProcess));
            ProcessRegistry.addAnnualFeedbackProcess(typeof(Processes.TrackGroundwaterCreditsProcess));
            ProcessRegistry.addAnnualFeedbackProcess(typeof(Processes.TrackAvailableGroundwater));
            ProcessRegistry.addAnnualFeedbackProcess(typeof(Processes.TrackAvailableGroundwater));
        }
Beispiel #12
0
        ///-------------------------------------------------------------------------------------------------
        /// <summary> Constructor. </summary>
        ///
        /// <remarks> Ray, 12/7/2011. </remarks>
        ///
        /// <param name="pm">  The Paramerter Manager  </param>
        /// <param name="pap"> The ProviderArrayProperty to Mimick. </param>
        ///-------------------------------------------------------------------------------------------------

        public ShadowProviderArrayProperty(ParameterManagerClass pm, providerArrayProperty pap) : this(pm, pap.ModelParam, pap.getvalues())
        {
            FAggregateMode = pap.AggregateMode;
        }