private void LoadSetupFiles(CovidScenario scenario) { Wards = WardRecord.LoadFromCsv(scenario.GeographyFile); AgeDistributions = AgeDistributionCollection.LoadFromCsv(scenario.AgeDistributionsFile); HouseHoldSizeDistributions = HouseSizeDistributionCollection.LoadFromCsv(scenario.HouseHoldSizesFile); HomeContactMatrix = ContactMatrix.LoadFromCsv(scenario.HomeContactMatrixFile); OtherContactMatrix = ContactMatrix.LoadFromCsv(scenario.OtherContactMatrixFile); TravelMatrix = TravelMatrix.LoadFromCsv(scenario.TravelMatrixFile); }
private static int Main(string[] args) { SetupLogging(); CheckGcStatus(); if (!CheckArgumentParserVersion()) { return(-1); } var runSettings = new RunSettings(); if (!ParseArguments(args, runSettings)) { Log.Error("Execution stopped because command line parameters did not parse successfully."); return(-1); } var iterations = runSettings.Iterations; const int seed = 879375928; var noOfThreads = Environment.ProcessorCount; // by default use everything that is available if (runSettings.Threads != 0) { noOfThreads = runSettings.Threads; } Log.Information($"Processing on {noOfThreads} threads"); var maximumQueueSize = Math.Min(noOfThreads, 3); var controller = new Controller() { SaveContactGraphs = runSettings.SaveContactGraphs, OutputDetail = (GeoLevel)Enum.Parse(typeof(GeoLevel), runSettings.OutputDetail) }; var startTime = DateTime.Now; var scenario = CovidScenario.LoadFromFile(runSettings.ScenarioFile); controller.RunAllIterations(scenario, iterations, noOfThreads, seed, maximumQueueSize, runSettings.SaveDate); var endTime = DateTime.Now; var timePassed = endTime - startTime; Log.Information($"Total processing time: {timePassed:g}"); Log.CloseAndFlush(); return(0); }