|
IBAMR
IBAMR version 0.19.
|
Class CartCellRobinPhysBdryOp is a concrete SAMRAI::xfer::RefinePatchStrategy for setting Robin boundary conditions at physical boundaries for cell-centered scalar- and vector-valued quantities. More...
#include <ibtk/CartCellRobinPhysBdryOp.h>

Public Member Functions | |
| CartCellRobinPhysBdryOp () | |
| Default constructor. More... | |
| CartCellRobinPhysBdryOp (int patch_data_index, SAMRAI::solv::RobinBcCoefStrategy< NDIM > *bc_coef, bool homogeneous_bc=false, std::string type="LINEAR") | |
| Constructor to fill boundary conditions for scalar-valued quantities. More... | |
| CartCellRobinPhysBdryOp (const std::set< int > &patch_data_indices, SAMRAI::solv::RobinBcCoefStrategy< NDIM > *bc_coef, bool homogeneous_bc=false, std::string type="LINEAR") | |
| Constructor to fill boundary conditions for scalar-valued quantities. More... | |
| CartCellRobinPhysBdryOp (const SAMRAI::hier::ComponentSelector &patch_data_indices, SAMRAI::solv::RobinBcCoefStrategy< NDIM > *bc_coef, bool homogeneous_bc=false, std::string type="LINEAR") | |
| Constructor to fill boundary conditions for scalar-valued quantities. More... | |
| CartCellRobinPhysBdryOp (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. In this case, we require that distinct boundary condition objects are provided for each data depth. More... | |
| CartCellRobinPhysBdryOp (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. More... | |
| CartCellRobinPhysBdryOp (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. More... | |
| ~CartCellRobinPhysBdryOp () | |
| Destructor. More... | |
| void | setPatchDataIndex (int patch_data_index) |
| Reset the patch data index operated upon by this class. More... | |
| void | setPatchDataIndices (const std::set< int > &patch_data_indices) |
| Reset the patch data indices operated upon by this class. More... | |
| void | setPatchDataIndices (const SAMRAI::hier::ComponentSelector &patch_data_indices) |
| Reset the patch data indices operated upon by this class. More... | |
| 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 |
| virtual void | preprocessRefine (hier::Patch< DIM > &fine, const hier::Patch< DIM > &coarse, const hier::Box< DIM > &fine_box, const hier::IntVector< DIM > &ratio)=0 |
| virtual void | postprocessRefine (hier::Patch< DIM > &fine, const hier::Patch< DIM > &coarse, const hier::Box< DIM > &fine_box, const hier::IntVector< DIM > &ratio)=0 |
| virtual void | setPhysicalBoundaryConditions (hier::Patch< DIM > &patch, const double fill_time, const hier::IntVector< DIM > &ghost_width_to_fill)=0 |
| virtual hier::IntVector< DIM > | getRefineOpStencilWidth () const=0 |
| virtual void | preprocessRefineBoxes (hier::Patch< DIM > &fine, const hier::Patch< DIM > &coarse, const hier::BoxList< DIM > &fine_boxes, const hier::IntVector< DIM > &ratio) |
| virtual void | postprocessRefineBoxes (hier::Patch< DIM > &fine, const hier::Patch< DIM > &coarse, const hier::BoxList< DIM > &fine_boxes, const hier::IntVector< DIM > &ratio) |
Implementation of SAMRAI::xfer::RefinePatchStrategy interface. | |
| std::string | d_type = "LINEAR" |
| 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 |
| CartCellRobinPhysBdryOp (const CartCellRobinPhysBdryOp &from)=delete | |
| Copy constructor. More... | |
| CartCellRobinPhysBdryOp & | operator= (const CartCellRobinPhysBdryOp &that)=delete |
| Assignment operator. More... | |
| void | fillGhostCellValuesCodim1 (int patch_data_idx, const SAMRAI::tbox::Array< SAMRAI::hier::BoundaryBox< NDIM > > &physical_codim1_boxes, double fill_time, const SAMRAI::hier::IntVector< NDIM > &ghost_width_to_fill, SAMRAI::hier::Patch< NDIM > &patch, bool adjoint_op) |
| Set the boundary conditions along the co-dimension one boundary. More... | |
| void | fillGhostCellValuesCodim2 (int patch_data_idx, const SAMRAI::tbox::Array< SAMRAI::hier::BoundaryBox< NDIM > > &physical_codim2_boxes, const SAMRAI::hier::IntVector< NDIM > &ghost_width_to_fill, const SAMRAI::hier::Patch< NDIM > &patch, bool adjoint_op) |
| Set the boundary conditions along the co-dimension two boundary. More... | |
Partial implementation of SAMRAI::xfer::RefinePatchStrategy | |
| 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 |
| std::set< int > | d_patch_data_indices |
| std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > | d_bc_coefs |
| bool | d_homogeneous_bc = false |
This implementation works similarly to the SAMRAI::solv::CartesianRobinBcHelper class. An important difference between the two classes is that class CartCellRobinPhysBdryOp allows for the specification of boundary conditions for vector-valued quantities.
| IBTK::CartCellRobinPhysBdryOp::CartCellRobinPhysBdryOp | ( | ) |
| IBTK::CartCellRobinPhysBdryOp::CartCellRobinPhysBdryOp | ( | int | patch_data_index, |
| SAMRAI::solv::RobinBcCoefStrategy< NDIM > * | bc_coef, | ||
| bool | homogeneous_bc = false, |
||
| std::string | type = "LINEAR" |
||
| ) |
| patch_data_index | Patch data index requiring ghost cell filling. |
| bc_coef | Robin boundary conditions to use with this class. |
| homogeneous_bc | Whether to employ the homogeneous form of the boundary conditions. |
| type | Type of interpolation to use. Valid options are "LINEAR" or "QUADRATIC". Defaults to "LINEAR". |
| IBTK::CartCellRobinPhysBdryOp::CartCellRobinPhysBdryOp | ( | const std::set< int > & | patch_data_indices, |
| SAMRAI::solv::RobinBcCoefStrategy< NDIM > * | bc_coef, | ||
| bool | homogeneous_bc = false, |
||
| std::string | type = "LINEAR" |
||
| ) |
| patch_data_indices | Collection of patch data indices which require ghost cell filling. |
| bc_coef | Robin boundary conditions to use with this class. |
| homogeneous_bc | Whether to employ the homogeneous form of the boundary conditions. |
| type | Type of interpolation to use. Valid options are "LINEAR" or "QUADRATIC". Defaults to "LINEAR". |
| IBTK::CartCellRobinPhysBdryOp::CartCellRobinPhysBdryOp | ( | const SAMRAI::hier::ComponentSelector & | patch_data_indices, |
| SAMRAI::solv::RobinBcCoefStrategy< NDIM > * | bc_coef, | ||
| bool | homogeneous_bc = false, |
||
| std::string | type = "LINEAR" |
||
| ) |
| patch_data_indices | Collection of patch data indices which require ghost cell filling. |
| bc_coef | Robin boundary conditions to use with this class. |
| homogeneous_bc | Whether to employ the homogeneous form of the boundary conditions. |
| type | Type of interpolation to use. Valid options are "LINEAR" or "QUADRATIC". Defaults to "LINEAR". |
| IBTK::CartCellRobinPhysBdryOp::CartCellRobinPhysBdryOp | ( | int | patch_data_index, |
| const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > & | bc_coefs, | ||
| bool | homogeneous_bc = false, |
||
| std::string | type = "LINEAR" |
||
| ) |
| patch_data_index | Patch data index requiring ghost cell filling. |
| bc_coefs | Robin boundary conditions to use with this class. |
| homogeneous_bc | Whether to employ the homogeneous form of the boundary conditions. |
| type | Type of interpolation to use. Valid options are "LINEAR" or "QUADRATIC". Defaults to "LINEAR". |
| IBTK::CartCellRobinPhysBdryOp::CartCellRobinPhysBdryOp | ( | const std::set< int > & | patch_data_indices, |
| const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > & | bc_coefs, | ||
| bool | homogeneous_bc = false, |
||
| std::string | type = "LINEAR" |
||
| ) |
| patch_data_indices | Collection of patch data indices which require ghost cell filling. |
| bc_coefs | Robin boundary conditions to use with this class. |
| homogeneous_bc | Whether to employ the homogeneous form of the boundary conditions. |
| type | Type of interpolation to use. Valid options are "LINEAR" or "QUADRATIC". Defaults to "LINEAR". |
| IBTK::CartCellRobinPhysBdryOp::CartCellRobinPhysBdryOp | ( | const SAMRAI::hier::ComponentSelector & | patch_data_indices, |
| const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > & | bc_coefs, | ||
| bool | homogeneous_bc = false, |
||
| std::string | type = "LINEAR" |
||
| ) |
| patch_data_indices | Collection of patch data indices which require ghost cell filling. |
| bc_coefs | Robin boundary conditions to use with this class. |
| homogeneous_bc | Whether to employ the homogeneous form of the boundary conditions. |
| type | Type of interpolation to use. Valid options are "LINEAR" or "QUADRATIC". Defaults to "LINEAR". |
| IBTK::CartCellRobinPhysBdryOp::~CartCellRobinPhysBdryOp | ( | ) |
|
privatedelete |
| from | The value to copy to this object. |
|
override |
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.
| patch | Patch on which to fill boundary data. |
| fill_time | Double simulation time for boundary filling. |
| ghost_width_to_fill | Integer vector describing maximum ghost width to fill over all registered scratch components. |
|
override |
Function to return maximum stencil width needed over user-defined data interpolation operations. This is needed to determine the correct interpolation data dependencies.
|
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.
| patch | Patch on which to fill boundary data. |
| fill_time | Double simulation time for boundary filling. |
| ghost_width_to_fill | Integer vector describing maximum ghost width to fill over all registered scratch components. |
Reimplemented from IBTK::RobinPhysBdryPatchStrategy.
|
privatedelete |
| that | The value to assign to this object. |
|
private |
|
private |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
overrideinherited |
Function to perform user-defined preprocess data refine operations. This member function is called before standard refine operations (expressed using concrete subclasses of the SAMRAI::xfer::RefineOperator base class). The preprocess function must refine data from the scratch components of the coarse patch into the scratch components of the fine patch on the specified fine box region. Recall that the scratch components are specified in calls to the registerRefine() function in the SAMRAI::xfer::RefineAlgorithm class.
The default implementation does nothing. This behavior can be overridden by subclasses.
| fine | Fine patch containing destination data. |
| coarse | Coarse patch containing source data. |
| fine_box | Box region on fine patch into which data is refined. |
| ratio | Integer vector containing ratio relating index space between coarse and fine patches. |
|
pure virtualinherited |
Pure virtual function to perform user-defined preprocess data refine operations. This member function is called before standard refine operations (expressed using concrete subclasses of the RefineOperator<DIM> base class). The preprocess function must refine data from the scratch components of the coarse patch into the scratch components of the fine patch on the specified fine box region. Recall that the scratch components are specified in calls to the registerRefine() function in the RefineAlgorithm<DIM> class.
| fine | Fine patch containing destination data. |
| coarse | Coarse patch containing source data. |
| fine_box | hier::Box region on fine patch into which data is refined. |
| ratio | Integer vector containing ratio relating index space between coarse and fine patches. |
|
overrideinherited |
Function to perform user-defined postprocess data refine operations. This member function is called after standard refine operations (expressed using concrete subclasses of the SAMRAI::xfer::RefineOperator base class). The postprocess function must refine data from the scratch components of the coarse patch into the scratch components of the fine patch on the specified fine box region. Recall that the scratch components are specified in calls to the registerRefine() function in the SAMRAI::xfer::RefineAlgorithm class.
The implementation does nothing. This behavior can be overridden by subclasses.
| fine | Fine patch containing destination data. |
| coarse | Coarse patch containing source data. |
| fine_box | Box region on fine patch into which data is refined. |
| ratio | Integer vector containing ratio relating index space between coarse and fine patches. |
|
pure virtualinherited |
Pure virtual function to perform user-defined postprocess data refine operations. This member function is called after standard refine operations (expressed using concrete subclasses of the RefineOperator<DIM> base class). The postprocess function must refine data from the scratch components of the coarse patch into the scratch components of the fine patch on the specified fine box region. Recall that the scratch components are specified in calls to the registerRefine() function in the RefineAlgorithm<DIM> class.
| fine | Fine patch containing destination data. |
| coarse | Coarse patch containing source data. |
| fine_box | hier::Box region on fine patch into which data is refined. |
| ratio | Integer vector containing ratio relating index space between coarse and fine patches. |
|
pure virtualinherited |
Pure virtual function to set data associated with the given list of patch data indices at patch boundaries that intersect the physical domain boundary. The specific boundary conditions are determined by the user. The patch data components set in this routine correspond to the "scratch" components specified in calls to the registerRefine() function in the RefineAlgorithm<DIM> class.
| patch | hier::Patch on which to fill boundary data. |
| fill_time | Double simulation time for boundary filling. |
| ghost_width_to_fill | Integer vector describing maximum ghost width to fill over all registered scratch components. |
|
pure virtualinherited |
Pure virtual function to return maximum stencil width needed over user-defined data interpolation operations. This is needed to determine the correct interpolation data dependencies.
|
virtualinherited |
Virtual function to perform user-defined refine operations. This member function is called before standard refining operations (expressed using concrete subclasses of the RefineOperator<DIM> base class). The preprocess function must refine data from the scratch components of the coarse patch into the scratch components of the fine patch on the specified fine box regions.
Typically, only the pure virtual members of this class are implemented in user-defined subclasses of this base class. This version of the preprocess function operates on an entire box list. By default, this version simply loops over the box list and calls the single-box version, which is a pure virtual function.
| fine | Fine patch containing destination data. |
| coarse | Coarse patch containing source data. |
| fine_boxes | tbox::List of box regions on fine patch into which data is refined. |
| ratio | Integer vector containing ratio relating index space between coarse and fine patches. |
|
virtualinherited |
Virtual function to perform user-defined refine operations. This member function is called after standard refining operations (expressed using concrete subclasses of the RefineOperator<DIM> base class). The postprocess function must refine data from the scratch components of the coarse patch into the scratch components of the fine patch on the specified fine box regions.
Typically, only the pure virtual members of this class are implemented in user-defined subclasses of this base class. This version of the postprocess function operates on an entire box list. By default, this version simply loops over the box list and calls the single-box version, which is a pure virtual function.
| fine | Fine patch containing destination data. |
| coarse | Coarse patch containing source data. |
| fine_boxes | tbox::List of box regions on fine patch into which data is refined. |
| ratio | Integer vector containing ratio relating index space between coarse and fine patches. |
|
private |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
1.8.17