예제 #1
0
        public void Run(Clock clock, IImpactHeatingState state, IDimensions dimensions)
        {
            var s = state;
            var t = clock.Current;

            if (clock.IsFirstTimestep)
            {
            }
            else
            {
                foreach (var r in dimensions.GetValues<Region>())
                {
                    double ypc = s.income[t, r] / s.population[t, r] * 1000.0;
                    double ypc90 = s.gdp90[r] / s.pop90[r] * 1000.0;

                    s.heating[t, r] = s.hebm[r] * s.cumaeei[t, r] * s.gdp90[r] * Math.Atan(s.temp[t, r]) / Math.Atan(1.0) * Math.Pow(ypc / ypc90, s.heel) * s.population[t, r] / s.pop90[r];
                }
            }
        }
예제 #2
0
        public void Run(Clock clock, IImpactHeatingState state, IDimensions dimensions)
        {
            var s = state;
            var t = clock.Current;

            if (clock.IsFirstTimestep)
            {
            }
            else
            {
                foreach (var r in dimensions.GetValues <Region>())
                {
                    double ypc   = s.income[t, r] / s.population[t, r] * 1000.0;
                    double ypc90 = s.gdp90[r] / s.pop90[r] * 1000.0;

                    s.heating[t, r] = s.hebm[r] * s.cumaeei[t, r] * s.gdp90[r] * Math.Atan(s.temp[t, r]) / Math.Atan(1.0) * Math.Pow(ypc / ypc90, s.heel) * s.population[t, r] / s.pop90[r];
                }
            }
        }