|
| IBInterpolantMethod (std::string object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, int no_structures=1, bool register_for_restart=true) |
| Constructor.
|
|
| ~IBInterpolantMethod () |
| Destructor.
|
|
void | registerEulerianVariables () override |
|
void | registerEulerianCommunicationAlgorithms () override |
|
virtual void | registerVariableAndHierarchyIntegrator (const std::string &var_name, const int var_depth, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > variable, SAMRAI::tbox::Pointer< IBTK::HierarchyIntegrator > hier_integrator) |
| Register a variable and the HierarchyIntegrator managing the variable with this class.
|
|
void | registerLInitStrategy (SAMRAI::tbox::Pointer< IBTK::LInitStrategy > l_initializer) |
|
void | freeLInitStrategy () |
|
IBTK::LDataManager * | getLDataManager () const |
|
int | getStructuresLevelNumber () const |
| Get the level on which the structures reside.
|
|
int | getStructureHandle (const int lag_idx) const |
| Get the structure handle to which this Lagrangian index belongs.
|
|
unsigned int | getNumberOfNodes (const unsigned int struct_no) const |
| Get the number of nodes for this structure.
|
|
void | registerLSiloDataWriter (SAMRAI::tbox::Pointer< IBTK::LSiloDataWriter > silo_writer) |
|
const SAMRAI::hier::IntVector< NDIM > & | getMinimumGhostCellWidth () const override |
|
void | setupTagBuffer (SAMRAI::tbox::Array< int > &tag_buffer, SAMRAI::tbox::Pointer< SAMRAI::mesh::GriddingAlgorithm< NDIM > > gridding_alg) const override |
|
void | preprocessIntegrateData (double current_time, double new_time, int num_cycles) override |
|
void | postprocessIntegrateData (double current_time, double new_time, int num_cycles) override |
|
void | interpolateVelocity (int u_data_idx, const std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenSchedule< NDIM > > > &u_synch_scheds, const std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineSchedule< NDIM > > > &u_ghost_fill_scheds, double data_time) override |
|
void | interpolateQ (double data_time) |
|
void | interpolateQ () |
|
void | forwardEulerStep (double current_time, double new_time) override |
|
void | backwardEulerStep (double current_time, double new_time) override |
|
void | midpointStep (double current_time, double new_time) override |
|
void | trapezoidalStep (double current_time, double new_time) override |
|
void | updateMeshPosition (double current_time, double new_time, const IBTK::EigenAlignedVector< Eigen::Vector3d > &U, const IBTK::EigenAlignedVector< Eigen::Vector3d > &W) |
|
void | computeLagrangianForce (double data_time) override |
|
void | spreadForce (int f_data_idx, IBTK::RobinPhysBdryPatchStrategy *f_phys_bdry_op, const std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineSchedule< NDIM > > > &f_prolongation_scheds, double data_time) override |
|
void | spreadQ (double data_time) |
|
int | getEulerianQPatchDataIndex (const std::string &var_name) |
|
void | copyEulerianDataToIntegrator (double data_time) |
|
void | initializePatchHierarchy (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, SAMRAI::tbox::Pointer< SAMRAI::mesh::GriddingAlgorithm< NDIM > > gridding_alg, int u_data_idx, const std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenSchedule< NDIM > > > &u_synch_scheds, const std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineSchedule< NDIM > > > &u_ghost_fill_scheds, int integrator_step, double init_data_time, bool initial_time) override |
|
void | addWorkloadEstimate (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, const int workload_data_idx) override |
|
void | beginDataRedistribution (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, SAMRAI::tbox::Pointer< SAMRAI::mesh::GriddingAlgorithm< NDIM > > gridding_alg) override |
|
void | endDataRedistribution (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, SAMRAI::tbox::Pointer< SAMRAI::mesh::GriddingAlgorithm< NDIM > > gridding_alg) override |
|
void | initializeLevelData (SAMRAI::tbox::Pointer< SAMRAI::hier::BasePatchHierarchy< NDIM > > hierarchy, int level_number, double init_data_time, bool can_be_refined, bool initial_time, SAMRAI::tbox::Pointer< SAMRAI::hier::BasePatchLevel< NDIM > > old_level, bool allocate_data) override |
|
void | resetHierarchyConfiguration (SAMRAI::tbox::Pointer< SAMRAI::hier::BasePatchHierarchy< NDIM > > hierarchy, int coarsest_level, int finest_level) override |
|
void | applyGradientDetector (SAMRAI::tbox::Pointer< SAMRAI::hier::BasePatchHierarchy< NDIM > > hierarchy, int level_number, double error_data_time, int tag_index, bool initial_time, bool uses_richardson_extrapolation_too) override |
|
void | putToDatabase (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > db) override |
|
| IBStrategy ()=default |
| Constructor.
|
|
virtual void | registerIBHierarchyIntegrator (IBHierarchyIntegrator *ib_solver) |
|
virtual void | inactivateLagrangianStructure (int structure_number=0, int level_number=std::numeric_limits< int >::max()) |
|
virtual void | activateLagrangianStructure (int structure_number=0, int level_number=std::numeric_limits< int >::max()) |
|
virtual bool | getLagrangianStructureIsActivated (int structure_number=0, int level_number=std::numeric_limits< int >::max()) const |
|
virtual double | getMaxPointDisplacement () const |
|
void | setUseFixedLEOperators (bool use_fixed_coupling_ops=true) |
|
virtual void | updateFixedLEOperators () |
|
virtual bool | hasFluidSources () const |
|
virtual void | computeLagrangianFluidSource (double data_time) |
|
virtual void | spreadFluidSource (int q_data_idx, IBTK::RobinPhysBdryPatchStrategy *q_phys_bdry_op, const std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineSchedule< NDIM > > > &q_prolongation_scheds, double data_time) |
|
virtual void | interpolatePressure (int p_data_idx, const std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenSchedule< NDIM > > > &p_synch_scheds, const std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineSchedule< NDIM > > > &p_ghost_fill_scheds, double data_time) |
|
virtual void | preprocessSolveFluidEquations (double current_time, double new_time, int cycle_num) |
|
virtual void | postprocessSolveFluidEquations (double current_time, double new_time, int cycle_num) |
|
virtual void | postprocessData () |
|
virtual void | registerLoadBalancer (SAMRAI::tbox::Pointer< SAMRAI::mesh::LoadBalancer< NDIM > > load_balancer, int workload_data_idx) |
|
void | initializeLevelData (SAMRAI::tbox::Pointer< SAMRAI::hier::BasePatchHierarchy< NDIM > > hierarchy, int level_number, double init_data_time, bool can_be_refined, bool initial_time, SAMRAI::tbox::Pointer< SAMRAI::hier::BasePatchLevel< NDIM > > old_level, bool allocate_data) override |
|
void | resetHierarchyConfiguration (SAMRAI::tbox::Pointer< SAMRAI::hier::BasePatchHierarchy< NDIM > > hierarchy, int coarsest_level, int finest_level) override |
|
void | applyGradientDetector (SAMRAI::tbox::Pointer< SAMRAI::hier::BasePatchHierarchy< NDIM > > hierarchy, int level_number, double error_data_time, int tag_index, bool initial_time, bool uses_richardson_extrapolation_too) override |
|
void | putToDatabase (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > db) override |
|
Public Member Functions inherited from SAMRAI::mesh::StandardTagAndInitStrategy< NDIM > |
virtual double | getLevelDt (const tbox::Pointer< hier::BasePatchLevel< NDIM > > level, const double dt_time, const bool initial_time) |
|
virtual double | advanceLevel (const tbox::Pointer< hier::BasePatchLevel< NDIM > > level, const tbox::Pointer< hier::BasePatchHierarchy< NDIM > > hierarchy, const double current_time, const double new_time, const bool first_step, const bool last_step, const bool regrid_advance=false) |
|
virtual void | resetTimeDependentData (const tbox::Pointer< hier::BasePatchLevel< NDIM > > level, const double new_time, const bool can_be_refined) |
|
virtual void | resetDataToPreadvanceState (const tbox::Pointer< hier::BasePatchLevel< NDIM > > level) |
|
virtual void | applyRichardsonExtrapolation (const tbox::Pointer< hier::PatchLevel< NDIM > > level, const double error_data_time, const int tag_index, const double deltat, const int error_coarsen_ratio, const bool initial_time, const bool uses_gradient_detector_too) |
|
virtual void | coarsenDataForRichardsonExtrapolation (const tbox::Pointer< hier::PatchHierarchy< NDIM > > hierarchy, const int level_number, const tbox::Pointer< hier::PatchLevel< NDIM > > coarser_level, const double coarsen_data_time, const bool before_advance) |
|
|
void | getPositionData (std::vector< SAMRAI::tbox::Pointer< IBTK::LData > > **X_data, double data_time) |
|
void | copyEulerianDataFromIntegrator (const std::string &var_name, int q_data_idx, double data_time) |
|
void | zeroOutEulerianData (const std::string &var_name, int q_data_idx) |
|
void | copyEulerianDataToIntegrator (const std::string &name, int q_data_idx, double data_time) |
|
void | getQData (const std::string &var_name, std::vector< SAMRAI::tbox::Pointer< IBTK::LData > > **Q_data, double data_time) |
|
void | computeCenterOfMass (IBTK::EigenAlignedVector< Eigen::Vector3d > ¢er_of_mass, std::vector< SAMRAI::tbox::Pointer< IBTK::LData > > &X_data) |
| Compute the center of mass of the mesh.
|
|
INSHierarchyIntegrator * | getINSHierarchyIntegrator () const |
|
SAMRAI::tbox::Pointer< SAMRAI::math::HierarchyDataOpsReal< NDIM, double > > | getVelocityHierarchyDataOps () const |
|
SAMRAI::tbox::Pointer< SAMRAI::math::HierarchyDataOpsReal< NDIM, double > > | getPressureHierarchyDataOps () const |
|
SAMRAI::tbox::Pointer< IBTK::HierarchyMathOps > | getHierarchyMathOps () const |
|
void | registerVariable (int ¤t_idx, int &new_idx, int &scratch_idx, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > variable, const SAMRAI::hier::IntVector< NDIM > &scratch_ghosts=SAMRAI::hier::IntVector< NDIM >(0), const std::string &coarsen_name="NO_COARSEN", const std::string &refine_name="NO_REFINE", SAMRAI::tbox::Pointer< IBTK::CartGridFunction > init_fcn=SAMRAI::tbox::Pointer< IBTK::CartGridFunction >(NULL)) |
|
void | registerVariable (int &idx, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > variable, const SAMRAI::hier::IntVector< NDIM > &ghosts=SAMRAI::hier::IntVector< NDIM >(0), SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContext > ctx=SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContext >(NULL)) |
|
void | registerGhostfillRefineAlgorithm (const std::string &name, SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineAlgorithm< NDIM > > ghostfill_alg, std::unique_ptr< SAMRAI::xfer::RefinePatchStrategy< NDIM > > ghostfill_patch_strategy=nullptr) |
|
void | registerProlongRefineAlgorithm (const std::string &name, SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineAlgorithm< NDIM > > prolong_alg, std::unique_ptr< SAMRAI::xfer::RefinePatchStrategy< NDIM > > prolong_patch_strategy=nullptr) |
|
void | registerCoarsenAlgorithm (const std::string &name, SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenAlgorithm< NDIM > > coarsen_alg, std::unique_ptr< SAMRAI::xfer::CoarsenPatchStrategy< NDIM > > coarsen_patch_strategy=nullptr) |
|
SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineAlgorithm< NDIM > > | getGhostfillRefineAlgorithm (const std::string &name) const |
|
SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineAlgorithm< NDIM > > | getProlongRefineAlgorithm (const std::string &name) const |
|
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenAlgorithm< NDIM > > | getCoarsenAlgorithm (const std::string &name) const |
|
const std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineSchedule< NDIM > > > & | getGhostfillRefineSchedules (const std::string &name) const |
|
const std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineSchedule< NDIM > > > & | getProlongRefineSchedules (const std::string &name) const |
|
const std::vector< SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenSchedule< NDIM > > > & | getCoarsenSchedules (const std::string &name) const |
|
Class IBInterpolantMethod is an implementation of the abstract base class IBStrategy that provides a simple functionality of interpolating and spreading scalar or vector-valued quantities to and from the moving IB structure on the background Cartesian grid.
This class does not provide direct support for fluid-structure interaction, but rather facilitates Eulerian-Lagrangian data management for LMesh.