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

#include <freeSurfacePostProcessor3D.h>

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

Public Member Functions

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

Detailed Description

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

Definition at line 145 of file freeSurfacePostProcessor3D.h.

Constructor & Destructor Documentation

◆ FreeSurface3DSetup()

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

Definition at line 541 of file freeSurfacePostProcessor3D.hh.

542:
543 sLattice{sLattice}
544{}

Member Function Documentation

◆ addPostProcessor()

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

Definition at line 547 of file freeSurfacePostProcessor3D.hh.

547 {
548 sLattice.template addPostProcessor<FreeSurface::Stage0>(
549 meta::id<FreeSurfaceMassFlowPostProcessor3D<T,DESCRIPTOR>>{});
550 sLattice.template addPostProcessor<FreeSurface::Stage1>(
551 meta::id<FreeSurfaceToFluidCellConversionPostProcessor3D<T,DESCRIPTOR>>{});
552 sLattice.template addPostProcessor<FreeSurface::Stage2>(
553 meta::id<FreeSurfaceToGasCellConversionPostProcessor3D<T,DESCRIPTOR>>{});
554 sLattice.template addPostProcessor<FreeSurface::Stage3>(
555 meta::id<FreeSurfaceMassExcessPostProcessor3D<T,DESCRIPTOR>>{});
556 sLattice.template addPostProcessor<FreeSurface::Stage4>(
557 meta::id<FreeSurfaceFinalizeConversionPostProcessor3D<T,DESCRIPTOR>>{});
558
559 {
560 // Communicate DFs, Epsilon and Cell Types
561 auto& communicator = sLattice.getCommunicator(FreeSurface::Stage0());
562 communicator.requestOverlap(2);
563 communicator.template requestField<FreeSurface::EPSILON>();
564 communicator.template requestField<FreeSurface::CELL_TYPE>();
565 communicator.template requestField<descriptors::POPULATION>();
566 communicator.exchangeRequests();
567 }
568
569 {
570 // Communicate DFs, Cell Flags
571 auto& communicator = sLattice.getCommunicator(FreeSurface::Stage1());
572 communicator.requestOverlap(2);
573 communicator.template requestField<FreeSurface::CELL_FLAGS>();
574 communicator.template requestField<descriptors::POPULATION>();
575 communicator.exchangeRequests();
576 }
577
578 {
579 // Communicate Cell Flags
580 auto& communicator = sLattice.getCommunicator(FreeSurface::Stage2());
581 communicator.requestOverlap(2);
582 communicator.template requestField<FreeSurface::CELL_FLAGS>();
583 communicator.exchangeRequests();
584 }
585
586 {
587 // Communicate Cell Flags
588 auto& communicator = sLattice.getCommunicator(FreeSurface::Stage3());
589 communicator.requestOverlap(2);
590 communicator.template requestField<FreeSurface::CELL_FLAGS>();
591 communicator.exchangeRequests();
592 }
593
594 {
595 // Communicate TempMassExchange
596 auto& communicator = sLattice.getCommunicator(FreeSurface::Stage4());
597 communicator.requestOverlap(2);
598 communicator.template requestField<FreeSurface::TEMP_MASS_EXCHANGE>();
599 communicator.exchangeRequests();
600 }
601
602 sLattice.template addCustomTask<stage::PostStream>([&]() {
603 sLattice.executePostProcessors(FreeSurface::Stage0());
604 sLattice.executePostProcessors(FreeSurface::Stage1());
605 sLattice.executePostProcessors(FreeSurface::Stage2());
606 sLattice.executePostProcessors(FreeSurface::Stage3());
607 sLattice.executePostProcessors(FreeSurface::Stage4());
608 });
609}

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: