538 {
540 meta::id<FreeSurfaceMassFlowPostProcessor2D<T,DESCRIPTOR>>{});
542 meta::id<FreeSurfaceInterfaceReconstructionPostProcessor2D<T,DESCRIPTOR>>{});
544 meta::id<FreeSurfaceToFluidCellConversionPostProcessor2D<T,DESCRIPTOR>>{});
546 meta::id<FreeSurfaceToGasCellConversionPostProcessor2D<T,DESCRIPTOR>>{});
548 meta::id<FreeSurfaceMassExcessPostProcessor2D<T,DESCRIPTOR>>{});
550 meta::id<FreeSurfaceFinalizeConversionPostProcessor2D<T,DESCRIPTOR>>{});
551
552 {
553
554 auto& communicator = _sLattice.getCommunicator(FreeSurface::Stage0());
555 communicator.requestOverlap(_sLattice.getOverlap());
556 communicator.template requestField<FreeSurface::EPSILON>();
557 communicator.template requestField<FreeSurface::CELL_TYPE>();
558 communicator.template requestField<descriptors::POPULATION>();
559 communicator.template requestField<FreeSurface::PREVIOUS_VELOCITY>();
560 communicator.exchangeRequests();
561 }
562
563 {
564
565 auto& communicator = _sLattice.getCommunicator(FreeSurface::Stage1());
566 communicator.requestOverlap(_sLattice.getOverlap());
567 communicator.template requestField<FreeSurface::MASS>();
568 communicator.template requestField<FreeSurface::PREVIOUS_VELOCITY>();
569 communicator.exchangeRequests();
570 }
571
572 {
573
574 auto& communicator = _sLattice.getCommunicator(FreeSurface::Stage2());
575 communicator.requestOverlap(_sLattice.getOverlap());
576 communicator.template requestField<FreeSurface::CELL_FLAGS>();
577 communicator.template requestField<descriptors::POPULATION>();
578 communicator.exchangeRequests();
579 }
580
581 {
582
583 auto& communicator = _sLattice.getCommunicator(FreeSurface::Stage3());
584 communicator.requestOverlap(_sLattice.getOverlap());
585 communicator.template requestField<FreeSurface::CELL_FLAGS>();
586 communicator.exchangeRequests();
587 }
588
589 {
590
591 auto& communicator = _sLattice.getCommunicator(FreeSurface::Stage4());
592 communicator.requestOverlap(_sLattice.getOverlap());
593 communicator.template requestField<FreeSurface::CELL_FLAGS>();
594 communicator.exchangeRequests();
595 }
596
597 {
598
599 auto& communicator = _sLattice.getCommunicator(FreeSurface::Stage5());
600 communicator.requestOverlap(_sLattice.getOverlap());
601 communicator.template requestField<FreeSurface::TEMP_MASS_EXCHANGE>();
602 communicator.exchangeRequests();
603 }
604
605
606 _sLattice.template addCustomTask<stage::PostStream>([&]() {
607 _sLattice.executePostProcessors(FreeSurface::Stage0());
608 _sLattice.executePostProcessors(FreeSurface::Stage1());
609 _sLattice.executePostProcessors(FreeSurface::Stage2());
610 _sLattice.executePostProcessors(FreeSurface::Stage3());
611 _sLattice.executePostProcessors(FreeSurface::Stage4());
612 _sLattice.executePostProcessors(FreeSurface::Stage5());
613 });
614}