SpatialOps
SpatialOps::NeboBoundaryConditionBuilder< OperatorT > Struct Template Reference

Supports definition of new Nebo boundary condition. More...

#include <NeboStencilBuilder.h>

Public Types

typedef OperatorT OperatorType
 type of operator to invert
 
typedef OperatorType::SrcFieldType PhiFieldType
 field type of phi, which this operator modifies
 
typedef OperatorType::DestFieldType GammaFieldType
 type of fields in gamma, which this operator reads
 
typedef OperatorType::PointCollectionType PointCollection
 stencil point collection
 
typedef PointCollection::Last LowPoint
 stencil offset for low point in phi, assumes gamma is origin
 
typedef PointCollection::AllButLast NonLowPoints
 stencil offsets for all but low point in phi, assumes gamma is origin
 
typedef PointCollection::First HighPoint
 stencil offset for high point in phi, assumes gamma is origin
 
typedef PointCollection::AllButFirst NonHighPoints
 stencil offsets for all but high point in phi, assumes gamma is origin
 
typedef NeboStencilCoefCollection< PointCollection::length > CoefCollection
 collection of coefficients
 

Public Member Functions

 NeboBoundaryConditionBuilder (OperatorType const &op)
 construct a boundary condition
 
template<typename ExprType , typename MaskType >
void apply_imp (MaskType mask, PhiFieldType &phi, const IntVec &shift, const NeboExpression< ExprType, GammaFieldType > &gamma, BCSide side) const
 Apply boundary condition with gamma as an expression and a converted/non-converted mask. More...
 
template<typename ExprType >
void operator() (ConvertedPhiMask mask, PhiFieldType &phi, const NeboExpression< ExprType, GammaFieldType > &gamma) const
 Apply boundary condition with gamma as an expression and a converted mask as boundary mask. More...
 
template<typename ExprType >
void operator() (SpatialMask< GammaFieldType > mask, PhiFieldType &phi, const NeboExpression< ExprType, GammaFieldType > &gamma, bool minus) const
 Apply boundary condition with gamma as an expression. More...
 
void operator() (SpatialMask< GammaFieldType > mask, PhiFieldType &phi, const GammaFieldType &gamma, bool minus) const
 Apply boundary condition with gamma as a field. More...
 
void operator() (ConvertedPhiMask mask, PhiFieldType &phi, const GammaFieldType &gamma) const
 Apply boundary condition with gamma as a field. More...
 
void operator() (const SpatialMask< GammaFieldType > mask, PhiFieldType &phi, const double gamma, bool minus) const
 Apply boundary condition with gamma as a scalar. More...
 
void operator() (ConvertedPhiMask mask, PhiFieldType &phi, const double gamma) const
 Apply boundary condition with gamma as a scalar. More...
 

Detailed Description

template<typename OperatorT>
struct SpatialOps::NeboBoundaryConditionBuilder< OperatorT >

Supports definition of new Nebo boundary condition.

Template Parameters
OperatorTOperator to invert

Note that Gamma is assumed to be the origin, for the stencil points and mask points.

Definition at line 906 of file NeboStencilBuilder.h.

Member Function Documentation

◆ apply_imp()

template<typename OperatorT >
template<typename ExprType , typename MaskType >
void SpatialOps::NeboBoundaryConditionBuilder< OperatorT >::apply_imp ( MaskType  mask,
PhiFieldType phi,
const IntVec shift,
const NeboExpression< ExprType, GammaFieldType > &  gamma,
BCSide  side 
) const
inline

Apply boundary condition with gamma as an expression and a converted/non-converted mask.

Parameters
maskthe mask of points where boundary condition applies
phithe field to modify
shiftthe shift vector
gammathe Nebo expression to read
minusboolean flag, true if operating on negative face

Definition at line 961 of file NeboStencilBuilder.h.

References SpatialOps::MINUS_SIDE.

◆ operator()() [1/6]

template<typename OperatorT >
template<typename ExprType >
void SpatialOps::NeboBoundaryConditionBuilder< OperatorT >::operator() ( ConvertedPhiMask  mask,
PhiFieldType phi,
const NeboExpression< ExprType, GammaFieldType > &  gamma 
) const
inline

Apply boundary condition with gamma as an expression and a converted mask as boundary mask.

Parameters
maskthe mask of points where boundary condition applies
phithe field to modify
gammathe expression to read

Definition at line 992 of file NeboStencilBuilder.h.

◆ operator()() [2/6]

template<typename OperatorT >
template<typename ExprType >
void SpatialOps::NeboBoundaryConditionBuilder< OperatorT >::operator() ( SpatialMask< GammaFieldType mask,
PhiFieldType phi,
const NeboExpression< ExprType, GammaFieldType > &  gamma,
bool  minus 
) const
inline

Apply boundary condition with gamma as an expression.

Parameters
maskthe mask of points where boundary condition applies
phithe field to modify
gammathe Nebo expression to read
minusboolean flag, true if operating on negative face

Definition at line 1060 of file NeboStencilBuilder.h.

References SpatialOps::MINUS_SIDE, and SpatialOps::PLUS_SIDE.

◆ operator()() [3/6]

template<typename OperatorT >
void SpatialOps::NeboBoundaryConditionBuilder< OperatorT >::operator() ( SpatialMask< GammaFieldType mask,
PhiFieldType phi,
const GammaFieldType gamma,
bool  minus 
) const
inline

Apply boundary condition with gamma as a field.

Parameters
maskthe mask of points where boundary condition applies
phithe field to modify
gammathe field to read
minus

Definition at line 1095 of file NeboStencilBuilder.h.

◆ operator()() [4/6]

template<typename OperatorT >
void SpatialOps::NeboBoundaryConditionBuilder< OperatorT >::operator() ( ConvertedPhiMask  mask,
PhiFieldType phi,
const GammaFieldType gamma 
) const
inline

Apply boundary condition with gamma as a field.

Parameters
maskthe mask of points where boundary condition applies
phithe field to modify
gammathe field to read

Definition at line 1111 of file NeboStencilBuilder.h.

◆ operator()() [5/6]

template<typename OperatorT >
void SpatialOps::NeboBoundaryConditionBuilder< OperatorT >::operator() ( const SpatialMask< GammaFieldType mask,
PhiFieldType phi,
const double  gamma,
bool  minus 
) const
inline

Apply boundary condition with gamma as a scalar.

Parameters
maskthe mask of points where boundary condition applies
phithe field to modify
gammathe scalar to read
minus

Definition at line 1137 of file NeboStencilBuilder.h.

◆ operator()() [6/6]

template<typename OperatorT >
void SpatialOps::NeboBoundaryConditionBuilder< OperatorT >::operator() ( ConvertedPhiMask  mask,
PhiFieldType phi,
const double  gamma 
) const
inline

Apply boundary condition with gamma as a scalar.

Parameters
maskthe mask of points where boundary condition applies
phithe field to modify
gammathe scalar to read
minus

Definition at line 1154 of file NeboStencilBuilder.h.


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