533 {
534 sLattice.template addPostProcessor<FreeSurface::Stage0>(
535 meta::id<FreeSurfaceMassFlowPostProcessor2D>{});
536 sLattice.template addPostProcessor<FreeSurface::Stage1>(
537 meta::id<FreeSurfaceToFluidCellConversionPostProcessor2D<T,DESCRIPTOR>>{});
538 sLattice.template addPostProcessor<FreeSurface::Stage2>(
539 meta::id<FreeSurfaceToGasCellConversionPostProcessor2D<T,DESCRIPTOR>>{});
540 sLattice.template addPostProcessor<FreeSurface::Stage3>(
541 meta::id<FreeSurfaceMassExcessPostProcessor2D<T,DESCRIPTOR>>{});
542 sLattice.template addPostProcessor<FreeSurface::Stage4>(
543 meta::id<FreeSurfaceFinalizeConversionPostProcessor2D<T,DESCRIPTOR>>{});
544 {
545
546 auto& communicator = sLattice.getCommunicator(FreeSurface::Stage0());
547 communicator.requestOverlap(2);
548 communicator.template requestField<FreeSurface::EPSILON>();
549 communicator.template requestField<FreeSurface::CELL_TYPE>();
550 communicator.template requestField<descriptors::POPULATION>();
551 communicator.exchangeRequests();
552 }
553
554 {
555
556 auto& communicator = sLattice.getCommunicator(FreeSurface::Stage1());
557 communicator.requestOverlap(2);
558 communicator.template requestField<FreeSurface::CELL_FLAGS>();
559 communicator.template requestField<descriptors::POPULATION>();
560 communicator.exchangeRequests();
561 }
562
563 {
564
565 auto& communicator = sLattice.getCommunicator(FreeSurface::Stage2());
566 communicator.requestOverlap(2);
567 communicator.template requestField<FreeSurface::CELL_FLAGS>();
568 communicator.exchangeRequests();
569 }
570
571 {
572
573 auto& communicator = sLattice.getCommunicator(FreeSurface::Stage3());
574 communicator.requestOverlap(2);
575 communicator.template requestField<FreeSurface::CELL_FLAGS>();
576 communicator.exchangeRequests();
577 }
578
579 {
580
581 auto& communicator = sLattice.getCommunicator(FreeSurface::Stage4());
582 communicator.requestOverlap(2);
583 communicator.template requestField<FreeSurface::TEMP_MASS_EXCHANGE>();
584 communicator.exchangeRequests();
585 }
586
587 sLattice.template addCustomTask<stage::PostStream>([&]() {
588 sLattice.executePostProcessors(FreeSurface::Stage0());
589 sLattice.executePostProcessors(FreeSurface::Stage1());
590 sLattice.executePostProcessors(FreeSurface::Stage2());
591 sLattice.executePostProcessors(FreeSurface::Stage3());
592 sLattice.executePostProcessors(FreeSurface::Stage4());
593 });
594}