OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::FreeSurface2DSetup< T, DESCRIPTOR > Class Template Reference

#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 >

Definition at line 163 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 532 of file freeSurfacePostProcessor2D.hh.

533:
534 _sLattice(sLattice)
535{}

Member Function Documentation

◆ addPostProcessor()

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

Definition at line 538 of file freeSurfacePostProcessor2D.hh.

538 {
539 _sLattice.template addPostProcessor<FreeSurface::Stage0>(
540 meta::id<FreeSurfaceMassFlowPostProcessor2D<T,DESCRIPTOR>>{});
541 _sLattice.template addPostProcessor<FreeSurface::Stage1>(
542 meta::id<FreeSurfaceInterfaceReconstructionPostProcessor2D<T,DESCRIPTOR>>{});
543 _sLattice.template addPostProcessor<FreeSurface::Stage2>(
544 meta::id<FreeSurfaceToFluidCellConversionPostProcessor2D<T,DESCRIPTOR>>{});
545 _sLattice.template addPostProcessor<FreeSurface::Stage3>(
546 meta::id<FreeSurfaceToGasCellConversionPostProcessor2D<T,DESCRIPTOR>>{});
547 _sLattice.template addPostProcessor<FreeSurface::Stage4>(
548 meta::id<FreeSurfaceMassExcessPostProcessor2D<T,DESCRIPTOR>>{});
549 _sLattice.template addPostProcessor<FreeSurface::Stage5>(
550 meta::id<FreeSurfaceFinalizeConversionPostProcessor2D<T,DESCRIPTOR>>{});
551
552 {
553 // Communicate fields: EPSILON, CELL_TYPE, POPULATION, and PREVIOUS_VELOCITY
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 // Communicate fields: MASS and PREVIOUS_VELOCITY
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 // Communicate fields: CELL_FLAGS and POPULATION
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 // Communicate fields: CELL_FLAGS
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 // Communicate fields: CELL_FLAGS
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 // Communicate fields: TEMP_MASS_EXCHANGE
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 // Add custom tasks to be executed post stream
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}

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