IBAMR  IBAMR version 0.19.
Classes | Static Public Member Functions | Static Public Attributes | Private Member Functions | Static Private Member Functions | List of all members
IBTK::LEInteractor Class Reference

Class LEInteractor is a utility class that defines several functions to interpolate data from Eulerian grid patches onto Lagrangian meshes and to spread values (not densities) from Lagrangian meshes to Eulerian grid patches.

#include <ibtk/LEInteractor.h>

Classes

struct  IndicesAndShifts
 Helper class containing local indices and periodic shifts. More...
 

Static Public Member Functions

static void setFromDatabase (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > db)
 Set configuration options from a user-supplied database. More...
 
static void printClassData (std::ostream &os)
 Output class configuration. More...
 
static int getStencilSize (const std::string &kernel_fcn)
 Returns the interpolation/spreading stencil corresponding to the specified kernel function. More...
 
static bool isKnownKernel (const std::string &kernel_fcn)
 Return whether or not the provided string corresponds to a known kernel function. More...
 
static int getMinimumGhostWidth (const std::string &kernel_fcn)
 Returns the minimum ghost width size corresponding to the specified kernel function. More...
 
template<class T >
static void interpolate (SAMRAI::tbox::Pointer< LData > Q_data, SAMRAI::tbox::Pointer< LData > X_data, SAMRAI::tbox::Pointer< LIndexSetData< T > > idx_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const SAMRAI::hier::IntVector< NDIM > &periodic_shift, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
template<class T >
static void interpolate (SAMRAI::tbox::Pointer< LData > Q_data, SAMRAI::tbox::Pointer< LData > X_data, SAMRAI::tbox::Pointer< LIndexSetData< T > > idx_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const SAMRAI::hier::IntVector< NDIM > &periodic_shift, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
template<class T >
static void interpolate (SAMRAI::tbox::Pointer< LData > Q_data, SAMRAI::tbox::Pointer< LData > X_data, SAMRAI::tbox::Pointer< LIndexSetData< T > > idx_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const SAMRAI::hier::IntVector< NDIM > &periodic_shift, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
template<class T >
static void interpolate (SAMRAI::tbox::Pointer< LData > Q_data, SAMRAI::tbox::Pointer< LData > X_data, SAMRAI::tbox::Pointer< LIndexSetData< T > > idx_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const SAMRAI::hier::IntVector< NDIM > &periodic_shift, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
template<class T >
static void interpolate (double *Q_data, int Q_depth, const double *X_data, int X_depth, SAMRAI::tbox::Pointer< LIndexSetData< T > > idx_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const SAMRAI::hier::IntVector< NDIM > &periodic_shift, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
template<class T >
static void interpolate (double *Q_data, int Q_depth, const double *X_data, int X_depth, SAMRAI::tbox::Pointer< LIndexSetData< T > > idx_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const SAMRAI::hier::IntVector< NDIM > &periodic_shift, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
template<class T >
static void interpolate (double *Q_data, int Q_depth, const double *X_data, int X_depth, SAMRAI::tbox::Pointer< LIndexSetData< T > > idx_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const SAMRAI::hier::IntVector< NDIM > &periodic_shift, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
template<class T >
static void interpolate (double *Q_data, int Q_depth, const double *X_data, int X_depth, SAMRAI::tbox::Pointer< LIndexSetData< T > > idx_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const SAMRAI::hier::IntVector< NDIM > &periodic_shift, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void interpolate (std::vector< double > &Q_data, int Q_depth, const std::vector< double > &X_data, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void interpolate (std::vector< double > &Q_data, int Q_depth, const std::vector< double > &X_data, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > > mask_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void interpolate (std::vector< double > &Q_data, int Q_depth, const std::vector< double > &X_data, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void interpolate (std::vector< double > &Q_data, int Q_depth, const std::vector< double > &X_data, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void interpolate (std::vector< double > &Q_data, int Q_depth, const std::vector< double > &X_data, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > mask_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void interpolate (std::vector< double > &Q_data, int Q_depth, const std::vector< double > &X_data, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void interpolate (double *Q_data, int Q_size, int Q_depth, const double *X_data, int X_size, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void interpolate (double *Q_data, int Q_size, int Q_depth, const double *X_data, int X_size, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > > mask_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void interpolate (double *Q_data, int Q_size, int Q_depth, const double *X_data, int X_size, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void interpolate (double *Q_data, int Q_size, int Q_depth, const double *X_data, int X_size, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void interpolate (double *Q_data, int Q_size, int Q_depth, const double *X_data, int X_size, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > mask_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void interpolate (double *Q_data, int Q_size, int Q_depth, const double *X_data, int X_size, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &interp_box, const std::string &interp_fcn="IB_4")
 Interpolate data from an Eulerian grid to a Lagrangian mesh. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
template<class T >
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< LData > Q_data, SAMRAI::tbox::Pointer< LData > X_data, SAMRAI::tbox::Pointer< LIndexSetData< T > > idx_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const SAMRAI::hier::IntVector< NDIM > &periodic_shift, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
template<class T >
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< LData > Q_data, SAMRAI::tbox::Pointer< LData > X_data, SAMRAI::tbox::Pointer< LIndexSetData< T > > idx_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const SAMRAI::hier::IntVector< NDIM > &periodic_shift, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
template<class T >
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< LData > Q_data, SAMRAI::tbox::Pointer< LData > X_data, SAMRAI::tbox::Pointer< LIndexSetData< T > > idx_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const SAMRAI::hier::IntVector< NDIM > &periodic_shift, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
template<class T >
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeData< NDIM, double > > q_data, SAMRAI::tbox::Pointer< LData > Q_data, SAMRAI::tbox::Pointer< LData > X_data, SAMRAI::tbox::Pointer< LIndexSetData< T > > idx_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const SAMRAI::hier::IntVector< NDIM > &periodic_shift, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
template<class T >
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > > q_data, const double *Q_data, int Q_depth, const double *X_data, int X_depth, SAMRAI::tbox::Pointer< LIndexSetData< T > > idx_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const SAMRAI::hier::IntVector< NDIM > &periodic_shift, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
template<class T >
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeData< NDIM, double > > q_data, const double *Q_data, int Q_depth, const double *X_data, int X_depth, SAMRAI::tbox::Pointer< LIndexSetData< T > > idx_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const SAMRAI::hier::IntVector< NDIM > &periodic_shift, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
template<class T >
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > q_data, const double *Q_data, int Q_depth, const double *X_data, int X_depth, SAMRAI::tbox::Pointer< LIndexSetData< T > > idx_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const SAMRAI::hier::IntVector< NDIM > &periodic_shift, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
template<class T >
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeData< NDIM, double > > q_data, const double *Q_data, int Q_depth, const double *X_data, int X_depth, SAMRAI::tbox::Pointer< LIndexSetData< T > > idx_data, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const SAMRAI::hier::IntVector< NDIM > &periodic_shift, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > > q_data, const std::vector< double > &Q_data, int Q_depth, const std::vector< double > &X_data, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > > mask_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > > q_data, const std::vector< double > &Q_data, int Q_depth, const std::vector< double > &X_data, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeData< NDIM, double > > q_data, const std::vector< double > &Q_data, int Q_depth, const std::vector< double > &X_data, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > q_data, const std::vector< double > &Q_data, int Q_depth, const std::vector< double > &X_data, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > mask_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > q_data, const std::vector< double > &Q_data, int Q_depth, const std::vector< double > &X_data, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeData< NDIM, double > > q_data, const std::vector< double > &Q_data, int Q_depth, const std::vector< double > &X_data, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > > q_data, const double *Q_data, int Q_size, int Q_depth, const double *X_data, int X_size, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > > mask_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > > q_data, const double *Q_data, int Q_size, int Q_depth, const double *X_data, int X_size, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeData< NDIM, double > > q_data, const double *Q_data, int Q_size, int Q_depth, const double *X_data, int X_size, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > q_data, const double *Q_data, int Q_size, int Q_depth, const double *X_data, int X_size, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > mask_data, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > > q_data, const double *Q_data, int Q_size, int Q_depth, const double *X_data, int X_size, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 
static void spread (SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeData< NDIM, double > > q_data, const double *Q_data, int Q_size, int Q_depth, const double *X_data, int X_size, int X_depth, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::Box< NDIM > &spread_box, const std::string &spread_fcn="IB_4")
 Spread data from a Lagrangian mesh to an Eulerian grid. The positions of the nodes of the Lagrangian mesh are specified by X_data. More...
 

Static Public Attributes

static double(* s_kernel_fcn )(double r)
 Function pointer to user-defined kernel function along with corresponding stencil size and quadratic constant C. More...
 
static int s_kernel_fcn_stencil_size
 

Private Member Functions

 LEInteractor ()=delete
 Default constructor. More...
 
 ~LEInteractor ()=delete
 Default destructor constructor. More...
 
 LEInteractor (const LEInteractor &from)=delete
 Copy constructor. More...
 
LEInteractoroperator= (const LEInteractor &that)=delete
 Assignment operator. More...
 

Static Private Member Functions

static void interpolate (double *Q_data, int Q_depth, const double *X_data, const double *q_data, const SAMRAI::hier::Box< NDIM > &q_data_box, const SAMRAI::hier::IntVector< NDIM > &q_gcw, int q_depth, const double *x_lower, const double *x_upper, const double *dx, const std::array< int, NDIM > &patch_touches_lower_physical_bdry, const std::array< int, NDIM > &patch_touches_upper_physical_bdry, const Eigen::Map< Eigen::VectorXi > &local_indices, const Eigen::Map< Eigen::VectorXd > &periodic_shifts, const std::string &interp_fcn, int axis=0)
 
static void spread (double *q_data, const SAMRAI::hier::Box< NDIM > &q_data_box, const SAMRAI::hier::IntVector< NDIM > &q_gcw, int q_depth, const double *Q_data, int Q_depth, const double *X_data, const double *x_lower, const double *x_upper, const double *dx, const std::array< int, NDIM > &patch_touches_lower_physical_bdry, const std::array< int, NDIM > &patch_touches_upper_physical_bdry, const Eigen::Map< Eigen::VectorXi > &local_indices, const Eigen::Map< Eigen::VectorXd > &periodic_shifts, const std::string &spread_fcn, int axis=0)
 
template<class T >
static void buildLocalIndices (std::vector< int > &local_indices, std::vector< double > &periodic_shifts, const SAMRAI::hier::Box< NDIM > &box, SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch, const SAMRAI::hier::IntVector< NDIM > &periodic_shift, SAMRAI::tbox::Pointer< LIndexSetData< T > > idx_data)
 Compute the local PETSc indices located within the provided box based on the LNodeIndexSetData values. More...
 
static int buildLocalIndices (Eigen::Map< Eigen::VectorXi > &local_indices, const SAMRAI::hier::Box< NDIM > &box, const SAMRAI::hier::Patch< NDIM > &patch, const double *const X_data, const int X_size, const int X_depth)
 Compute the local PETSc indices located within the provided box based on the positions of the Lagrangian mesh nodes. Returns the total number of local indices. More...
 
static void userDefinedInterpolate (double *Q, int Q_depth, const double *X, const double *q, const SAMRAI::hier::Box< NDIM > &q_data_box, const int *q_gcw, int q_depth, const double *x_lower, const double *x_upper, const double *dx, const int *local_indices, const double *X_shift, int num_local_indices)
 
static void userDefinedSpread (double *q, const SAMRAI::hier::Box< NDIM > &q_data_box, const int *q_gcw, int q_depth, const double *x_lower, const double *x_upper, const double *dx, const double *Q, int Q_depth, const double *X, const int *local_indices, const double *X_shift, int num_local_indices)
 

Constructor & Destructor Documentation

◆ LEInteractor() [1/2]

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

◆ ~LEInteractor()

IBTK::LEInteractor::~LEInteractor ( )
privatedelete
Note
This destructor is not implemented and should not be used.

◆ LEInteractor() [2/2]

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

Member Function Documentation

◆ setFromDatabase()

static void IBTK::LEInteractor::setFromDatabase ( SAMRAI::tbox::Pointer< SAMRAI::tbox::Database db)
static

◆ printClassData()

static void IBTK::LEInteractor::printClassData ( std::ostream &  os)
static

◆ getStencilSize()

static int IBTK::LEInteractor::getStencilSize ( const std::string &  kernel_fcn)
static

◆ isKnownKernel()

static bool IBTK::LEInteractor::isKnownKernel ( const std::string &  kernel_fcn)
static

◆ getMinimumGhostWidth()

static int IBTK::LEInteractor::getMinimumGhostWidth ( const std::string &  kernel_fcn)
static

The minimum ghost cell width is appropriate for simulations in which IB points are allowed to move no more than one cell width between regridding/redistribution operations. Simulations in which IB points are allowed to move further between regridding/redistribution operations require correspondingly larger ghost cell widths.

◆ interpolate() [1/21]

template<class T >
static void IBTK::LEInteractor::interpolate ( SAMRAI::tbox::Pointer< LData Q_data,
SAMRAI::tbox::Pointer< LData X_data,
SAMRAI::tbox::Pointer< LIndexSetData< T > >  idx_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
This method employs periodic boundary conditions where appropriate and when requested. X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

◆ interpolate() [2/21]

template<class T >
static void IBTK::LEInteractor::interpolate ( SAMRAI::tbox::Pointer< LData Q_data,
SAMRAI::tbox::Pointer< LData X_data,
SAMRAI::tbox::Pointer< LIndexSetData< T > >  idx_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
This method employs periodic boundary conditions where appropriate and when requested. X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

◆ interpolate() [3/21]

template<class T >
static void IBTK::LEInteractor::interpolate ( SAMRAI::tbox::Pointer< LData Q_data,
SAMRAI::tbox::Pointer< LData X_data,
SAMRAI::tbox::Pointer< LIndexSetData< T > >  idx_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
This method employs periodic boundary conditions where appropriate and when requested. X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

◆ interpolate() [4/21]

template<class T >
static void IBTK::LEInteractor::interpolate ( SAMRAI::tbox::Pointer< LData Q_data,
SAMRAI::tbox::Pointer< LData X_data,
SAMRAI::tbox::Pointer< LIndexSetData< T > >  idx_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
This method employs periodic boundary conditions where appropriate and when requested. X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

◆ interpolate() [5/21]

template<class T >
static void IBTK::LEInteractor::interpolate ( double Q_data,
int  Q_depth,
const double X_data,
int  X_depth,
SAMRAI::tbox::Pointer< LIndexSetData< T > >  idx_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
This method employs periodic boundary conditions where appropriate and when requested. X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

◆ interpolate() [6/21]

template<class T >
static void IBTK::LEInteractor::interpolate ( double Q_data,
int  Q_depth,
const double X_data,
int  X_depth,
SAMRAI::tbox::Pointer< LIndexSetData< T > >  idx_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
This method employs periodic boundary conditions where appropriate and when requested. X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

◆ interpolate() [7/21]

template<class T >
static void IBTK::LEInteractor::interpolate ( double Q_data,
int  Q_depth,
const double X_data,
int  X_depth,
SAMRAI::tbox::Pointer< LIndexSetData< T > >  idx_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
This method employs periodic boundary conditions where appropriate and when requested. X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

◆ interpolate() [8/21]

template<class T >
static void IBTK::LEInteractor::interpolate ( double Q_data,
int  Q_depth,
const double X_data,
int  X_depth,
SAMRAI::tbox::Pointer< LIndexSetData< T > >  idx_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
This method employs periodic boundary conditions where appropriate and when requested. X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

◆ interpolate() [9/21]

static void IBTK::LEInteractor::interpolate ( std::vector< double > &  Q_data,
int  Q_depth,
const std::vector< double > &  X_data,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

Warning
This method does not support periodic offsets for positions.

◆ interpolate() [10/21]

static void IBTK::LEInteractor::interpolate ( std::vector< double > &  Q_data,
int  Q_depth,
const std::vector< double > &  X_data,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > >  mask_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

Warning
This method does not support periodic offsets for positions.

◆ interpolate() [11/21]

static void IBTK::LEInteractor::interpolate ( std::vector< double > &  Q_data,
int  Q_depth,
const std::vector< double > &  X_data,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

Warning
This method does not support periodic offsets for positions.

◆ interpolate() [12/21]

static void IBTK::LEInteractor::interpolate ( std::vector< double > &  Q_data,
int  Q_depth,
const std::vector< double > &  X_data,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

Warning
This method does not support periodic offsets for positions.

◆ interpolate() [13/21]

static void IBTK::LEInteractor::interpolate ( std::vector< double > &  Q_data,
int  Q_depth,
const std::vector< double > &  X_data,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > >  mask_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

Warning
This method does not support periodic offsets for positions.

◆ interpolate() [14/21]

static void IBTK::LEInteractor::interpolate ( std::vector< double > &  Q_data,
int  Q_depth,
const std::vector< double > &  X_data,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

Warning
This method does not support periodic offsets for positions.

◆ interpolate() [15/21]

static void IBTK::LEInteractor::interpolate ( double Q_data,
int  Q_size,
int  Q_depth,
const double X_data,
int  X_size,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

Warning
This method does not support periodic offsets for positions.

◆ interpolate() [16/21]

static void IBTK::LEInteractor::interpolate ( double Q_data,
int  Q_size,
int  Q_depth,
const double X_data,
int  X_size,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > >  mask_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

Warning
This method does not support periodic offsets for positions.

◆ interpolate() [17/21]

static void IBTK::LEInteractor::interpolate ( double Q_data,
int  Q_size,
int  Q_depth,
const double X_data,
int  X_size,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

Warning
This method does not support periodic offsets for positions.

◆ interpolate() [18/21]

static void IBTK::LEInteractor::interpolate ( double Q_data,
int  Q_size,
int  Q_depth,
const double X_data,
int  X_size,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

Warning
This method does not support periodic offsets for positions.

◆ interpolate() [19/21]

static void IBTK::LEInteractor::interpolate ( double Q_data,
int  Q_size,
int  Q_depth,
const double X_data,
int  X_size,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > >  mask_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

Warning
This method does not support periodic offsets for positions.

◆ interpolate() [20/21]

static void IBTK::LEInteractor::interpolate ( double Q_data,
int  Q_size,
int  Q_depth,
const double X_data,
int  X_size,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  interp_box,
const std::string &  interp_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The interpolation operator implements the operation
Q(q,r,s) = Sum_{i,j,k} q(i,j,k) delta_h(x(i,j,k) - X(q,r,s)) h^3

This is the standard regularized delta function interpolation operation.

Warning
This method does not support periodic offsets for positions.

◆ spread() [1/21]

template<class T >
static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< LData Q_data,
SAMRAI::tbox::Pointer< LData X_data,
SAMRAI::tbox::Pointer< LIndexSetData< T > >  idx_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
This method employs periodic boundary conditions where appropriate and when requested. X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

◆ spread() [2/21]

template<class T >
static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< LData Q_data,
SAMRAI::tbox::Pointer< LData X_data,
SAMRAI::tbox::Pointer< LIndexSetData< T > >  idx_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
This method employs periodic boundary conditions where appropriate and when requested. X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

◆ spread() [3/21]

template<class T >
static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< LData Q_data,
SAMRAI::tbox::Pointer< LData X_data,
SAMRAI::tbox::Pointer< LIndexSetData< T > >  idx_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
This method employs periodic boundary conditions where appropriate and when requested. X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

◆ spread() [4/21]

template<class T >
static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeData< NDIM, double > >  q_data,
SAMRAI::tbox::Pointer< LData Q_data,
SAMRAI::tbox::Pointer< LData X_data,
SAMRAI::tbox::Pointer< LIndexSetData< T > >  idx_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
This method employs periodic boundary conditions where appropriate and when requested. X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

◆ spread() [5/21]

template<class T >
static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > >  q_data,
const double Q_data,
int  Q_depth,
const double X_data,
int  X_depth,
SAMRAI::tbox::Pointer< LIndexSetData< T > >  idx_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
This method employs periodic boundary conditions where appropriate and when requested. X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

◆ spread() [6/21]

template<class T >
static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeData< NDIM, double > >  q_data,
const double Q_data,
int  Q_depth,
const double X_data,
int  X_depth,
SAMRAI::tbox::Pointer< LIndexSetData< T > >  idx_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
This method employs periodic boundary conditions where appropriate and when requested. X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

◆ spread() [7/21]

template<class T >
static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > >  q_data,
const double Q_data,
int  Q_depth,
const double X_data,
int  X_depth,
SAMRAI::tbox::Pointer< LIndexSetData< T > >  idx_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
This method employs periodic boundary conditions where appropriate and when requested. X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

◆ spread() [8/21]

template<class T >
static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeData< NDIM, double > >  q_data,
const double Q_data,
int  Q_depth,
const double X_data,
int  X_depth,
SAMRAI::tbox::Pointer< LIndexSetData< T > >  idx_data,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
This method employs periodic boundary conditions where appropriate and when requested. X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

◆ spread() [9/21]

static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > >  q_data,
const std::vector< double > &  Q_data,
int  Q_depth,
const std::vector< double > &  X_data,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

Warning
This method does not support periodic offsets for positions.

◆ spread() [10/21]

static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > >  mask_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > >  q_data,
const std::vector< double > &  Q_data,
int  Q_depth,
const std::vector< double > &  X_data,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

Warning
This method does not support periodic offsets for positions.

◆ spread() [11/21]

static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeData< NDIM, double > >  q_data,
const std::vector< double > &  Q_data,
int  Q_depth,
const std::vector< double > &  X_data,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

Warning
This method does not support periodic offsets for positions.

◆ spread() [12/21]

static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > >  q_data,
const std::vector< double > &  Q_data,
int  Q_depth,
const std::vector< double > &  X_data,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

Warning
This method does not support periodic offsets for positions.

◆ spread() [13/21]

static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > >  mask_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > >  q_data,
const std::vector< double > &  Q_data,
int  Q_depth,
const std::vector< double > &  X_data,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

Warning
This method does not support periodic offsets for positions.

◆ spread() [14/21]

static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeData< NDIM, double > >  q_data,
const std::vector< double > &  Q_data,
int  Q_depth,
const std::vector< double > &  X_data,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

Warning
This method does not support periodic offsets for positions.

◆ spread() [15/21]

static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > >  q_data,
const double Q_data,
int  Q_size,
int  Q_depth,
const double X_data,
int  X_size,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

Warning
This method does not support periodic offsets for positions.

◆ spread() [16/21]

static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > >  mask_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellData< NDIM, double > >  q_data,
const double Q_data,
int  Q_size,
int  Q_depth,
const double X_data,
int  X_size,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

Warning
This method does not support periodic offsets for positions.

◆ spread() [17/21]

static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::NodeData< NDIM, double > >  q_data,
const double Q_data,
int  Q_size,
int  Q_depth,
const double X_data,
int  X_size,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

Warning
This method does not support periodic offsets for positions.

◆ spread() [18/21]

static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > >  q_data,
const double Q_data,
int  Q_size,
int  Q_depth,
const double X_data,
int  X_size,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

Warning
This method does not support periodic offsets for positions.

◆ spread() [19/21]

static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > >  mask_data,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideData< NDIM, double > >  q_data,
const double Q_data,
int  Q_size,
int  Q_depth,
const double X_data,
int  X_size,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

Warning
This method does not support periodic offsets for positions.

◆ spread() [20/21]

static void IBTK::LEInteractor::spread ( SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeData< NDIM, double > >  q_data,
const double Q_data,
int  Q_size,
int  Q_depth,
const double X_data,
int  X_size,
int  X_depth,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::Box< NDIM > &  spread_box,
const std::string &  spread_fcn = "IB_4" 
)
static
Note
X_data must provide the canonical location of the node—i.e., each node location must lie within the extents of the physical domain.
The spreading operation DOES NOT include the scale factor corresponding to the curvilinear volume element (dq dr ds). The spreading formula is
q(i,j,k) = q(i,j,k) + Sum_{q,r,s} Q(q,r,s) delta_h(x(i,j,k) - X(q,r,s))

Unlike the standard regularized delta function spreading operation, the implemented operations spreads values, NOT densities.

Warning
This method does not support periodic offsets for positions.

◆ operator=()

LEInteractor& IBTK::LEInteractor::operator= ( const LEInteractor 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.

◆ interpolate() [21/21]

static void IBTK::LEInteractor::interpolate ( double Q_data,
int  Q_depth,
const double X_data,
const double q_data,
const SAMRAI::hier::Box< NDIM > &  q_data_box,
const SAMRAI::hier::IntVector< NDIM > &  q_gcw,
int  q_depth,
const double x_lower,
const double x_upper,
const double dx,
const std::array< int, NDIM > &  patch_touches_lower_physical_bdry,
const std::array< int, NDIM > &  patch_touches_upper_physical_bdry,
const Eigen::Map< Eigen::VectorXi > &  local_indices,
const Eigen::Map< Eigen::VectorXd > &  periodic_shifts,
const std::string &  interp_fcn,
int  axis = 0 
)
staticprivate

Implementation of the IB interpolation operation.

◆ spread() [21/21]

static void IBTK::LEInteractor::spread ( double q_data,
const SAMRAI::hier::Box< NDIM > &  q_data_box,
const SAMRAI::hier::IntVector< NDIM > &  q_gcw,
int  q_depth,
const double Q_data,
int  Q_depth,
const double X_data,
const double x_lower,
const double x_upper,
const double dx,
const std::array< int, NDIM > &  patch_touches_lower_physical_bdry,
const std::array< int, NDIM > &  patch_touches_upper_physical_bdry,
const Eigen::Map< Eigen::VectorXi > &  local_indices,
const Eigen::Map< Eigen::VectorXd > &  periodic_shifts,
const std::string &  spread_fcn,
int  axis = 0 
)
staticprivate

Implementation of the IB spreading operation.

◆ buildLocalIndices() [1/2]

template<class T >
static void IBTK::LEInteractor::buildLocalIndices ( std::vector< int > &  local_indices,
std::vector< double > &  periodic_shifts,
const SAMRAI::hier::Box< NDIM > &  box,
SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > >  patch,
const SAMRAI::hier::IntVector< NDIM > &  periodic_shift,
SAMRAI::tbox::Pointer< LIndexSetData< T > >  idx_data 
)
staticprivate

◆ buildLocalIndices() [2/2]

static int IBTK::LEInteractor::buildLocalIndices ( Eigen::Map< Eigen::VectorXi > &  local_indices,
const SAMRAI::hier::Box< NDIM > &  box,
const SAMRAI::hier::Patch< NDIM > &  patch,
const double *const  X_data,
const int  X_size,
const int  X_depth 
)
staticprivate

◆ userDefinedInterpolate()

static void IBTK::LEInteractor::userDefinedInterpolate ( double Q,
int  Q_depth,
const double X,
const double q,
const SAMRAI::hier::Box< NDIM > &  q_data_box,
const int q_gcw,
int  q_depth,
const double x_lower,
const double x_upper,
const double dx,
const int local_indices,
const double X_shift,
int  num_local_indices 
)
staticprivate

Implementation of the IB interpolation operation for a user-defined kernel.

◆ userDefinedSpread()

static void IBTK::LEInteractor::userDefinedSpread ( double q,
const SAMRAI::hier::Box< NDIM > &  q_data_box,
const int q_gcw,
int  q_depth,
const double x_lower,
const double x_upper,
const double dx,
const double Q,
int  Q_depth,
const double X,
const int local_indices,
const double X_shift,
int  num_local_indices 
)
staticprivate

Implementation of the IB spreading operation for a user-defined kernel.

Member Data Documentation

◆ s_kernel_fcn

double(* IBTK::LEInteractor::s_kernel_fcn) (double r)
static

◆ s_kernel_fcn_stencil_size

int IBTK::LEInteractor::s_kernel_fcn_stencil_size
static

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