IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
Public Member Functions | List of all members
IBTK::CartSideRobinPhysBdryOp Class Reference

Class CartSideRobinPhysBdryOp is a concrete SAMRAI::xfer::RefinePatchStrategy for setting Robin boundary conditions at physical boundaries for side-centered vector-valued quantities. More...

#include </home/runner/work/IBAMR/IBAMR/ibtk/include/ibtk/CartSideRobinPhysBdryOp.h>

Inheritance diagram for IBTK::CartSideRobinPhysBdryOp:
Inheritance graph
[legend]

Public Member Functions

 CartSideRobinPhysBdryOp ()
 Default constructor. More...
 
 CartSideRobinPhysBdryOp (int patch_data_index, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs, bool homogeneous_bc=false, std::string type="LINEAR")
 Constructor to fill boundary conditions for vector-valued quantities. Distinct boundary condition objects are provided for each vector component. More...
 
 CartSideRobinPhysBdryOp (const std::set< int > &patch_data_indices, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs, bool homogeneous_bc=false, std::string type="LINEAR")
 Constructor to fill boundary conditions for vector-valued quantities. Distinct boundary condition objects are provided for each vector component. More...
 
 CartSideRobinPhysBdryOp (const SAMRAI::hier::ComponentSelector &patch_data_indices, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs, bool homogeneous_bc=false, std::string type="LINEAR")
 Constructor to fill boundary conditions for vector-valued quantities. Distinct boundary condition objects are provided for each vector component. More...
 
 ~CartSideRobinPhysBdryOp ()
 Destructor.
 
- Public Member Functions inherited from IBTK::RobinPhysBdryPatchStrategy
 RobinPhysBdryPatchStrategy ()=default
 Default constructor.
 
 ~RobinPhysBdryPatchStrategy ()=default
 Destructor.
 
void setPatchDataIndex (int patch_data_index)
 Reset the patch data index operated upon by this class.
 
void setPatchDataIndices (const std::set< int > &patch_data_indices)
 Reset the patch data indices operated upon by this class.
 
void setPatchDataIndices (const SAMRAI::hier::ComponentSelector &patch_data_indices)
 Reset the patch data indices operated upon by this class.
 
void setPhysicalBcCoef (SAMRAI::solv::RobinBcCoefStrategy< NDIM > *bc_coef)
 Reset the Robin boundary condition specification object employed by this class to set physical boundary conditions. More...
 
void setPhysicalBcCoefs (const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs)
 Reset the Robin boundary condition specification object employed by this class to set physical boundary conditions. More...
 
void setHomogeneousBc (bool homogeneous_bc)
 Set whether boundary filling should employ homogeneous boundary conditions. More...
 
bool getHomogeneousBc () const
 
void preprocessRefine (SAMRAI::hier::Patch< NDIM > &fine, const SAMRAI::hier::Patch< NDIM > &coarse, const SAMRAI::hier::Box< NDIM > &fine_box, const SAMRAI::hier::IntVector< NDIM > &ratio) override
 
void postprocessRefine (SAMRAI::hier::Patch< NDIM > &fine, const SAMRAI::hier::Patch< NDIM > &coarse, const SAMRAI::hier::Box< NDIM > &fine_box, const SAMRAI::hier::IntVector< NDIM > &ratio) override
 
- Public Member Functions inherited from SAMRAI::xfer::RefinePatchStrategy< NDIM >
virtual void preprocessRefineBoxes (hier::Patch< NDIM > &fine, const hier::Patch< NDIM > &coarse, const hier::BoxList< NDIM > &fine_boxes, const hier::IntVector< NDIM > &ratio)
 
virtual void postprocessRefineBoxes (hier::Patch< NDIM > &fine, const hier::Patch< NDIM > &coarse, const hier::BoxList< NDIM > &fine_boxes, const hier::IntVector< NDIM > &ratio)
 

Implementation of SAMRAI::xfer::RefinePatchStrategy interface.

void setPhysicalBoundaryConditions (SAMRAI::hier::Patch< NDIM > &patch, double fill_time, const SAMRAI::hier::IntVector< NDIM > &ghost_width_to_fill) override
 
SAMRAI::hier::IntVector< NDIM > getRefineOpStencilWidth () const override
 
void accumulateFromPhysicalBoundaryData (SAMRAI::hier::Patch< NDIM > &patch, double fill_time, const SAMRAI::hier::IntVector< NDIM > &ghost_width_to_fill) override
 

Additional Inherited Members

- Protected Attributes inherited from IBTK::RobinPhysBdryPatchStrategy
std::set< int > d_patch_data_indices
 
std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > d_bc_coefs
 
bool d_homogeneous_bc = false
 

Detailed Description

Class CartSideRobinPhysBdryOp is a concrete SAMRAI::xfer::RefinePatchStrategy for setting Robin boundary conditions at physical boundaries for side-centered vector-valued quantities.

Note
This class is intended to be used to specify boundary conditions for MAC vector fields and may not work correctly for other types of data.
Warning
Presently, this class only supports pure Dirichlet or pure Neumann boundary conditions for the normal component of the vector field. Mixed (Robin) boundary conditions are not supported in the normal direction.

Constructor & Destructor Documentation

◆ CartSideRobinPhysBdryOp() [1/4]

IBTK::CartSideRobinPhysBdryOp::CartSideRobinPhysBdryOp ( )

Default constructor.

Note
This constructor leaves the class in an undefined state. In particular, the patch data indices requiring cell filling and the boundary condition specifications must be set prior to use of method setPhysicalBoundaryConditions().
See also
setPatchDataIndex
setPatchDataIndices
setPhysicalBcCoef
setPhysicalBcCoefs
setHomogeneousBc

◆ CartSideRobinPhysBdryOp() [2/4]

IBTK::CartSideRobinPhysBdryOp::CartSideRobinPhysBdryOp ( int  patch_data_index,
const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &  bc_coefs,
bool  homogeneous_bc = false,
std::string  type = "LINEAR" 
)

Constructor to fill boundary conditions for vector-valued quantities. Distinct boundary condition objects are provided for each vector component.

Parameters
patch_data_indexPatch data index requiring ghost cell filling.
bc_coefsRobin boundary conditions to use with this class.
homogeneous_bcWhether to employ the homogeneous form of the boundary conditions.
typeType of interpolation to use. Valid options are "LINEAR" or "QUADRATIC". Defaults to "LINEAR".

◆ CartSideRobinPhysBdryOp() [3/4]

IBTK::CartSideRobinPhysBdryOp::CartSideRobinPhysBdryOp ( const std::set< int > &  patch_data_indices,
const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &  bc_coefs,
bool  homogeneous_bc = false,
std::string  type = "LINEAR" 
)

Constructor to fill boundary conditions for vector-valued quantities. Distinct boundary condition objects are provided for each vector component.

Parameters
patch_data_indicesCollection of patch data indices which require ghost cell filling.
bc_coefsRobin boundary conditions to use with this class.
homogeneous_bcWhether to employ the homogeneous form of the boundary conditions.
typeType of interpolation to use. Valid options are "LINEAR" or "QUADRATIC". Defaults to "LINEAR".

◆ CartSideRobinPhysBdryOp() [4/4]

IBTK::CartSideRobinPhysBdryOp::CartSideRobinPhysBdryOp ( const SAMRAI::hier::ComponentSelector patch_data_indices,
const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &  bc_coefs,
bool  homogeneous_bc = false,
std::string  type = "LINEAR" 
)

Constructor to fill boundary conditions for vector-valued quantities. Distinct boundary condition objects are provided for each vector component.

Parameters
patch_data_indicesCollection of patch data indices which require ghost cell filling.
bc_coefsRobin boundary conditions to use with this class.
homogeneous_bcWhether to employ the homogeneous form of the boundary conditions.
typeType of interpolation to use. Valid options are "LINEAR" or "QUADRATIC". Defaults to "LINEAR".

Member Function Documentation

◆ accumulateFromPhysicalBoundaryData()

void IBTK::CartSideRobinPhysBdryOp::accumulateFromPhysicalBoundaryData ( SAMRAI::hier::Patch< NDIM > &  patch,
double  fill_time,
const SAMRAI::hier::IntVector< NDIM > &  ghost_width_to_fill 
)
overridevirtual

Function to accumulate data near physical boundaries from values set in the ghost cell region using the adjoint of the operator used to extrapolate the ghost cell values. This function can be used to construct the adjoint of linear operators that use ghost cell data.

Parameters
patchPatch on which to fill boundary data.
fill_timeDouble simulation time for boundary filling.
ghost_width_to_fillInteger vector describing maximum ghost width to fill over all registered scratch components.

Reimplemented from IBTK::RobinPhysBdryPatchStrategy.

◆ getRefineOpStencilWidth()

IntVector< NDIM > IBTK::CartSideRobinPhysBdryOp::getRefineOpStencilWidth ( ) const
overridevirtual

Function to return maximum stencil width needed over user-defined data interpolation operations. This is needed to determine the correct interpolation data dependencies.

Implements SAMRAI::xfer::RefinePatchStrategy< NDIM >.

◆ setPhysicalBoundaryConditions()

void IBTK::CartSideRobinPhysBdryOp::setPhysicalBoundaryConditions ( SAMRAI::hier::Patch< NDIM > &  patch,
double  fill_time,
const SAMRAI::hier::IntVector< NDIM > &  ghost_width_to_fill 
)
overridevirtual

Function to set data associated with the given list of patch data indices at patch boundaries that intersect the physical domain boundary. The patch data components set in this routine correspond to the "scratch" components specified in calls to the registerRefine() function in the SAMRAI::xfer::RefineAlgorithm class.

Parameters
patchPatch on which to fill boundary data.
fill_timeDouble simulation time for boundary filling.
ghost_width_to_fillInteger vector describing maximum ghost width to fill over all registered scratch components.

Implements SAMRAI::xfer::RefinePatchStrategy< NDIM >.


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