Example #1
0
        static void Main(string[] args)
        {
            string inputDir = @"C:\CSSLWaferFab\Input\";

            string outputDir = @"C:\CSSLWaferFab\Output\WaferFabSim\";

            string parameters = @"FittedEPTParameters - 2019-8-1_4months.csv";

            DateTime initialDateTime = new DateTime(2019, 8, 1);

            Settings.WriteOutput = true;
            Settings.FixSeed     = true;

            ShellModel WaferFabSim = new ShellModel(outputDir);

            // Load WaferFab settings
            AutoDataReader reader = new AutoDataReader(inputDir + @"CSVs\", inputDir + @"SerializedFiles\");

            WaferFabSettings waferFabSettings = reader.ReadWaferFabSettings(parameters, true, true, DispatcherBase.Type.EPTOVERTAKING);

            waferFabSettings.SampleInterval       = 1 * 60 * 60; // seconds
            waferFabSettings.LotStartsFrequency   = 1;           // hours
            waferFabSettings.UseRealLotStartsFlag = true;

            // MIVS Settings
            //waferFabSettings.WIPTargets = reader.ReadWIPTargets(waferFabSettings.LotSteps, "WIPTargets.csv");
            //waferFabSettings.MIVSjStepBack = 2;
            //waferFabSettings.MIVSkStepAhead = 2;

            // Read Initial Lots
            WaferFabSim.ReadRealSnaphots(inputDir + @$ "SerializedFiles\RealSnapShots_2019-{initialDateTime.Month}-1_2019-{initialDateTime.Month + 1}-1_1h.dat");
            waferFabSettings.InitialRealLots = WaferFabSim.RealSnapshotReader.RealSnapshots.Where(x => x.Time.Date == initialDateTime).OrderBy(x => x.Time).First().GetRealLots(1);

            // Experiment settings
            ExperimentSettings experimentSettings = new ExperimentSettings();

            int count = waferFabSettings.InitialRealLots.Where(x => x.StartTime == null).Count();

            experimentSettings.NumberOfReplications = 30;
            experimentSettings.LengthOfReplication  = 121 * 24 * 60 * 60; // seconds
            experimentSettings.LengthOfWarmUp       = 0 * 60 * 60;        // seconds

            // Connect settings
            WaferFabSim.MyWaferFabSettings = waferFabSettings;

            WaferFabSim.MyExperimentSettings = experimentSettings;

            // Run simulation
            WaferFabSim.RunSimulation();

            // Report summary
            SimulationReporter reporter = WaferFabSim.MySimulation.MakeSimulationReporter();

            reporter.PrintSummaryToFile();
            reporter.PrintSummaryToConsole();
        }
Example #2
0
        static void Main(string[] args)
        {
            string inputDir = @"C:\Users\nx008314\OneDrive - Nexperia\Work\WaferFab\";

            string outputDir = @"C:\CSSLWaferFab\";

            Settings.Output  = true;
            Settings.FixSeed = true;

            ShellModel WaferFabSim = new ShellModel(inputDir, outputDir);

            // Load WaferFab settings
            //ManualDataReader reader = new ManualDataReader(inputDir + "CSVs");
            AutoDataReader reader = new AutoDataReader(inputDir + "Auto");

            WaferFabSettings waferFabSettings = reader.ReadWaferFabSettings();

            waferFabSettings.SampleInterval       = 1 * 60 * 60; // seconds
            waferFabSettings.LotStartsFrequency   = 1;           // hours
            waferFabSettings.UseRealLotStartsFlag = true;

            // Read Initial Lots
            WaferFabSim.ReadRealSnaphots(inputDir + @"SerializedFiles\RealSnapshots_2019-12-1_2020-1-1_1h.dat");

            waferFabSettings.InitialRealLots = WaferFabSim.RealSnapshotReader.RealSnapshots.First().RealLots;

            // Experiment settings
            ExperimentSettings experimentSettings = new ExperimentSettings();

            experimentSettings.NumberOfReplications = 1;
            experimentSettings.LengthOfReplication  = 1 * 24 * 60 * 60; // seconds
            experimentSettings.LengthOfWarmUp       = 0 * 60 * 60;      // seconds

            // Connect settings
            WaferFabSim.MyWaferFabSettings = waferFabSettings;

            WaferFabSim.MyExperimentSettings = experimentSettings;

            // Run simulation
            WaferFabSim.RunSimulation();

            // Report summary
            SimulationReporter reporter = WaferFabSim.MySimulation.MakeSimulationReporter();

            reporter.PrintSummaryToFile();
            reporter.PrintSummaryToConsole();
        }