コード例 #1
0
ファイル: STSimTransformer.TST.cs プロジェクト: ApexRMS/stsim
        private void InitTSTFromICDistribution(Cell simulationCell, int iteration, InitialConditionsDistribution icd)
        {
            if (icd == null)
            {
                return;
            }

            if (!icd.TSTGroupId.HasValue && !icd.TSTMin.HasValue && !icd.TSTMax.HasValue)
            {
                return;
            }

            foreach (Tst tst in simulationCell.TstValues)
            {
                if (icd.TSTGroupId.HasValue && icd.TSTGroupId.Value != tst.TransitionGroupId)
                {
                    continue;
                }

                int min = icd.TSTMin.HasValue ? icd.TSTMin.Value : 0;
                int max = icd.TSTMax.HasValue ? icd.TSTMax.Value : int.MaxValue;

                tst.TstValue = this.m_RandomGenerator.GetNextInteger(min, max);
            }
        }
コード例 #2
0
        private void AddICD(InitialConditionsDistribution order)
        {
            InitialConditionsDistributionCollection l = this.m_Map.GetItemExact(order.Iteration);

            if (l == null)
            {
                l = new InitialConditionsDistributionCollection();
                this.m_Map.AddItem(order.Iteration, l);
            }

            l.Add(order);

            this.m_HasItems = true;
        }
コード例 #3
0
        /// <summary>
        /// Initializes a simulation cell from a initial conditions distribution record
        /// </summary>
        /// <param name="simulationCell">The cell to initialize</param>
        /// <param name="icd">The initial conditions distribution record to use</param>
        /// <remarks></remarks>
        private void InitializeCellNonRaster(ref Cell simulationCell, InitialConditionsDistribution icd, int iteration)
        {
            Debug.Assert(!this.IsSpatial);

            int sisagemin = Math.Min(icd.AgeMin, icd.AgeMax);
            int sisagemax = Math.Max(icd.AgeMin, icd.AgeMax);

            this.InitializeCellAge(simulationCell, icd.StratumId, icd.StateClassId, sisagemin, sisagemax, iteration, this.m_TimestepZero);

            simulationCell.StratumId          = icd.StratumId;
            simulationCell.StateClassId       = icd.StateClassId;
            simulationCell.SecondaryStratumId = icd.SecondaryStratumId;
            simulationCell.TertiaryStratumId  = icd.TertiaryStratumId;

            this.InitializeCellTstValues(simulationCell, iteration, icd, false);

#if DEBUG
            this.VALIDATE_INITIALIZED_CELL(simulationCell, iteration, this.m_TimestepZero);
#endif
        }
コード例 #4
0
ファイル: STSimTransformer.TST.cs プロジェクト: ApexRMS/stsim
        /// <summary>
        /// Initializes the specified cell's Tst values
        /// </summary>
        /// <param name="simulationCell"></param>
        /// <param name="iteration"></param>
        /// <param name="icd"></param>
        /// <param name="isSpatial"></param>
        private void InitializeCellTstValues(
            Cell simulationCell,
            int iteration,
            InitialConditionsDistribution icd,
            bool isSpatial)
        {
            if (simulationCell.TstValues.Count == 0)
            {
                return;
            }

            foreach (Tst tst in simulationCell.TstValues)
            {
                tst.TstValue = int.MaxValue;
            }

            this.InitTSTFromRamdomize(simulationCell, iteration);
            this.InitTSTFromICDistribution(simulationCell, iteration, icd);

            if (IsSpatial)
            {
                this.InitTSTFromRaster(simulationCell, iteration);
            }
        }