public TestFilmFormationConfig()
 {
     SimulationBoxFactory            = new AbsoluteTetragonalSimulationBoxFactory();
     SingleParticleDepositionHandler = new BallisticSingleParticleDepositionHandler();
     AggregateDepositionHandler      = new BallisticAggregateDepositionHandler(SingleParticleDepositionHandler);
     WallCollisionHandler            = new PeriodicBoundaryCollisionHandler();
     NeighborslistFactory            = new AccordNeighborslistFactory();
 }
        public static async Task <int> GetNumberOfOverlappingPrimaryParticles_Async(IParticleFilm <Aggregate> particleFilm, bool highlightPrimaryParticle)
        {
            var neighborslistFactory = new AccordNeighborslistFactory();
            var neighborslist        = await neighborslistFactory.Build3DNeighborslist_Async(particleFilm.PrimaryParticles);

            var tasks = new List <Task <int> >();

            foreach (var primaryParticle in particleFilm.PrimaryParticles)
            {
                tasks.Add(Task.Run(() => GetPrimaryParticleOverlaps(primaryParticle, particleFilm, neighborslist, highlightPrimaryParticle)));
            }
            var counts = await Task.WhenAll(tasks);

            return(counts.Sum());
        }