IBAMR  IBAMR version 0.19.
Public Member Functions | List of all members
IBTK::HierarchyMathOps Class Reference

Class HierarchyMathOps provides functionality to perform "composite-grid" mathematical operations on a range of levels in a SAMRAI::hier::PatchHierarchy object. More...

#include <ibtk/HierarchyMathOps.h>

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

Public Member Functions

 HierarchyMathOps (std::string name, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int coarsest_ln=invalid_level_number, int finest_ln=invalid_level_number, std::string coarsen_op_name="CONSERVATIVE_COARSEN")
 Constructor. More...
 
virtual ~HierarchyMathOps ()=default
 Destructor. More...
 
Methods to set the hierarchy and range of levels.
void setPatchHierarchy (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy)
 Reset the patch hierarchy over which operations occur. More...
 
void resetLevels (int coarsest_ln, int finest_ln)
 Reset range of patch levels over which operations occur. More...
 

Methods to get cell weight data.

std::string d_object_name
 
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > d_hierarchy
 
SAMRAI::tbox::Pointer< SAMRAI::geom::CartesianGridGeometry< NDIM > > d_grid_geom
 
int d_coarsest_ln
 
int d_finest_ln
 
SAMRAIDataCache d_cached_eulerian_data
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > d_fc_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > d_nc_s_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > d_nc_v_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > d_sc_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > > d_ec_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::OuteredgeVariable< NDIM, double > > d_oe_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::OuterfaceVariable< NDIM, double > > d_of_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::OuternodeVariable< NDIM, double > > d_on_s_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::OuternodeVariable< NDIM, double > > d_on_v_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::OutersideVariable< NDIM, double > > d_os_var
 
int d_ec_idx = IBTK::invalid_index
 
int d_fc_idx = IBTK::invalid_index
 
int d_nc_s_idx = IBTK::invalid_index
 
int d_nc_v_idx = IBTK::invalid_index
 
int d_oe_idx = IBTK::invalid_index
 
int d_sc_idx = IBTK::invalid_index
 
int d_of_idx = IBTK::invalid_index
 
int d_on_s_idx = IBTK::invalid_index
 
int d_on_v_idx = IBTK::invalid_index
 
int d_os_idx = IBTK::invalid_index
 
std::string d_coarsen_op_name
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenOperator< NDIM > > d_of_coarsen_op
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenOperator< NDIM > > d_on_s_coarsen_op
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenOperator< NDIM > > d_on_v_coarsen_op
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenOperator< NDIM > > d_os_coarsen_op
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenOperator< NDIM > > d_oe_coarsen_op
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenAlgorithm< NDIM > > d_of_coarsen_alg
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenAlgorithm< NDIM > > d_on_s_coarsen_alg
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenAlgorithm< NDIM > > d_on_v_coarsen_alg
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenAlgorithm< NDIM > > d_os_coarsen_alg
 
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenAlgorithm< NDIM > > d_oe_coarsen_alg
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenSchedule< NDIM > > > d_of_coarsen_scheds
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenSchedule< NDIM > > > d_on_s_coarsen_scheds
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenSchedule< NDIM > > > d_on_v_coarsen_scheds
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenSchedule< NDIM > > > d_os_coarsen_scheds
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenSchedule< NDIM > > > d_oe_coarsen_scheds
 
SAMRAI::tbox::Pointer< SAMRAI::math::HierarchyCellDataOpsReal< NDIM, double > > d_hier_cc_data_ops
 
SAMRAI::tbox::Pointer< SAMRAI::math::HierarchyFaceDataOpsReal< NDIM, double > > d_hier_fc_data_ops
 
SAMRAI::tbox::Pointer< SAMRAI::math::HierarchySideDataOpsReal< NDIM, double > > d_hier_sc_data_ops
 
PatchMathOps d_patch_math_ops
 
SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContextd_context
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > d_wgt_cc_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > d_wgt_fc_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > d_wgt_sc_var
 
int d_wgt_cc_idx = IBTK::invalid_index
 
int d_wgt_fc_idx = IBTK::invalid_index
 
int d_wgt_sc_idx = IBTK::invalid_index
 
bool d_using_wgt_cc = false
 
bool d_using_wgt_fc = false
 
bool d_using_wgt_sc = false
 
double d_volume = 0.0
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > getCellWeightVariable () const
 Access the SAMRAI::pdat::CellVariable that is used to store cell weights. These weights are used in computing discrete vector norms. More...
 
int getCellWeightPatchDescriptorIndex ()
 Access the patch descriptor index that corresponds to the SAMRAI::pdat::CellVariable that is used to store cell weights. These weights are used in computing discrete vector norms. More...
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > getFaceWeightVariable () const
 Access the SAMRAI::pdat::FaceVariable that is used to store face weights. These weights are used in computing discrete vector norms. More...
 
int getFaceWeightPatchDescriptorIndex ()
 Access the patch descriptor index that corresponds to the SAMRAI::pdat::FaceVariable that is used to store face weights. These weights are used in computing discrete vector norms. More...
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > getSideWeightVariable () const
 Access the SAMRAI::pdat::SideVariable that is used to store side weights. These weights are used in computing discrete vector norms. More...
 
int getSideWeightPatchDescriptorIndex ()
 Access the patch descriptor index that corresponds to the SAMRAI::pdat::SideVariable that is used to store side weights. These weights are used in computing discrete vector norms. More...
 
double getVolumeOfPhysicalDomain () const
 Returns the volume of the physical domain. More...
 
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > getPatchHierarchy () const
 Get the patch hierarchy object associated with the class. More...
 
void setCoarsenOperatorName (const std::string &coarsen_op_name)
 Set the name of the coarsen operator used for synchronizing the coarse-fine boundary. More...
 
void curl (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Compute the cell-centered curl of a cell-centered vector field using centered differences. More...
 
void curl (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Compute the cell-centered curl of a face-centered vector field using centered differences. More...
 
void curl (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Compute the cell-centered curl of a face-centered vector field using centered differences. More...
 
void curl (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Compute the cell-centered curl of a side-centered vector field using centered differences. More...
 
void curl (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Compute the cell-centered curl of a side-centered vector field using centered differences. More...
 
void curl (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > dst_var, bool dst_cf_bdry_synch, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time, bool src_cf_bdry_synch)
 Compute the node-centered curl of a side-centered vector field using centered differences. More...
 
void curl (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Compute the edge-centered curl of a side-centered vector field using centered differences. More...
 
void rot (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs=std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * >())
 Compute the side-centered rot of a node-centered scalar field using centered differences. More...
 
void rot (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs=std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * >())
 Compute the side-centered rot of a node-centered scalar field using centered differences. More...
 
void rot (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs=std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * >())
 Compute the side-centered rot of a edge-centered vector field using centered differences. More...
 
void rot (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs=std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * >())
 Compute the side-centered rot of a side-centered vector field using centered differences. More...
 
void div (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, double alpha, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src1_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src1_ghost_fill, double src1_ghost_fill_time, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src2_var=nullptr, int dst_depth=0, int src2_depth=0)
 Compute the cell-centered divergence of a cell-centered vector field using centered differences. More...
 
void div (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, double alpha, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > src1_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src1_ghost_fill, double src1_ghost_fill_time, bool src1_cf_bdry_synch, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src2_var=nullptr, int dst_depth=0, int src2_depth=0)
 Compute the cell-centered divergence of a face-centered normal vector field using centered differences. More...
 
void div (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, double alpha, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src1_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src1_ghost_fill, double src1_ghost_fill_time, bool src1_cf_bdry_synch, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src2_var=nullptr, int dst_depth=0, int src2_depth=0)
 Compute the cell-centered divergence of a side-centered normal vector field using centered differences. More...
 
void grad (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, double alpha, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src1_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src1_ghost_fill, double src1_ghost_fill_time, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src2_var=nullptr, int src1_depth=0)
 Compute the gradient of a scalar quantity using centered differences. More...
 
void grad (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > dst_var, bool dst_cf_bdry_synch, double alpha, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src1_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src1_ghost_fill, double src1_ghost_fill_time, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > src2_var=nullptr, int src1_depth=0)
 Compute the gradient of a scalar quantity using centered differences. More...
 
void grad (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > dst_var, bool dst_cf_bdry_synch, double alpha, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src1_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src1_ghost_fill, double src1_ghost_fill_time, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src2_var=nullptr, int src1_depth=0)
 Compute the gradient of a scalar quantity using centered differences. More...
 
void grad (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, int alpha_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > alpha_var, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src1_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src1_ghost_fill, double src1_ghost_fill_time, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src2_var=nullptr, int src1_depth=0)
 Compute the gradient of a scalar quantity using centered differences. More...
 
void grad (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, int alpha_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > alpha_var, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src1_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src1_ghost_fill, double src1_ghost_fill_time, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src2_var=nullptr, int src1_depth=0)
 Compute the gradient of a scalar quantity using centered differences. More...
 
void grad (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > dst_var, bool dst_cf_bdry_synch, int alpha_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > alpha_var, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src1_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src1_ghost_fill, double src1_ghost_fill_time, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > src2_var=nullptr, int src1_depth=0)
 Compute the gradient of a scalar quantity using centered differences. More...
 
void grad (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > dst_var, bool dst_cf_bdry_synch, int alpha_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > alpha_var, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src1_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src1_ghost_fill, double src1_ghost_fill_time, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src2_var=nullptr, int src1_depth=0)
 Compute the gradient of a scalar quantity using centered differences. More...
 
void interp (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time, bool src_cf_bdry_synch)
 Interpolate to a cell-centered vector/tensor field from a face-centered normal vector/tensor field. More...
 
void interp (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time, bool src_cf_bdry_synch)
 Interpolate to a cell-centered vector/tensor field from a side-centered normal vector/tensor field. More...
 
void interp (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > dst_var, bool dst_cf_bdry_synch, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Interpolate to a face-centered normal vector/tensor field from a cell-centered vector/tensor field. More...
 
void interp (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > dst_var, bool dst_cf_bdry_synch, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Interpolate to a side-centered normal vector/tensor field from a cell-centered vector/tensor field. More...
 
void interp (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time, bool src_cf_bdry_synch)
 Interpolate to a cell-centered vector/tensor field from a node-centered vector/tensor field. More...
 
void interp (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time, bool src_cf_bdry_synch)
 Interpolate to a cell-centered vector/tensor field from an edge-centered vector/tensor field. More...
 
void interp (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > dst_var, bool dst_cf_bdry_synch, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Interpolate to a node-centered vector/tensor field from a cell-centered vector/tensor field. More...
 
void interp (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > dst_var, bool dst_cf_bdry_synch, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time, bool src_cf_bdry_synch)
 Interpolate to a node-centered vector/tensor field from a face-centered normal vector/tensor field. More...
 
void interp (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > dst_var, bool dst_cf_bdry_synch, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time, bool src_cf_bdry_synch)
 Interpolate to a node-centered vector/tensor field from a side-centered normal vector/tensor field. More...
 
void interp (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > > dst_var, bool dst_cf_bdry_synch, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Interpolate to a edge-centered vector/tensor field from a cell-centered vector/tensor field. More...
 
void harmonic_interp (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > dst_var, bool dst_cf_bdry_synch, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Harmonically interpolate to a side-centered normal vector/tensor field from a cell-centered vector/tensor field. This should be used when the gradients in the src quantity are large. More...
 
void harmonic_interp (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Harmonically interpolate to a node-centered vector/tensor field from a cell-centered vector/tensor field. This should be used when the gradients in the src quantity are large. More...
 
void harmonic_interp (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Harmonically interpolate to a edge-centered vector/tensor field from a cell-centered vector/tensor field. This should be used when the gradients in the src quantity are large. More...
 
void interp_ghosted (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Interpolate to a node-centered vector/tensor field from a cell-centered vector/tensor field. Interpolate both in the cell and in the ghost region. More...
 
void interp_ghosted (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Interpolate to a edge-centered vector/tensor field from a cell-centered vector/tensor field. More...
 
void harmonic_interp_ghosted (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Harmonically interpolate to a node-centered vector/tensor field from a cell-centered vector/tensor field. This should be used when the gradients in the src quantity are large. More...
 
void harmonic_interp_ghosted (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Harmonically interpolate to a edge-centered vector/tensor field from a cell-centered vector/tensor field. This should be used when the gradients in the src quantity are large. More...
 
void laplace (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, const SAMRAI::solv::PoissonSpecifications &poisson_spec, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src1_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src1_ghost_fill, double src1_ghost_fill_time, double gamma=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src2_var=nullptr, int dst_depth=0, int src1_depth=0, int src2_depth=0)
 Compute the Laplacian of a scalar quantity using centered differences. More...
 
void laplace (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > dst_var, const SAMRAI::solv::PoissonSpecifications &poisson_spec, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src1_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src1_ghost_fill, double src1_ghost_fill_time, double gamma=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src2_var=nullptr)
 Compute the Laplacian of a scalar quantity using centered differences. More...
 
void vc_laplace (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > dst_var, double alpha, double beta, int coef1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > coef1_var, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src1_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src1_ghost_fill, double src1_ghost_fill_time, IBTK::VCInterpType coef1_interp_type=VC_HARMONIC_INTERP, int coef2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > coef2_var=nullptr, double gamma=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src2_var=nullptr)
 Compute dst = alpha div coef1 ((grad src1) + (grad src1)^T) + beta coef2 src1 + gamma src2, the variable coefficient generalized Laplacian of src1. More...
 
void vc_laplace (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > dst_var, double alpha, double beta, int coef1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > > coef1_var, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src1_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src1_ghost_fill, double src1_ghost_fill_time, IBTK::VCInterpType coef1_interp_type=VC_HARMONIC_INTERP, int coef2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > coef2_var=nullptr, double gamma=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src2_var=nullptr)
 Compute dst = alpha div coef1 ((grad src1) + (grad src1)^T) + beta coef2 src1 + gamma src2, the variable coefficient generalized Laplacian of src1. More...
 
void pointwiseMultiply (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, double alpha, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src1_var, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src2_var=nullptr, int dst_depth=0, int src1_depth=0, int src2_depth=0)
 Compute dst = alpha src1 + beta src2, pointwise. More...
 
void pointwiseMultiply (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, int alpha_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > alpha_var, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src1_var, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src2_var=nullptr, int dst_depth=0, int src1_depth=0, int src2_depth=0, int alpha_depth=0)
 Compute dst = alpha src1 + beta src2, pointwise. More...
 
void pointwiseMultiply (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, int alpha_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > alpha_var, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src1_var, int beta_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > beta_var=nullptr, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src2_var=nullptr, int dst_depth=0, int src1_depth=0, int src2_depth=0, int alpha_depth=0, int beta_depth=0)
 Compute dst = alpha src1 + beta src2, pointwise. More...
 
void pointwiseMultiply (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > dst_var, double alpha, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > src1_var, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > src2_var=nullptr, int dst_depth=0, int src1_depth=0, int src2_depth=0)
 Compute dst = alpha src1 + beta src2, pointwise. More...
 
void pointwiseMultiply (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > dst_var, int alpha_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > alpha_var, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > src1_var, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > src2_var=nullptr, int dst_depth=0, int src1_depth=0, int src2_depth=0, int alpha_depth=0)
 Compute dst = alpha src1 + beta src2, pointwise. More...
 
void pointwiseMultiply (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > dst_var, int alpha_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > alpha_var, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > src1_var, int beta_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > beta_var=nullptr, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > src2_var=nullptr, int dst_depth=0, int src1_depth=0, int src2_depth=0, int alpha_depth=0, int beta_depth=0)
 Compute dst = alpha src1 + beta src2, pointwise. More...
 
void pointwiseMultiply (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > dst_var, double alpha, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > src1_var, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > src2_var=nullptr, int dst_depth=0, int src1_depth=0, int src2_depth=0)
 Compute dst = alpha src1 + beta src2, pointwise. More...
 
void pointwiseMultiply (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > dst_var, int alpha_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > alpha_var, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > src1_var, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > src2_var=nullptr, int dst_depth=0, int src1_depth=0, int src2_depth=0, int alpha_depth=0)
 Compute dst = alpha src1 + beta src2, pointwise. More...
 
void pointwiseMultiply (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > dst_var, int alpha_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > alpha_var, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > src1_var, int beta_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > beta_var=nullptr, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > src2_var=nullptr, int dst_depth=0, int src1_depth=0, int src2_depth=0, int alpha_depth=0, int beta_depth=0)
 Compute dst = alpha src1 + beta src2, pointwise. More...
 
void pointwiseMultiply (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > dst_var, double alpha, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src1_var, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src2_var=nullptr, int dst_depth=0, int src1_depth=0, int src2_depth=0)
 Compute dst = alpha src1 + beta src2, pointwise. More...
 
void pointwiseMultiply (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > dst_var, int alpha_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > alpha_var, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src1_var, double beta=0.0, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src2_var=nullptr, int dst_depth=0, int src1_depth=0, int src2_depth=0, int alpha_depth=0)
 Compute dst = alpha src1 + beta src2, pointwise. More...
 
void pointwiseMultiply (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > dst_var, int alpha_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > alpha_var, int src1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src1_var, int beta_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > beta_var=nullptr, int src2_idx=invalid_index, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src2_var=nullptr, int dst_depth=0, int src1_depth=0, int src2_depth=0, int alpha_depth=0, int beta_depth=0)
 Compute dst = alpha src1 + beta src2, pointwise. More...
 
void pointwiseL1Norm (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src_var)
 Compute dst = |src|_1, pointwise. More...
 
void pointwiseL2Norm (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src_var)
 Compute dst = |src|_2, pointwise. More...
 
void pointwiseMaxNorm (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > src_var)
 Compute dst = |src|_oo, pointwise. More...
 
void pointwiseL1Norm (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > src_var)
 Compute dst = |src|_1, pointwise. More...
 
void pointwiseL2Norm (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > src_var)
 Compute dst = |src|_2, pointwise. More...
 
void pointwiseMaxNorm (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > src_var)
 Compute dst = |src|_oo, pointwise. More...
 
void strain_rate (int dst1_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst1_var, int dst2_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst2_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Compute the cell-centered strain rate of a side-centered vector field using centered differences. More...
 
void strain_rate (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > dst_var, int src_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > src_var, SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation > src_ghost_fill, double src_ghost_fill_time)
 Compute the cell-centered strain rate of a side-centered vector field using centered differences. More...
 
void enforceHangingNodeConstraints (int dst_idx, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > > dst_var)
 Enforce hanging node constraints in the sense of making the resulting bilinear or trilinear interpolation of nodal data continuous across the coarse-fine interface. More...
 
 HierarchyMathOps ()=delete
 Default constructor. More...
 
 HierarchyMathOps (const HierarchyMathOps &from)=delete
 Copy constructor. More...
 
HierarchyMathOpsoperator= (const HierarchyMathOps &that)=delete
 Assignment operator. More...
 
void resetCoarsenOperators ()
 Reset the coarsen operators. More...
 
void resetRefineOperators ()
 Reset the refine operators. More...
 
void xeqScheduleOuterfaceRestriction (int dst_idx, int src_idx, int dst_ln)
 Execute schedule for restricting Outerface data to the specified level from the next finer level. More...
 
void xeqScheduleOuternodeRestriction (int dst_idx, int src_idx, int dst_ln)
 Execute schedule for restricting Outernode data to the specified level from the next finer level. More...
 
void xeqScheduleOutersideRestriction (int dst_idx, int src_idx, int dst_ln)
 Execute schedule for restricting Outerside data to the specified level from the next finer level. More...
 
void xeqScheduleOuteredgeRestriction (int dst_idx, int src_idx, int dst_ln)
 Execute schedule for restricting Outeredge data to the specified level from the next finer level. More...
 
void resetCellWeights (int coarsest_ln, int finest_ln)
 Reset cell-centered weights, allocating patch data if needed. More...
 
void resetFaceWeights (int coarsest_ln, int finest_ln)
 Reset face-centered weights, allocating patch data if needed. More...
 
void resetSideWeights (int coarsest_ln, int finest_ln)
 Reset side-centered weights, allocating patch data if needed. More...
 

Detailed Description

For nodal destination data, if the provided variable has fineBoundaryRepresentsVariable() == false and synch_dst_cf_interface == true then each routine will call HierarchyMathOps::enforceHangingNodeConstraints() to achieve a conforming bi/trilinear discretization.

Note
All specified variable descriptor indices must refer to SAMRAI::hier::Variable / SAMRAI::hier::VariableContext pairs that have been registered with the SAMRAI::hier::VariableDatabase.

Constructor & Destructor Documentation

◆ HierarchyMathOps() [1/3]

IBTK::HierarchyMathOps::HierarchyMathOps ( std::string  name,
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
int  coarsest_ln = invalid_level_number,
int  finest_ln = invalid_level_number,
std::string  coarsen_op_name = "CONSERVATIVE_COARSEN" 
)

Does nothing interesting.

◆ ~HierarchyMathOps()

virtual IBTK::HierarchyMathOps::~HierarchyMathOps ( )
virtualdefault

◆ HierarchyMathOps() [2/3]

IBTK::HierarchyMathOps::HierarchyMathOps ( )
privatedelete
Note
This constructor is not implemented and should not be used.

◆ HierarchyMathOps() [3/3]

IBTK::HierarchyMathOps::HierarchyMathOps ( const HierarchyMathOps from)
privatedelete
Note
This constructor is not implemented and should not be used.
Parameters
fromThe value to copy to this object.

Member Function Documentation

◆ setPatchHierarchy()

void IBTK::HierarchyMathOps::setPatchHierarchy ( SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy)

◆ resetLevels()

void IBTK::HierarchyMathOps::resetLevels ( int  coarsest_ln,
int  finest_ln 
)

The specified levels must exist in the hierarchy or an assertion will result.

◆ getCellWeightVariable()

SAMRAI::tbox::Pointer<SAMRAI::pdat::CellVariable<NDIM, double> > IBTK::HierarchyMathOps::getCellWeightVariable ( ) const

If a cell is not refined in the hierarchy, its weight is set to its volume. If a cell is refined, its weight is set to zero.

◆ getCellWeightPatchDescriptorIndex()

int IBTK::HierarchyMathOps::getCellWeightPatchDescriptorIndex ( )

If a cell is not refined in the hierarchy, its weight is set to its volume. If a cell is refined, its weight is set to zero.

◆ getFaceWeightVariable()

SAMRAI::tbox::Pointer<SAMRAI::pdat::FaceVariable<NDIM, double> > IBTK::HierarchyMathOps::getFaceWeightVariable ( ) const

If a face is not refined in the hierarchy, its weight is set to its volume. If a face is refined, its weight is set to zero.

◆ getFaceWeightPatchDescriptorIndex()

int IBTK::HierarchyMathOps::getFaceWeightPatchDescriptorIndex ( )

If a face is not refined in the hierarchy, its weight is set to its volume. If a face is refined, its weight is set to zero.

◆ getSideWeightVariable()

SAMRAI::tbox::Pointer<SAMRAI::pdat::SideVariable<NDIM, double> > IBTK::HierarchyMathOps::getSideWeightVariable ( ) const

If a side is not refined in the hierarchy, its weight is set to its volume. If a side is refined, its weight is set to zero.

◆ getSideWeightPatchDescriptorIndex()

int IBTK::HierarchyMathOps::getSideWeightPatchDescriptorIndex ( )

If a side is not refined in the hierarchy, its weight is set to its volume. If a side is refined, its weight is set to zero.

◆ getVolumeOfPhysicalDomain()

double IBTK::HierarchyMathOps::getVolumeOfPhysicalDomain ( ) const

◆ getPatchHierarchy()

SAMRAI::tbox::Pointer<SAMRAI::hier::PatchHierarchy<NDIM> > IBTK::HierarchyMathOps::getPatchHierarchy ( ) const

◆ setCoarsenOperatorName()

void IBTK::HierarchyMathOps::setCoarsenOperatorName ( const std::string &  coarsen_op_name)

◆ curl() [1/7]

void IBTK::HierarchyMathOps::curl ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Sets dst = curl src.

Compute the curl of a vector field using centered differences.

See also
setPatchHierarchy
resetLevels

◆ curl() [2/7]

void IBTK::HierarchyMathOps::curl ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Sets dst = curl src.

Compute the curl of a vector field using centered differences.

See also
setPatchHierarchy
resetLevels

◆ curl() [3/7]

void IBTK::HierarchyMathOps::curl ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Sets dst = curl src.

Compute the curl of a vector field using centered differences.

See also
setPatchHierarchy
resetLevels

◆ curl() [4/7]

void IBTK::HierarchyMathOps::curl ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Sets dst = curl src.

Compute the curl of a vector field using centered differences.

See also
setPatchHierarchy
resetLevels

◆ curl() [5/7]

void IBTK::HierarchyMathOps::curl ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Sets dst = curl src.

Compute the curl of a vector field using centered differences.

See also
setPatchHierarchy
resetLevels

◆ curl() [6/7]

void IBTK::HierarchyMathOps::curl ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  dst_var,
bool  dst_cf_bdry_synch,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time,
bool  src_cf_bdry_synch 
)

Sets dst = curl src.

Compute the curl of a vector field using centered differences.

See also
setPatchHierarchy
resetLevels

◆ curl() [7/7]

void IBTK::HierarchyMathOps::curl ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Sets dst = curl src.

Compute the curl of a vector field using centered differences.

See also
setPatchHierarchy
resetLevels

◆ rot() [1/4]

void IBTK::HierarchyMathOps::rot ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time,
const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &  bc_coefs = std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * >() 
)

Sets dst = rot src.

Compute the rot of a 2d scalar field defined on nodes using centered differences.

See also
setPatchHierarchy
resetLevels

◆ rot() [2/4]

void IBTK::HierarchyMathOps::rot ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time,
const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &  bc_coefs = std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * >() 
)

Sets dst = rot src.

Compute the rot of a 2d scalar field defined on nodes using centered differences.

See also
setPatchHierarchy
resetLevels

◆ rot() [3/4]

void IBTK::HierarchyMathOps::rot ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time,
const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &  bc_coefs = std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * >() 
)

Sets dst = rot src.

Compute the rot of a 3d vector field defined on edges using centered differences.

See also
setPatchHierarchy
resetLevels

◆ rot() [4/4]

void IBTK::HierarchyMathOps::rot ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time,
const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &  bc_coefs = std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * >() 
)

Sets dst = rot src.

Compute the rot of a 3d vector field defined on sides using centered differences.

See also
setPatchHierarchy
resetLevels

◆ div() [1/3]

void IBTK::HierarchyMathOps::div ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
double  alpha,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src1_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src1_ghost_fill,
double  src1_ghost_fill_time,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src2_var = nullptr,
int  dst_depth = 0,
int  src2_depth = 0 
)

Sets dst = alpha div src1 + beta src2.

Compute the divergence of a vector field using centered differences.

See also
setPatchHierarchy
resetLevels

◆ div() [2/3]

void IBTK::HierarchyMathOps::div ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
double  alpha,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  src1_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src1_ghost_fill,
double  src1_ghost_fill_time,
bool  src1_cf_bdry_synch,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src2_var = nullptr,
int  dst_depth = 0,
int  src2_depth = 0 
)

Sets dst = alpha div src1 + beta src2.

Compute the divergence of a vector field using centered differences. When specified, coarse values on each coarse-fine interface are synchronized prior to performing the differencing.

See also
setPatchHierarchy
resetLevels

◆ div() [3/3]

void IBTK::HierarchyMathOps::div ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
double  alpha,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src1_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src1_ghost_fill,
double  src1_ghost_fill_time,
bool  src1_cf_bdry_synch,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src2_var = nullptr,
int  dst_depth = 0,
int  src2_depth = 0 
)

Sets dst = alpha div src1 + beta src2.

Compute the divergence of a vector field using centered differences. When specified, coarse values on each coarse-fine interface are synchronized prior to performing the differencing.

See also
setPatchHierarchy
resetLevels

◆ grad() [1/7]

void IBTK::HierarchyMathOps::grad ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
double  alpha,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src1_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src1_ghost_fill,
double  src1_ghost_fill_time,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src2_var = nullptr,
int  src1_depth = 0 
)

Sets dst = alpha grad src1 + beta src2.

Compute the gradient of a scalar quantity using centered differences.

See also
setPatchHierarchy
resetLevels

◆ grad() [2/7]

void IBTK::HierarchyMathOps::grad ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  dst_var,
bool  dst_cf_bdry_synch,
double  alpha,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src1_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src1_ghost_fill,
double  src1_ghost_fill_time,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  src2_var = nullptr,
int  src1_depth = 0 
)

Sets dst = alpha grad src1 + beta src2.

Compute the gradient of a scalar quantity using centered differences. When specified, coarse values on each coarse-fine interface are synchronized after performing the differencing.

See also
setPatchHierarchy
resetLevels

◆ grad() [3/7]

void IBTK::HierarchyMathOps::grad ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  dst_var,
bool  dst_cf_bdry_synch,
double  alpha,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src1_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src1_ghost_fill,
double  src1_ghost_fill_time,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src2_var = nullptr,
int  src1_depth = 0 
)

Sets dst = alpha grad src1 + beta src2.

Compute the gradient of a scalar quantity using centered differences. When specified, coarse values on each coarse-fine interface are synchronized after performing the differencing.

See also
setPatchHierarchy
resetLevels

◆ grad() [4/7]

void IBTK::HierarchyMathOps::grad ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
int  alpha_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  alpha_var,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src1_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src1_ghost_fill,
double  src1_ghost_fill_time,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src2_var = nullptr,
int  src1_depth = 0 
)

Sets dst = alpha grad src1 + beta src2.

Compute the gradient of a scalar quantity using centered differences.

See also
setPatchHierarchy
resetLevels

◆ grad() [5/7]

void IBTK::HierarchyMathOps::grad ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
int  alpha_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  alpha_var,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src1_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src1_ghost_fill,
double  src1_ghost_fill_time,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src2_var = nullptr,
int  src1_depth = 0 
)

Sets dst = alpha grad src1 + beta src2.

Compute the gradient of a scalar quantity using centered differences.

See also
setPatchHierarchy
resetLevels

◆ grad() [6/7]

void IBTK::HierarchyMathOps::grad ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  dst_var,
bool  dst_cf_bdry_synch,
int  alpha_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  alpha_var,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src1_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src1_ghost_fill,
double  src1_ghost_fill_time,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  src2_var = nullptr,
int  src1_depth = 0 
)

Sets dst = alpha grad src1 + beta src2.

Compute the gradient of a scalar quantity using centered differences. When specified, coarse values on each coarse-fine interface are synchronized after performing the differencing.

Note
Homogeneous Neumann boundary conditions are explicitly enforced in the case of non-grid aligned anisotropy.
See also
setPatchHierarchy
resetLevels

◆ grad() [7/7]

void IBTK::HierarchyMathOps::grad ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  dst_var,
bool  dst_cf_bdry_synch,
int  alpha_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  alpha_var,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src1_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src1_ghost_fill,
double  src1_ghost_fill_time,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src2_var = nullptr,
int  src1_depth = 0 
)

Sets dst = alpha grad src1 + beta src2.

Compute the gradient of a scalar quantity using centered differences. When specified, coarse values on each coarse-fine interface are synchronized after performing the differencing.

Note
Homogeneous Neumann boundary conditions are explicitly enforced in the case of non-grid aligned anisotropy.
See also
setPatchHierarchy
resetLevels

◆ interp() [1/10]

void IBTK::HierarchyMathOps::interp ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time,
bool  src_cf_bdry_synch 
)

Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging. When specified, coarse values on each coarse-fine interface are synchronized prior to performing the interpolation.

See also
setPatchHierarchy
resetLevels

◆ interp() [2/10]

void IBTK::HierarchyMathOps::interp ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time,
bool  src_cf_bdry_synch 
)

Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging. When specified, coarse values on each coarse-fine interface are synchronized prior to performing the interpolation.

See also
setPatchHierarchy
resetLevels

◆ interp() [3/10]

void IBTK::HierarchyMathOps::interp ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  dst_var,
bool  dst_cf_bdry_synch,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging. When the interpolation occurs over over multiple levels of the hierarchy, second order interpolation is used at the coarse-fine interface to correct fine values along the interface. When specified, coarse values on each coarse-fine interface are synchronized after performing the interpolation.

See also
setPatchHierarchy
resetLevels

◆ interp() [4/10]

void IBTK::HierarchyMathOps::interp ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  dst_var,
bool  dst_cf_bdry_synch,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging. When the interpolation occurs over multiple levels of the hierarchy, second order interpolation is used at the coarse-fine interface to correct fine values along the interface. When specified, coarse values on each coarse-fine interface are synchronized after performing the interpolation.

See also
setPatchHierarchy
resetLevels

◆ interp() [5/10]

void IBTK::HierarchyMathOps::interp ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time,
bool  src_cf_bdry_synch 
)

Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging.

See also
setPatchHierarchy
resetLevels

◆ interp() [6/10]

void IBTK::HierarchyMathOps::interp ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time,
bool  src_cf_bdry_synch 
)

Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging.

See also
setPatchHierarchy
resetLevels

◆ interp() [7/10]

void IBTK::HierarchyMathOps::interp ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  dst_var,
bool  dst_cf_bdry_synch,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging.

See also
setPatchHierarchy
resetLevels

◆ interp() [8/10]

void IBTK::HierarchyMathOps::interp ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  dst_var,
bool  dst_cf_bdry_synch,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time,
bool  src_cf_bdry_synch 
)

Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging. When specified, coarse values on each coarse-fine interface are synchronized prior to performing the interpolation.

See also
setPatchHierarchy
resetLevels

◆ interp() [9/10]

void IBTK::HierarchyMathOps::interp ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  dst_var,
bool  dst_cf_bdry_synch,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time,
bool  src_cf_bdry_synch 
)

Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging. When specified, coarse values on each coarse-fine interface are synchronized prior to performing the interpolation.

See also
setPatchHierarchy
resetLevels

◆ interp() [10/10]

void IBTK::HierarchyMathOps::interp ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > >  dst_var,
bool  dst_cf_bdry_synch,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging. When specified, the ghost cells of the edge centered variable are computed as averages of the cell centered variable

See also
setPatchHierarchy
resetLevels

◆ harmonic_interp() [1/3]

void IBTK::HierarchyMathOps::harmonic_interp ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  dst_var,
bool  dst_cf_bdry_synch,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Interpolate a vector or tensor field from one variable type to another using (second-order accurate) harmonic averaging. When the interpolation occurs over multiple levels of the hierarchy, second order interpolation is used at the coarse-fine interface to correct fine values along the interface. When specified, coarse values on each coarse-fine interface are synchronized after performing the interpolation.

See also
setPatchHierarchy
resetLevels

◆ harmonic_interp() [2/3]

void IBTK::HierarchyMathOps::harmonic_interp ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging. When specified, the ghost cells of the node centered variable are computed as averages of the cell centered variable

See also
setPatchHierarchy
resetLevels

◆ harmonic_interp() [3/3]

void IBTK::HierarchyMathOps::harmonic_interp ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging. When specified, the ghost cells of the edge centered variable are computed as averages of the cell centered variable

See also
setPatchHierarchy
resetLevels

◆ interp_ghosted() [1/2]

void IBTK::HierarchyMathOps::interp_ghosted ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging.

Warning
This function exists for backwards compatibility purposes. New code should handle ghost regions in the conventional way (i.e., that ghost data is read-only).
See also
setPatchHierarchy
resetLevels

◆ interp_ghosted() [2/2]

void IBTK::HierarchyMathOps::interp_ghosted ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging. When specified, the ghost cells of the edge centered variable are computed as averages of the cell centered variable

Warning
This function exists for backwards compatibility purposes. New code should handle ghost regions in the conventional way (i.e., that ghost data is read-only).
See also
setPatchHierarchy
resetLevels

◆ harmonic_interp_ghosted() [1/2]

void IBTK::HierarchyMathOps::harmonic_interp_ghosted ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging. When specified, the ghost cells of the node centered variable are computed as averages of the cell centered variable

Warning
This function exists for backwards compatibility purposes. New code should handle ghost regions in the conventional way (i.e., that ghost data is read-only).
See also
setPatchHierarchy
resetLevels

◆ harmonic_interp_ghosted() [2/2]

void IBTK::HierarchyMathOps::harmonic_interp_ghosted ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging. When specified, the ghost cells of the edge centered variable are computed as averages of the cell centered variable

Warning
This function exists for backwards compatibility purposes. New code should handle ghost regions in the conventional way (i.e., that ghost data is read-only).
See also
setPatchHierarchy
resetLevels

◆ laplace() [1/2]

void IBTK::HierarchyMathOps::laplace ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
const SAMRAI::solv::PoissonSpecifications poisson_spec,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src1_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src1_ghost_fill,
double  src1_ghost_fill_time,
double  gamma = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src2_var = nullptr,
int  dst_depth = 0,
int  src1_depth = 0,
int  src2_depth = 0 
)

Sets dst = C src1 + div D grad src1 + gamma src2.

Compute the Laplacian of a scalar quantity using centered differences, where C and D are specified by the SAMRAI::solv::PoissonSpecifications object poisson_spec. When the operation is being performed on multiple levels of the hierarchy, the appropriately synchronized gradient and divergence operators are employed to obtain a consistent discretization of the Laplace operator.

See also
setPatchHierarchy
resetLevels

◆ laplace() [2/2]

void IBTK::HierarchyMathOps::laplace ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  dst_var,
const SAMRAI::solv::PoissonSpecifications poisson_spec,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src1_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src1_ghost_fill,
double  src1_ghost_fill_time,
double  gamma = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src2_var = nullptr 
)

Sets dst = C src1 + div D grad src1 + gamma src2.

Compute the Laplacian of a scalar quantity using centered differences, where C and D are specified by the SAMRAI::solv::PoissonSpecifications object poisson_spec.

Note
The present implementation of this operator requires that damping factor C and diffusivity D be spatially constant and scalar-valued.
See also
setPatchHierarchy
resetLevels

◆ vc_laplace() [1/2]

void IBTK::HierarchyMathOps::vc_laplace ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  dst_var,
double  alpha,
double  beta,
int  coef1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  coef1_var,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src1_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src1_ghost_fill,
double  src1_ghost_fill_time,
IBTK::VCInterpType  coef1_interp_type = VC_HARMONIC_INTERP,
int  coef2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  coef2_var = nullptr,
double  gamma = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src2_var = nullptr 
)
Note
This routine is only appropriate for NDIM == 2 and uses node centered coef1. Interally, coef1 will be interpolated onto cell centers when needed. Harmonic interpolation is used by default, but coef1_interp_type = VC_AVERAGE_INTERP will apply arithmetic averaging from nodes to cells
See also
setPatchHierarchy
resetLevels

◆ vc_laplace() [2/2]

void IBTK::HierarchyMathOps::vc_laplace ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  dst_var,
double  alpha,
double  beta,
int  coef1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > >  coef1_var,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src1_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src1_ghost_fill,
double  src1_ghost_fill_time,
IBTK::VCInterpType  coef1_interp_type = VC_HARMONIC_INTERP,
int  coef2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  coef2_var = nullptr,
double  gamma = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src2_var = nullptr 
)
Note
This routine is only appropriate for NDIM == 3 and uses edge centered coef1. Interally, coef1 will be interpolated onto cell centers when needed. Harmonic interpolation is used by default, but coef1_interp_type = VC_AVERAGE_INTERP will apply arithmetic averaging from edges to cells
See also
setPatchHierarchy
resetLevels

◆ pointwiseMultiply() [1/12]

void IBTK::HierarchyMathOps::pointwiseMultiply ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
double  alpha,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src1_var,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src2_var = nullptr,
int  dst_depth = 0,
int  src1_depth = 0,
int  src2_depth = 0 
)

◆ pointwiseMultiply() [2/12]

void IBTK::HierarchyMathOps::pointwiseMultiply ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
int  alpha_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  alpha_var,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src1_var,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src2_var = nullptr,
int  dst_depth = 0,
int  src1_depth = 0,
int  src2_depth = 0,
int  alpha_depth = 0 
)

◆ pointwiseMultiply() [3/12]

void IBTK::HierarchyMathOps::pointwiseMultiply ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
int  alpha_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  alpha_var,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src1_var,
int  beta_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  beta_var = nullptr,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src2_var = nullptr,
int  dst_depth = 0,
int  src1_depth = 0,
int  src2_depth = 0,
int  alpha_depth = 0,
int  beta_depth = 0 
)

◆ pointwiseMultiply() [4/12]

void IBTK::HierarchyMathOps::pointwiseMultiply ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  dst_var,
double  alpha,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  src1_var,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  src2_var = nullptr,
int  dst_depth = 0,
int  src1_depth = 0,
int  src2_depth = 0 
)

◆ pointwiseMultiply() [5/12]

void IBTK::HierarchyMathOps::pointwiseMultiply ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  dst_var,
int  alpha_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  alpha_var,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  src1_var,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  src2_var = nullptr,
int  dst_depth = 0,
int  src1_depth = 0,
int  src2_depth = 0,
int  alpha_depth = 0 
)

◆ pointwiseMultiply() [6/12]

void IBTK::HierarchyMathOps::pointwiseMultiply ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  dst_var,
int  alpha_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  alpha_var,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  src1_var,
int  beta_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  beta_var = nullptr,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  src2_var = nullptr,
int  dst_depth = 0,
int  src1_depth = 0,
int  src2_depth = 0,
int  alpha_depth = 0,
int  beta_depth = 0 
)

◆ pointwiseMultiply() [7/12]

void IBTK::HierarchyMathOps::pointwiseMultiply ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  dst_var,
double  alpha,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  src1_var,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  src2_var = nullptr,
int  dst_depth = 0,
int  src1_depth = 0,
int  src2_depth = 0 
)

◆ pointwiseMultiply() [8/12]

void IBTK::HierarchyMathOps::pointwiseMultiply ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  dst_var,
int  alpha_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  alpha_var,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  src1_var,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  src2_var = nullptr,
int  dst_depth = 0,
int  src1_depth = 0,
int  src2_depth = 0,
int  alpha_depth = 0 
)

◆ pointwiseMultiply() [9/12]

void IBTK::HierarchyMathOps::pointwiseMultiply ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  dst_var,
int  alpha_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  alpha_var,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  src1_var,
int  beta_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  beta_var = nullptr,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  src2_var = nullptr,
int  dst_depth = 0,
int  src1_depth = 0,
int  src2_depth = 0,
int  alpha_depth = 0,
int  beta_depth = 0 
)

◆ pointwiseMultiply() [10/12]

void IBTK::HierarchyMathOps::pointwiseMultiply ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  dst_var,
double  alpha,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src1_var,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src2_var = nullptr,
int  dst_depth = 0,
int  src1_depth = 0,
int  src2_depth = 0 
)

◆ pointwiseMultiply() [11/12]

void IBTK::HierarchyMathOps::pointwiseMultiply ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  dst_var,
int  alpha_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  alpha_var,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src1_var,
double  beta = 0.0,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src2_var = nullptr,
int  dst_depth = 0,
int  src1_depth = 0,
int  src2_depth = 0,
int  alpha_depth = 0 
)

◆ pointwiseMultiply() [12/12]

void IBTK::HierarchyMathOps::pointwiseMultiply ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  dst_var,
int  alpha_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  alpha_var,
int  src1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src1_var,
int  beta_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  beta_var = nullptr,
int  src2_idx = invalid_index,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src2_var = nullptr,
int  dst_depth = 0,
int  src1_depth = 0,
int  src2_depth = 0,
int  alpha_depth = 0,
int  beta_depth = 0 
)

◆ pointwiseL1Norm() [1/2]

void IBTK::HierarchyMathOps::pointwiseL1Norm ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src_var 
)

◆ pointwiseL2Norm() [1/2]

void IBTK::HierarchyMathOps::pointwiseL2Norm ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src_var 
)

◆ pointwiseMaxNorm() [1/2]

void IBTK::HierarchyMathOps::pointwiseMaxNorm ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  src_var 
)

◆ pointwiseL1Norm() [2/2]

void IBTK::HierarchyMathOps::pointwiseL1Norm ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  src_var 
)

◆ pointwiseL2Norm() [2/2]

void IBTK::HierarchyMathOps::pointwiseL2Norm ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  src_var 
)

◆ pointwiseMaxNorm() [2/2]

void IBTK::HierarchyMathOps::pointwiseMaxNorm ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  src_var 
)

◆ strain_rate() [1/2]

void IBTK::HierarchyMathOps::strain_rate ( int  dst1_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst1_var,
int  dst2_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst2_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Sets dst1 = strain src (diagonal components). Sets dst2 = strain src (off diagonal components).

Compute the strain of a vector field using centered differences.

See also
setPatchHierarchy
resetLevels

◆ strain_rate() [2/2]

void IBTK::HierarchyMathOps::strain_rate ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  dst_var,
int  src_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  src_var,
SAMRAI::tbox::Pointer< HierarchyGhostCellInterpolation src_ghost_fill,
double  src_ghost_fill_time 
)

Sets dst = strain src.

Compute the strain of a vector field using centered differences.

See also
setPatchHierarchy
resetLevels

◆ enforceHangingNodeConstraints()

void IBTK::HierarchyMathOps::enforceHangingNodeConstraints ( int  dst_idx,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeVariable< NDIM, double > >  dst_var 
)
Warning

◆ operator=()

HierarchyMathOps& IBTK::HierarchyMathOps::operator= ( const HierarchyMathOps that)
privatedelete
Note
This operator is not implemented and should not be used.
Parameters
thatThe value to assign to this object.
Returns
A reference to this object.

◆ resetCoarsenOperators()

void IBTK::HierarchyMathOps::resetCoarsenOperators ( )
private

◆ resetRefineOperators()

void IBTK::HierarchyMathOps::resetRefineOperators ( )
private

◆ xeqScheduleOuterfaceRestriction()

void IBTK::HierarchyMathOps::xeqScheduleOuterfaceRestriction ( int  dst_idx,
int  src_idx,
int  dst_ln 
)
private

◆ xeqScheduleOuternodeRestriction()

void IBTK::HierarchyMathOps::xeqScheduleOuternodeRestriction ( int  dst_idx,
int  src_idx,
int  dst_ln 
)
private

◆ xeqScheduleOutersideRestriction()

void IBTK::HierarchyMathOps::xeqScheduleOutersideRestriction ( int  dst_idx,
int  src_idx,
int  dst_ln 
)
private

◆ xeqScheduleOuteredgeRestriction()

void IBTK::HierarchyMathOps::xeqScheduleOuteredgeRestriction ( int  dst_idx,
int  src_idx,
int  dst_ln 
)
private

◆ resetCellWeights()

void IBTK::HierarchyMathOps::resetCellWeights ( int  coarsest_ln,
int  finest_ln 
)
private

◆ resetFaceWeights()

void IBTK::HierarchyMathOps::resetFaceWeights ( int  coarsest_ln,
int  finest_ln 
)
private

◆ resetSideWeights()

void IBTK::HierarchyMathOps::resetSideWeights ( int  coarsest_ln,
int  finest_ln 
)
private

Member Data Documentation

◆ d_object_name

std::string IBTK::HierarchyMathOps::d_object_name
private

◆ d_hierarchy

SAMRAI::tbox::Pointer<SAMRAI::hier::PatchHierarchy<NDIM> > IBTK::HierarchyMathOps::d_hierarchy
private

◆ d_grid_geom

SAMRAI::tbox::Pointer<SAMRAI::geom::CartesianGridGeometry<NDIM> > IBTK::HierarchyMathOps::d_grid_geom
private

◆ d_coarsest_ln

int IBTK::HierarchyMathOps::d_coarsest_ln
private

◆ d_finest_ln

int IBTK::HierarchyMathOps::d_finest_ln
private

◆ d_cached_eulerian_data

SAMRAIDataCache IBTK::HierarchyMathOps::d_cached_eulerian_data
private

◆ d_fc_var

SAMRAI::tbox::Pointer<SAMRAI::pdat::FaceVariable<NDIM, double> > IBTK::HierarchyMathOps::d_fc_var
private

◆ d_nc_s_var

SAMRAI::tbox::Pointer<SAMRAI::pdat::NodeVariable<NDIM, double> > IBTK::HierarchyMathOps::d_nc_s_var
private

◆ d_nc_v_var

SAMRAI::tbox::Pointer<SAMRAI::pdat::NodeVariable<NDIM, double> > IBTK::HierarchyMathOps::d_nc_v_var
private

◆ d_sc_var

SAMRAI::tbox::Pointer<SAMRAI::pdat::SideVariable<NDIM, double> > IBTK::HierarchyMathOps::d_sc_var
private

◆ d_ec_var

SAMRAI::tbox::Pointer<SAMRAI::pdat::EdgeVariable<NDIM, double> > IBTK::HierarchyMathOps::d_ec_var
private

◆ d_oe_var

SAMRAI::tbox::Pointer<SAMRAI::pdat::OuteredgeVariable<NDIM, double> > IBTK::HierarchyMathOps::d_oe_var
private

◆ d_of_var

SAMRAI::tbox::Pointer<SAMRAI::pdat::OuterfaceVariable<NDIM, double> > IBTK::HierarchyMathOps::d_of_var
private

◆ d_on_s_var

SAMRAI::tbox::Pointer<SAMRAI::pdat::OuternodeVariable<NDIM, double> > IBTK::HierarchyMathOps::d_on_s_var
private

◆ d_on_v_var

SAMRAI::tbox::Pointer<SAMRAI::pdat::OuternodeVariable<NDIM, double> > IBTK::HierarchyMathOps::d_on_v_var
private

◆ d_os_var

SAMRAI::tbox::Pointer<SAMRAI::pdat::OutersideVariable<NDIM, double> > IBTK::HierarchyMathOps::d_os_var
private

◆ d_ec_idx

int IBTK::HierarchyMathOps::d_ec_idx = IBTK::invalid_index
private

◆ d_fc_idx

int IBTK::HierarchyMathOps::d_fc_idx = IBTK::invalid_index
private

◆ d_nc_s_idx

int IBTK::HierarchyMathOps::d_nc_s_idx = IBTK::invalid_index
private

◆ d_nc_v_idx

int IBTK::HierarchyMathOps::d_nc_v_idx = IBTK::invalid_index
private

◆ d_oe_idx

int IBTK::HierarchyMathOps::d_oe_idx = IBTK::invalid_index
private

◆ d_sc_idx

int IBTK::HierarchyMathOps::d_sc_idx = IBTK::invalid_index
private

◆ d_of_idx

int IBTK::HierarchyMathOps::d_of_idx = IBTK::invalid_index
private

◆ d_on_s_idx

int IBTK::HierarchyMathOps::d_on_s_idx = IBTK::invalid_index
private

◆ d_on_v_idx

int IBTK::HierarchyMathOps::d_on_v_idx = IBTK::invalid_index
private

◆ d_os_idx

int IBTK::HierarchyMathOps::d_os_idx = IBTK::invalid_index
private

◆ d_coarsen_op_name

std::string IBTK::HierarchyMathOps::d_coarsen_op_name
private

◆ d_of_coarsen_op

SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenOperator<NDIM> > IBTK::HierarchyMathOps::d_of_coarsen_op
private

◆ d_on_s_coarsen_op

SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenOperator<NDIM> > IBTK::HierarchyMathOps::d_on_s_coarsen_op
private

◆ d_on_v_coarsen_op

SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenOperator<NDIM> > IBTK::HierarchyMathOps::d_on_v_coarsen_op
private

◆ d_os_coarsen_op

SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenOperator<NDIM> > IBTK::HierarchyMathOps::d_os_coarsen_op
private

◆ d_oe_coarsen_op

SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenOperator<NDIM> > IBTK::HierarchyMathOps::d_oe_coarsen_op
private

◆ d_of_coarsen_alg

SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenAlgorithm<NDIM> > IBTK::HierarchyMathOps::d_of_coarsen_alg
private

◆ d_on_s_coarsen_alg

SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenAlgorithm<NDIM> > IBTK::HierarchyMathOps::d_on_s_coarsen_alg
private

◆ d_on_v_coarsen_alg

SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenAlgorithm<NDIM> > IBTK::HierarchyMathOps::d_on_v_coarsen_alg
private

◆ d_os_coarsen_alg

SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenAlgorithm<NDIM> > IBTK::HierarchyMathOps::d_os_coarsen_alg
private

◆ d_oe_coarsen_alg

SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenAlgorithm<NDIM> > IBTK::HierarchyMathOps::d_oe_coarsen_alg
private

◆ d_of_coarsen_scheds

std::vector<SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenSchedule<NDIM> > > IBTK::HierarchyMathOps::d_of_coarsen_scheds
private

◆ d_on_s_coarsen_scheds

std::vector<SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenSchedule<NDIM> > > IBTK::HierarchyMathOps::d_on_s_coarsen_scheds
private

◆ d_on_v_coarsen_scheds

std::vector<SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenSchedule<NDIM> > > IBTK::HierarchyMathOps::d_on_v_coarsen_scheds
private

◆ d_os_coarsen_scheds

std::vector<SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenSchedule<NDIM> > > IBTK::HierarchyMathOps::d_os_coarsen_scheds
private

◆ d_oe_coarsen_scheds

std::vector<SAMRAI::tbox::Pointer<SAMRAI::xfer::CoarsenSchedule<NDIM> > > IBTK::HierarchyMathOps::d_oe_coarsen_scheds
private

◆ d_hier_cc_data_ops

SAMRAI::tbox::Pointer<SAMRAI::math::HierarchyCellDataOpsReal<NDIM, double> > IBTK::HierarchyMathOps::d_hier_cc_data_ops
private

◆ d_hier_fc_data_ops

SAMRAI::tbox::Pointer<SAMRAI::math::HierarchyFaceDataOpsReal<NDIM, double> > IBTK::HierarchyMathOps::d_hier_fc_data_ops
private

◆ d_hier_sc_data_ops

SAMRAI::tbox::Pointer<SAMRAI::math::HierarchySideDataOpsReal<NDIM, double> > IBTK::HierarchyMathOps::d_hier_sc_data_ops
private

◆ d_patch_math_ops

PatchMathOps IBTK::HierarchyMathOps::d_patch_math_ops
private

◆ d_context

SAMRAI::tbox::Pointer<SAMRAI::hier::VariableContext> IBTK::HierarchyMathOps::d_context
private

◆ d_wgt_cc_var

SAMRAI::tbox::Pointer<SAMRAI::pdat::CellVariable<NDIM, double> > IBTK::HierarchyMathOps::d_wgt_cc_var
private

◆ d_wgt_fc_var

SAMRAI::tbox::Pointer<SAMRAI::pdat::FaceVariable<NDIM, double> > IBTK::HierarchyMathOps::d_wgt_fc_var
private

◆ d_wgt_sc_var

SAMRAI::tbox::Pointer<SAMRAI::pdat::SideVariable<NDIM, double> > IBTK::HierarchyMathOps::d_wgt_sc_var
private

◆ d_wgt_cc_idx

int IBTK::HierarchyMathOps::d_wgt_cc_idx = IBTK::invalid_index
private

◆ d_wgt_fc_idx

int IBTK::HierarchyMathOps::d_wgt_fc_idx = IBTK::invalid_index
private

◆ d_wgt_sc_idx

int IBTK::HierarchyMathOps::d_wgt_sc_idx = IBTK::invalid_index
private

◆ d_using_wgt_cc

bool IBTK::HierarchyMathOps::d_using_wgt_cc = false
private

◆ d_using_wgt_fc

bool IBTK::HierarchyMathOps::d_using_wgt_fc = false
private

◆ d_using_wgt_sc

bool IBTK::HierarchyMathOps::d_using_wgt_sc = false
private

◆ d_volume

double IBTK::HierarchyMathOps::d_volume = 0.0
private

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