Exemplo n.º 1
0
        private void InternalInitialize(int iteration, int timestep, STSimDistributionProvider provider)
        {
            this.CheckDisabled();

            if (this.m_DistributionTypeId.HasValue)
            {
                int IterationToUse = iteration;
                int TimestepToUse  = timestep;

                if (this.m_Iteration.HasValue)
                {
                    IterationToUse = this.m_Iteration.Value;
                }

                if (this.m_Timestep.HasValue)
                {
                    TimestepToUse = this.m_Timestep.Value;
                }

                this.m_CurrentValue = provider.STSimSample(
                    this.m_DistributionTypeId.Value, this.m_DistributionValue, this.m_DistributionSD, this.m_DistributionMin,
                    this.m_DistributionMax, IterationToUse, TimestepToUse, this.m_StratumId, this.m_SecondaryStratumId);
            }
            else
            {
                Debug.Assert(this.m_DistributionValue.HasValue);
                this.m_CurrentValue = this.m_DistributionValue.Value;
            }

            Debug.Assert(this.m_CurrentValue.HasValue);
        }
        public TransitionAdjacencyMultiplierMap(
            Scenario scenario,
            TransitionAdjacencyMultiplierCollection multipliers,
            STSimDistributionProvider distributionProvider,
            int minimumIteration,
            int minimumTimestep) : base(scenario)
        {
            this.m_DistributionProvider = distributionProvider;

            foreach (TransitionAdjacencyMultiplier Item in multipliers)
            {
                this.AddMultiplier(Item);
            }

            foreach (TransitionAdjacencyMultiplierMapEntry e in this.m_AllEntries)
            {
                if (e.Items.Count == 1)
                {
                    TransitionAdjacencyMultiplier t1 = e.Items.First().Value;

                    TransitionAdjacencyMultiplier t2 = new TransitionAdjacencyMultiplier(
                        t1.TransitionGroupId, t1.Iteration, t1.Timestep, t1.StratumId, t1.SecondaryStratumId, t1.TertiaryStratumId,
                        0.0, 0.0, t1.DistributionTypeId, t1.DistributionFrequency, t1.DistributionSD,
                        t1.DistributionMin, t1.DistributionMax);

                    t2.Initialize(minimumIteration, minimumTimestep, this.m_DistributionProvider);

                    e.Map.Add(0.0, t2);
                    e.Items.Add(0.0, t2);
                }
            }
        }
Exemplo n.º 3
0
        public TransitionSlopeMultiplierMap(
            Scenario scenario,
            TransitionSlopeMultiplierCollection multipliers,
            STSimDistributionProvider distributionProvider) : base(scenario)
        {
            this.m_DistributionProvider = distributionProvider;

            foreach (TransitionSlopeMultiplier Item in multipliers)
            {
                this.AddSlopeMultiplier(Item);
            }
        }
Exemplo n.º 4
0
        internal StateAttributeValueMap(
            Scenario scenario,
            STSimDistributionProvider provider,
            StateAttributeValueCollection items) : base(scenario)
        {
            this.m_Project = scenario.Project;
            this.m_DistributionProvider = provider;

            foreach (StateAttributeValue item in items)
            {
                this.AddAttributeValue(item);
            }
        }
Exemplo n.º 5
0
        public TransitionAttributeValueMap(
            Scenario scenario,
            STSimDistributionProvider provider,
            TransitionAttributeValueCollection transitionAttributes) : base(scenario)
        {
            this.m_Project = scenario.Project;
            this.m_DistributionProvider = provider;

            foreach (TransitionAttributeValue ta in transitionAttributes)
            {
                this.AddAttributeValue(ta);
            }
        }
Exemplo n.º 6
0
        private double InternalSample(int iteration, int timestep, STSimDistributionProvider provider, DistributionFrequency frequency)
        {
            this.CheckDisabled();

            if (this.m_DistributionTypeId.HasValue)
            {
                if (this.m_DistributionFrequency == frequency || this.m_DistributionFrequency == DistributionFrequency.Always)
                {
                    this.m_CurrentValue = provider.STSimSample(
                        this.m_DistributionTypeId.Value, this.m_DistributionValue, this.m_DistributionSD, this.m_DistributionMin,
                        this.m_DistributionMax, iteration, timestep, this.m_StratumId, this.m_SecondaryStratumId);
                }
            }

            Debug.Assert(this.m_CurrentValue.HasValue);
            return(this.m_CurrentValue.Value);
        }
Exemplo n.º 7
0
        public TransitionMultiplierValueMap(
            Scenario scenario,
            TransitionMultiplierValueCollection multipliers,
            STSimDistributionProvider distributionProvider) : base(scenario)
        {
            this.m_DistributionProvider = distributionProvider;

            foreach (TransitionMultiplierValue item in multipliers)
            {
                this.AddMultiplier(item);
            }

            foreach (List <TransitionMultiplierValue> l in this.m_AllLists)
            {
                l.Sort((TransitionMultiplierValue tm1, TransitionMultiplierValue tm2) =>
                {
                    int cmp = tm1.AgeMin.CompareTo(tm2.AgeMin);

                    if (cmp != 0)
                    {
                        return(cmp);
                    }

                    cmp = tm1.AgeMax.CompareTo(tm2.AgeMax);

                    if (cmp != 0)
                    {
                        return(cmp);
                    }

                    cmp = tm1.TSTMin.CompareTo(tm2.TSTMin);

                    if (cmp != 0)
                    {
                        return(cmp);
                    }

                    return(tm1.TSTMax.CompareTo(tm2.TSTMax));
                });
            }
        }
Exemplo n.º 8
0
 public double Sample(int iteration, int timestep, STSimDistributionProvider provider, DistributionFrequency frequency)
 {
     return(this.InternalSample(iteration, timestep, provider, frequency));
 }
Exemplo n.º 9
0
 public void Initialize(int iteration, int timestep, STSimDistributionProvider provider)
 {
     this.InternalInitialize(iteration, timestep, provider);
 }
Exemplo n.º 10
0
 public STSimDistributionBaseExpander(STSimDistributionProvider provider)
 {
     this.m_Provider = provider;
     this.FillUserDistributionMaps();
 }
Exemplo n.º 11
0
 public TransitionMultiplierType(int?transitionMultiplierTypeId, Scenario scenario, STSimDistributionProvider provider)
 {
     this.m_TransitionMultiplierTypeId = transitionMultiplierTypeId;
     this.m_Scenario = scenario;
     this.m_Provider = provider;
 }