IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
|
Class HierarchyMathOps provides functionality to perform "composite-grid" mathematical operations on a range of levels in a SAMRAI::hier::PatchHierarchy object. More...
#include </home/runner/work/IBAMR/IBAMR/ibtk/include/ibtk/HierarchyMathOps.h>
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. | |
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. | |
void | resetLevels (int coarsest_ln, int finest_ln) |
Reset range of patch levels over which operations occur. More... | |
Methods to get cell weight data. | |
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. | |
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > | getPatchHierarchy () const |
Get the patch hierarchy object associated with the class. | |
void | setCoarsenOperatorName (const std::string &coarsen_op_name) |
Set the name of the coarsen operator used for synchronizing the coarse-fine boundary. | |
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... | |
Class HierarchyMathOps provides functionality to perform "composite-grid" mathematical operations on a range of levels in a SAMRAI::hier::PatchHierarchy object.
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.
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" |
||
) |
Constructor.
Does nothing interesting.
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 | ||
) |
Compute the cell-centered curl of a cell-centered vector field using centered differences.
Sets dst = curl src.
Compute the curl of a vector field using centered differences.
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 | ||
) |
Compute the cell-centered curl of a face-centered vector field using centered differences.
Sets dst = curl src.
Compute the curl of a vector field using centered differences.
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 | ||
) |
Compute the cell-centered curl of a side-centered vector field using centered differences.
Sets dst = curl src.
Compute the curl of a vector field using centered differences.
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 | ||
) |
Compute the edge-centered curl of a side-centered vector field using centered differences.
Sets dst = curl src.
Compute the curl of a vector field using centered differences.
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 | ||
) |
Compute the cell-centered curl of a face-centered vector field using centered differences.
Sets dst = curl src.
Compute the curl of a vector field using centered differences.
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 | ||
) |
Compute the node-centered curl of a side-centered vector field using centered differences.
Sets dst = curl src.
Compute the curl of a vector field using centered differences.
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 | ||
) |
Compute the cell-centered curl of a side-centered vector field using centered differences.
Sets dst = curl src.
Compute the curl of a vector field using centered differences.
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 |
||
) |
Compute the cell-centered divergence of a cell-centered vector field using centered differences.
Sets dst = alpha div src1 + beta src2.
Compute the divergence of a vector field using centered differences.
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 |
||
) |
Compute the cell-centered divergence of a face-centered normal vector field using centered differences.
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.
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 |
||
) |
Compute the cell-centered divergence of a side-centered normal vector field using centered differences.
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.
void IBTK::HierarchyMathOps::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.
int IBTK::HierarchyMathOps::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.
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.
Pointer< CellVariable< NDIM, double > > IBTK::HierarchyMathOps::getCellWeightVariable | ( | ) | const |
Access the SAMRAI::pdat::CellVariable that is used to store cell weights. These weights are used in computing discrete vector norms.
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.
int IBTK::HierarchyMathOps::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.
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.
Pointer< FaceVariable< NDIM, double > > IBTK::HierarchyMathOps::getFaceWeightVariable | ( | ) | const |
Access the SAMRAI::pdat::FaceVariable that is used to store face weights. These weights are used in computing discrete vector norms.
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.
int IBTK::HierarchyMathOps::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.
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.
Pointer< SideVariable< NDIM, double > > IBTK::HierarchyMathOps::getSideWeightVariable | ( | ) | const |
Access the SAMRAI::pdat::SideVariable that is used to store side weights. These weights are used in computing discrete vector norms.
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.
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 |
||
) |
Compute the gradient of a scalar quantity using centered differences.
Sets dst = alpha grad src1 + beta src2.
Compute the gradient of a scalar quantity using centered differences.
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 |
||
) |
Compute the gradient of a scalar quantity using centered differences.
Sets dst = alpha grad src1 + beta src2.
Compute the gradient of a scalar quantity using centered differences.
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 |
||
) |
Compute the gradient of a scalar quantity using centered differences.
Sets dst = alpha grad src1 + beta src2.
Compute the gradient of a scalar quantity using centered differences.
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 |
||
) |
Compute the gradient of a scalar quantity using centered differences.
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.
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 |
||
) |
Compute the gradient of a scalar quantity using centered differences.
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.
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 |
||
) |
Compute the gradient of a scalar quantity using centered differences.
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.
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 |
||
) |
Compute the gradient of a scalar quantity using centered differences.
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.
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 | ||
) |
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.
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
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 | ||
) |
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.
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
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 | ||
) |
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.
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.
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 | ||
) |
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.
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
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 | ||
) |
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.
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
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 to a cell-centered vector/tensor field from an edge-centered vector/tensor field.
Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging.
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 to a cell-centered vector/tensor field from a face-centered normal vector/tensor field.
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.
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 to a cell-centered vector/tensor field from a node-centered vector/tensor field.
Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging.
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 to a cell-centered vector/tensor field from a side-centered normal vector/tensor field.
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.
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 to a edge-centered vector/tensor field from a cell-centered vector/tensor field.
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
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 to a face-centered normal vector/tensor field from a cell-centered vector/tensor field.
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.
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 to a node-centered vector/tensor field from a cell-centered vector/tensor field.
Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging.
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 to a node-centered vector/tensor field from a face-centered normal vector/tensor field.
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.
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 to a node-centered vector/tensor field from a side-centered normal vector/tensor field.
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.
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 to a side-centered normal vector/tensor field from a cell-centered vector/tensor field.
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.
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 to a edge-centered vector/tensor field from a cell-centered vector/tensor field.
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
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 to a node-centered vector/tensor field from a cell-centered vector/tensor field. Interpolate both in the cell and in the ghost region.
Interpolate a vector or tensor field from one variable type to another using (second-order accurate) averaging.
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 |
||
) |
Compute the Laplacian of a scalar quantity using centered differences.
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.
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 |
||
) |
Compute the Laplacian of a scalar quantity using centered differences.
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.
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 | ||
) |
Compute dst = |src|_1, pointwise.
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 | ||
) |
Compute dst = |src|_1, pointwise.
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 | ||
) |
Compute dst = |src|_2, pointwise.
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 | ||
) |
Compute dst = |src|_2, pointwise.
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 | ||
) |
Compute dst = |src|_oo, pointwise.
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 | ||
) |
Compute dst = |src|_oo, pointwise.
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 |
||
) |
Compute dst = alpha src1 + beta src2, pointwise.
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 |
||
) |
Compute dst = alpha src1 + beta src2, pointwise.
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 |
||
) |
Compute dst = alpha src1 + beta src2, pointwise.
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 |
||
) |
Compute dst = alpha src1 + beta src2, pointwise.
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 |
||
) |
Compute dst = alpha src1 + beta src2, pointwise.
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 |
||
) |
Compute dst = alpha src1 + beta src2, pointwise.
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 |
||
) |
Compute dst = alpha src1 + beta src2, pointwise.
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 |
||
) |
Compute dst = alpha src1 + beta src2, pointwise.
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 |
||
) |
Compute dst = alpha src1 + beta src2, pointwise.
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 |
||
) |
Compute dst = alpha src1 + beta src2, pointwise.
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 |
||
) |
Compute dst = alpha src1 + beta src2, pointwise.
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 |
||
) |
Compute dst = alpha src1 + beta src2, pointwise.
void IBTK::HierarchyMathOps::resetLevels | ( | int | coarsest_ln, |
int | finest_ln | ||
) |
Reset range of patch levels over which operations occur.
The specified levels must exist in the hierarchy or an assertion will result.
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>*>() |
||
) |
Compute the side-centered rot of a node-centered scalar field using centered differences.
Sets dst = rot src.
Compute the rot of a 2d scalar field defined on nodes using centered differences.
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>*>() |
||
) |
Compute the side-centered rot of a edge-centered vector field using centered differences.
Sets dst = rot src.
Compute the rot of a 3d vector field defined on edges using centered differences.
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>*>() |
||
) |
Compute the side-centered rot of a node-centered scalar field using centered differences.
Sets dst = rot src.
Compute the rot of a 2d scalar field defined on nodes using centered differences.
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>*>() |
||
) |
Compute the side-centered rot of a side-centered vector field using centered differences.
Sets dst = rot src.
Compute the rot of a 3d vector field defined on sides using centered differences.
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 | ||
) |
Compute the cell-centered strain rate of a side-centered vector field using centered differences.
Sets dst1 = strain src (diagonal components). Sets dst2 = strain src (off diagonal components).
Compute the strain of a vector field using centered differences.
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 | ||
) |
Compute the cell-centered strain rate of a side-centered vector field using centered differences.
Sets dst = strain src.
Compute the strain of a vector field using centered differences.
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 |
||
) |
Compute dst = alpha div coef1 ((grad src1) + (grad src1)^T) + beta coef2 src1 + gamma src2, the variable coefficient generalized Laplacian of src1.
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 |
||
) |
Compute dst = alpha div coef1 ((grad src1) + (grad src1)^T) + beta coef2 src1 + gamma src2, the variable coefficient generalized Laplacian of src1.