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()); }