Exemplo n.º 1
0
        public async Task BuildParticleFilm()
        {
            if (DoGenerateAggregates)
            {
                await AggFormationControlViewModel.GenerateAggregates(null);

                GetAggregatesFromGeneration();
            }

            var progress = new Progress <ProgressReportModel>();

            progress.ProgressChanged += _statusViewModel.ReportFilmProgress;

            _loggingViewModel.LogInfo("Initiating film generation.");
            _statusViewModel.SimulationStatus = SimulationStatus.Running;

            _cts = new CancellationTokenSource();

            FilmFormationService = new FilmFormationService(FilmFormationConfig);
            ParticleFilm         = await Task.Run(() => FilmFormationService.BuildFilm_Async(_aggregates, progress, FilmFormationConfig.Delta, _cts.Token));

            _loggingViewModel.LogInfo("Film generation complete.");
            ExportFilm();
            _statusViewModel.SimulationStatus = SimulationStatus.Idle;
        }
Exemplo n.º 2
0
 public FilmFormationSimulationRunner(IEnumerable <Aggregate> aggregates, IFilmFormationConfig filmFormationConfig)
 {
     _aggregates           = aggregates;
     _filmFormationConfig  = filmFormationConfig;
     _progress             = new Progress <ProgressReportModel>();
     _filmFormationService = new FilmFormationService(filmFormationConfig);
     _cts = new CancellationTokenSource();
 }
Exemplo n.º 3
0
 public FullSimulationRunner(
     IAggregateFormationConfig aggregateFormationConfig,
     SimulationMonitor simulationMonitor,
     IAggregateSizeDistributionFactory aggregateSizeDistributionFactory,
     IPrimaryParticleSizeDistributionFactory primaryParticleSizeDistributionFactory,
     IAggregateFormationFactory aggregateFormationFactory,
     INeighborslistFactory neighborslistFactory,
     IFilmFormationConfig filmFormationConfig,
     ILogger logger)
 {
     _filmFormationConfig  = filmFormationConfig;
     _progress             = new Progress <ProgressReportModel>();
     _filmFormationService = new FilmFormationService(filmFormationConfig);
     _cts = new CancellationTokenSource();
     _aggregateFormationConfig               = aggregateFormationConfig ?? throw new ArgumentException(nameof(aggregateFormationConfig));
     _aggregateSizeDistributionFactory       = aggregateSizeDistributionFactory;
     _primaryParticleSizeDistributionFactory = primaryParticleSizeDistributionFactory;
     _aggregateFormationFactory              = aggregateFormationFactory;
     _neighborslistFactory = neighborslistFactory;
     _logger = logger ?? throw new ArgumentException(nameof(logger));
     _aggregateFormationService = new AggregateFormationService(_aggregateSizeDistributionFactory, _primaryParticleSizeDistributionFactory, _aggregateFormationFactory, _neighborslistFactory, _aggregateFormationConfig, logger);
 }