OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | List of all members
olb::FreeSurface2DSetup< T, DESCRIPTOR > Class Template Reference

Generator class for the PostProcessors tracking the interface. More...

#include <freeSurfacePostProcessor2D.h>

+ Collaboration diagram for olb::FreeSurface2DSetup< T, DESCRIPTOR >:

Public Member Functions

 FreeSurface2DSetup (SuperLattice< T, DESCRIPTOR > &sLattice)
 
void addPostProcessor ()
 

Detailed Description

template<typename T, typename DESCRIPTOR>
class olb::FreeSurface2DSetup< T, DESCRIPTOR >

Generator class for the PostProcessors tracking the interface.

Definition at line 158 of file freeSurfacePostProcessor2D.h.

Constructor & Destructor Documentation

◆ FreeSurface2DSetup()

template<typename T , typename DESCRIPTOR >
olb::FreeSurface2DSetup< T, DESCRIPTOR >::FreeSurface2DSetup ( SuperLattice< T, DESCRIPTOR > & sLattice)

Definition at line 527 of file freeSurfacePostProcessor2D.hh.

528:
529 sLattice{sLattice}
530{}

Member Function Documentation

◆ addPostProcessor()

template<typename T , typename DESCRIPTOR >
void olb::FreeSurface2DSetup< T, DESCRIPTOR >::addPostProcessor ( )

Definition at line 533 of file freeSurfacePostProcessor2D.hh.

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 // Communicate DFs, Epsilon and Cell Types
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 // Communicate DFs, Cell Flags
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 // Communicate Cell Flags
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 // Communicate Cell Flags
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 // Communicate TempMassExchange
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}

References olb::SuperLattice< T, DESCRIPTOR >::getCommunicator().

+ Here is the call graph for this function:

The documentation for this class was generated from the following files: