ThunderEgg  1.0.0
ThunderEgg::MPIGhostFiller< D > Class Template Referenceabstract

Parallell ghostfiller implimented with MPI. More...

#include <MPIGhostFiller.h>

Inheritance diagram for ThunderEgg::MPIGhostFiller< D >:
Collaboration diagram for ThunderEgg::MPIGhostFiller< D >:

Public Member Functions

 MPIGhostFiller (const Domain< D > &domain, GhostFillingType fill_type)
 Construct a new MPIGhostFiller object. More...
 
virtual void fillGhostCellsForNbrPatch (const PatchInfo< D > &pinfo, const PatchView< const double, D > &local_view, const PatchView< const double, D > &nbr_view, Side< D > side, NbrType nbr_type, Orthant< D - 1 > orthant_on_coarse) const =0
 Fill the ghost cells for the neighboring patch. More...
 
virtual void fillGhostCellsForEdgeNbrPatch (const PatchInfo< D > &pinfo, const PatchView< const double, D > &local_view, const PatchView< const double, D > &nbr_view, Edge edge, NbrType nbr_type, Orthant< 1 > orthant_on_coarse) const =0
 Fill the edge ghost cells for the neighboring patch. More...
 
virtual void fillGhostCellsForCornerNbrPatch (const PatchInfo< D > &pinfo, const PatchView< const double, D > &local_view, const PatchView< const double, D > &nbr_view, Corner< D > corner, NbrType nbr_type) const =0
 Fill the corner ghost cells for the neighboring patch. More...
 
virtual void fillGhostCellsForLocalPatch (const PatchInfo< D > &pinfo, const PatchView< const double, D > &view) const =0
 Perform any on this patches ghost cells. More...
 
void fillGhost (const Vector< D > &u) const override
 Fill ghost cells on a vector. More...
 
GhostFillingType getFillType () const
 Get the ghost filling type. More...
 
const Domain< D > & getDomain () const
 Get the domain that is being filled for. More...
 
- Public Member Functions inherited from ThunderEgg::GhostFiller< D >
virtual GhostFiller< D > * clone () const =0
 Clone this GhostFiller. More...
 

Detailed Description

template<int D>
class ThunderEgg::MPIGhostFiller< D >

Parallell ghostfiller implimented with MPI.

There are three functions that have to be overridden in derived classes. fillGhostCellsForNbrPatch, fillGhostCellsForEdgeNbrPatch, fillGhostCellsForCornerNbrPatch, and fillGhostCellsForLocalPatch

Template Parameters
Dthe number of Cartesian dimensions

Constructor & Destructor Documentation

◆ MPIGhostFiller()

template<int D>
ThunderEgg::MPIGhostFiller< D >::MPIGhostFiller ( const Domain< D > &  domain,
GhostFillingType  fill_type 
)
inline

Construct a new MPIGhostFiller object.

Parameters
domainthe domain being used
fill_typethe number of side cases to address

Member Function Documentation

◆ fillGhost()

template<int D>
void ThunderEgg::MPIGhostFiller< D >::fillGhost ( const Vector< D > &  u) const
inlineoverridevirtual

Fill ghost cells on a vector.

Parameters
uthe vector

Implements ThunderEgg::GhostFiller< D >.

◆ fillGhostCellsForCornerNbrPatch()

template<int D>
virtual void ThunderEgg::MPIGhostFiller< D >::fillGhostCellsForCornerNbrPatch ( const PatchInfo< D > &  pinfo,
const PatchView< const double, D > &  local_view,
const PatchView< const double, D > &  nbr_view,
Corner< D >  corner,
NbrType  nbr_type 
) const
pure virtual

Fill the corner ghost cells for the neighboring patch.

Parameters
pinfothe patch that ghost cells are being filled from
local_viewthe view for patch that ghost cells are being filled from
nbr_viewthe view for the neighboring patch, where ghost cells are being filled.
cornerthe edge that the neighboring patch is on
nbr_typethe type of neighbor

◆ fillGhostCellsForEdgeNbrPatch()

template<int D>
virtual void ThunderEgg::MPIGhostFiller< D >::fillGhostCellsForEdgeNbrPatch ( const PatchInfo< D > &  pinfo,
const PatchView< const double, D > &  local_view,
const PatchView< const double, D > &  nbr_view,
Edge  edge,
NbrType  nbr_type,
Orthant< 1 >  orthant_on_coarse 
) const
pure virtual

Fill the edge ghost cells for the neighboring patch.

Parameters
pinfothe patch that ghost cells are being filled from
local_viewthe view for patch that ghost cells are being filled from
nbr_viewthe view for the neighboring patch, where ghost cells are being filled.
edgethe edge that the neighboring patch is on
nbr_typethe type of neighbor
orthant_on_coarsethe orthant that the neighbors ghost cells lie on if the neighbor is coarser

◆ fillGhostCellsForLocalPatch()

template<int D>
virtual void ThunderEgg::MPIGhostFiller< D >::fillGhostCellsForLocalPatch ( const PatchInfo< D > &  pinfo,
const PatchView< const double, D > &  view 
) const
pure virtual

Perform any on this patches ghost cells.

This may be necessary on some schemes because it needs data from the patch itself, not just the neighboring patch

Parameters
pinfothe patch
viewthe view for the patch

◆ fillGhostCellsForNbrPatch()

template<int D>
virtual void ThunderEgg::MPIGhostFiller< D >::fillGhostCellsForNbrPatch ( const PatchInfo< D > &  pinfo,
const PatchView< const double, D > &  local_view,
const PatchView< const double, D > &  nbr_view,
Side< D >  side,
NbrType  nbr_type,
Orthant< D - 1 >  orthant_on_coarse 
) const
pure virtual

Fill the ghost cells for the neighboring patch.

Parameters
pinfothe patch that ghost cells are being filled from
local_vewthe view for patch that ghost cells are being filled from
nbr_viewthe view for the neighboring patch, where ghost cells are being filled.
sidethe side that the neighboring patch is on
nbr_typethe type of neighbor
orthant_on_coarsethe orthant that the neighbors ghost cells lie on if the neighbor is coarser

◆ getDomain()

template<int D>
const Domain<D>& ThunderEgg::MPIGhostFiller< D >::getDomain ( ) const
inline

Get the domain that is being filled for.

Returns
std::shared_ptr<const Domain<D>> the domain

◆ getFillType()

template<int D>
GhostFillingType ThunderEgg::MPIGhostFiller< D >::getFillType ( ) const
inline

Get the ghost filling type.

Returns
GhostFillingType the tyep

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