IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
IBAMR::AdvDiffHierarchyIntegrator Class Reference

Class AdvDiffHierarchyIntegrator provides an abstract interface for a time integrator for advection-diffusion or advection-reaction-diffusion equations on an AMR grid hierarchy, along with basic data management for variables defined on that hierarchy. More...

#include </home/runner/work/IBAMR/IBAMR/include/ibamr/AdvDiffHierarchyIntegrator.h>

Inheritance diagram for IBAMR::AdvDiffHierarchyIntegrator:
Inheritance graph
[legend]

Public Types

using ResetPropertiesFcnPtr = void(*)(int property_idx, SAMRAI::tbox::Pointer< IBTK::HierarchyMathOps > hier_math_ops, int integrator_step, double time, bool initial_time, bool regrid_time, void *ctx)
 Function to reset variables registered by this integrator.
 
- Public Types inherited from IBTK::HierarchyIntegrator
using PreprocessIntegrateHierarchyCallbackFcnPtr = void(*)(double current_time, double new_time, int num_cycles, void *ctx)
 
using IntegrateHierarchyCallbackFcnPtr = void(*)(double current_time, double new_time, int cycle_num, void *ctx)
 
using PostprocessIntegrateHierarchyCallbackFcnPtr = void(*)(double current_time, double new_time, bool skip_synchronize_new_state_data, int num_cycles, void *ctx)
 
using ApplyGradientDetectorCallbackFcnPtr = void(*)(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, void *ctx)
 
using RegridHierarchyCallbackFcnPtr = void(*)(SAMRAI::tbox::Pointer< SAMRAI::hier::BasePatchHierarchy< NDIM > > hierarchy, double data_time, bool initial_time, void *ctx)
 

Public Member Functions

 ~AdvDiffHierarchyIntegrator ()
 
void setDefaultDiffusionTimeSteppingType (TimeSteppingType default_diffusion_time_stepping_type)
 
TimeSteppingType getDefaultDiffusionTimeSteppingType () const
 
void setDefaultConvectiveDifferencingType (ConvectiveDifferencingType default_convective_difference_form)
 
ConvectiveDifferencingType getDefaultConvectiveDifferencingType () const
 
virtual void registerAdvectionVelocity (SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > u_var)
 
void setAdvectionVelocityIsDivergenceFree (SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > u_var, bool is_div_free)
 
bool getAdvectionVelocityIsDivergenceFree (SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > u_var) const
 
void setAdvectionVelocityFunction (SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > u_var, SAMRAI::tbox::Pointer< IBTK::CartGridFunction > u_fcn)
 
SAMRAI::tbox::Pointer< IBTK::CartGridFunctiongetAdvectionVelocityFunction (SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > u_var) const
 
virtual void registerSourceTerm (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > F_var, const bool output_F=true)
 
void setSourceTermFunction (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > F_var, SAMRAI::tbox::Pointer< IBTK::CartGridFunction > F_fcn)
 
SAMRAI::tbox::Pointer< IBTK::CartGridFunctiongetSourceTermFunction (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > F_var) const
 
virtual void registerTransportedQuantity (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var, const bool output_Q=true)
 
void setAdvectionVelocity (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > u_var)
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > getAdvectionVelocity (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var) const
 
void setSourceTerm (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > F_var)
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > getSourceTerm (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var) const
 
void setDiffusionTimeSteppingType (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var, TimeSteppingType time_stepping_type)
 
TimeSteppingType getDiffusionTimeSteppingType (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var) const
 
void setConvectiveDifferencingType (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var, ConvectiveDifferencingType difference_form)
 
ConvectiveDifferencingType getConvectiveDifferencingType (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var) const
 
void setDiffusionCoefficient (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var, double kappa)
 
double getDiffusionCoefficient (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var) const
 
void registerDiffusionCoefficientVariable (SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > D_var)
 
void setDiffusionCoefficientFunction (SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > D_var, SAMRAI::tbox::Pointer< IBTK::CartGridFunction > D_fcn)
 
SAMRAI::tbox::Pointer< IBTK::CartGridFunctiongetDiffusionCoefficientFunction (SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > D_var) const
 
void setDiffusionCoefficientVariable (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > D_var)
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > getDiffusionCoefficientVariable (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var) const
 
bool isDiffusionCoefficientVariable (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var) const
 
void setDampingCoefficient (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var, double lambda)
 
double getDampingCoefficient (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var) const
 
void setInitialConditions (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var, SAMRAI::tbox::Pointer< IBTK::CartGridFunction > Q_init)
 
SAMRAI::tbox::Pointer< IBTK::CartGridFunctiongetInitialConditions (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var) const
 
void setPhysicalBcCoef (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var, SAMRAI::solv::RobinBcCoefStrategy< NDIM > *Q_bc_coef)
 
void setPhysicalBcCoefs (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var, const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &Q_bc_coef)
 
std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > getPhysicalBcCoefs (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var) const
 
void setHelmholtzSolver (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var, SAMRAI::tbox::Pointer< IBTK::PoissonSolver > helmholtz_solver)
 
SAMRAI::tbox::Pointer< IBTK::PoissonSolvergetHelmholtzSolver (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var)
 
void setHelmholtzSolversNeedInit ()
 
void setHelmholtzSolverNeedsInit (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var)
 
void setHelmholtzRHSOperator (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var, SAMRAI::tbox::Pointer< IBTK::LaplaceOperator > helmholtz_rhs_operator)
 
SAMRAI::tbox::Pointer< IBTK::LaplaceOperatorgetHelmholtzRHSOperator (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var)
 
void setHelmholtzRHSOperatorsNeedInit ()
 
void setHelmholtzRHSOperatorNeedsInit (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var)
 
void initializeHierarchyIntegrator (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, SAMRAI::tbox::Pointer< SAMRAI::mesh::GriddingAlgorithm< NDIM > > gridding_alg) override
 
void preprocessIntegrateHierarchy (double current_time, double new_time, int num_cycles=1) override
 
void registerResetFunction (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var, ResetPropertiesFcnPtr callback, void *ctx)
 Register a reset callback function for a specified variable.
 
void setResetPriority (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var, int priority)
 Set a reset priority for a particular variable. More...
 
std::vector< ResetPropertiesFcnPtrgetResetFunctions (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var) const
 Get the reset callback functions registered with this variable.
 
int getResetPriority (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > Q_var) const
 Get the reset priority for a particular variable.
 
- Public Member Functions inherited from IBTK::HierarchyIntegrator
 HierarchyIntegrator (std::string object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, bool register_for_restart)
 
 ~HierarchyIntegrator ()
 
const std::stringgetName () const
 
virtual void initializePatchHierarchy (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, SAMRAI::tbox::Pointer< SAMRAI::mesh::GriddingAlgorithm< NDIM > > gridding_alg)
 
virtual void advanceHierarchy (double dt)
 
double getMinimumTimeStepSize ()
 
double getMaximumTimeStepSize ()
 
void synchronizeHierarchyData (VariableContextType ctx_type)
 
void resetTimeDependentHierarchyData (double new_time)
 
void resetIntegratorToPreadvanceState ()
 
virtual void regridHierarchy ()
 
bool atRegridPoint () const
 
double getIntegratorTime () const
 
double getStartTime () const
 
double getEndTime () const
 
int getIntegratorStep () const
 
int getMaxIntegratorSteps () const
 
bool stepsRemaining () const
 
void updateWorkloadEstimates ()
 
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > getPatchHierarchy () const
 
SAMRAI::tbox::Pointer< SAMRAI::mesh::GriddingAlgorithm< NDIM > > getGriddingAlgorithm () const
 
virtual void registerLoadBalancer (SAMRAI::tbox::Pointer< SAMRAI::mesh::LoadBalancer< NDIM > > load_balancer)
 
int getWorkloadDataIndex () const
 
void registerVisItDataWriter (SAMRAI::tbox::Pointer< SAMRAI::appu::VisItDataWriter< NDIM > > visit_writer)
 
SAMRAI::tbox::Pointer< SAMRAI::appu::VisItDataWriter< NDIM > > getVisItDataWriter () const
 
void setupPlotData ()
 
virtual int getNumberOfCycles () const
 
virtual int getCurrentCycleNumber () const
 
virtual double getCurrentTimeStepSize () const
 
void integrateHierarchy (double current_time, double new_time, int cycle_num=0)
 
void skipCycle (double current_time, double new_time, int cycle_num=0)
 
virtual void postprocessIntegrateHierarchy (double current_time, double new_time, bool skip_synchronize_new_state_data, int num_cycles=1)
 
void registerPreprocessIntegrateHierarchyCallback (PreprocessIntegrateHierarchyCallbackFcnPtr callback, void *ctx=nullptr)
 
void registerIntegrateHierarchyCallback (IntegrateHierarchyCallbackFcnPtr callback, void *ctx=nullptr)
 
void registerPostprocessIntegrateHierarchyCallback (PostprocessIntegrateHierarchyCallbackFcnPtr callback, void *ctx=nullptr)
 
void registerApplyGradientDetectorCallback (ApplyGradientDetectorCallbackFcnPtr callback, void *ctx=nullptr)
 
void registerRegridHierarchyCallback (RegridHierarchyCallbackFcnPtr, void *ctx=nullptr)
 
void initializeCompositeHierarchyData (double init_data_time, bool initial_time)
 
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=SAMRAI::tbox::Pointer< SAMRAI::hier::BasePatchLevel< NDIM > >(NULL), bool allocate_data=true) 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
 
SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContextgetContext (VariableContextType ctx_type) const
 
SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContextgetCurrentContext () const
 
SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContextgetNewContext () const
 
SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContextgetScratchContext () const
 
SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContextgetPlotContext () const
 
bool isAllocatedPatchData (int data_idx, int coarsest_ln=invalid_level_number, int finest_ln=invalid_level_number) const
 
void allocatePatchData (int data_idx, double data_time, int coarsest_ln=invalid_level_number, int finest_ln=invalid_level_number) const
 
void deallocatePatchData (int data_idx, int coarsest_ln=invalid_level_number, int finest_ln=invalid_level_number) const
 
SAMRAI::tbox::Pointer< HierarchyMathOpsgetHierarchyMathOps () const
 
void registerVariable (int &current_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< CartGridFunction > init_fcn=SAMRAI::tbox::Pointer< CartGridFunction >(NULL), const bool register_for_restart=true)
 
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), const bool register_for_restart=true)
 
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)
 

Protected Member Functions

 AdvDiffHierarchyIntegrator (const std::string &object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, bool register_for_restart)
 
double getMaximumTimeStepSizeSpecialized () override
 
void initializeCompositeHierarchyDataSpecialized (double init_data_time, bool initial_time) override
 
void resetHierarchyConfigurationSpecialized (SAMRAI::tbox::Pointer< SAMRAI::hier::BasePatchHierarchy< NDIM > > hierarchy, int coarsest_level, int finest_level) override
 
void putToDatabaseSpecialized (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > db) override
 
void registerVariables ()
 
- Protected Member Functions inherited from IBTK::HierarchyIntegrator
virtual void integrateHierarchySpecialized (double current_time, double new_time, int cycle_num=0)=0
 
virtual void regridHierarchyBeginSpecialized ()
 
virtual void regridHierarchyEndSpecialized ()
 
virtual double getMinimumTimeStepSizeSpecialized ()
 
virtual void synchronizeHierarchyDataSpecialized (VariableContextType ctx_type)
 
virtual void resetTimeDependentHierarchyDataSpecialized (double new_time)
 
virtual void resetIntegratorToPreadvanceStateSpecialized ()
 
virtual bool atRegridPointSpecialized () const
 
virtual void setupPlotDataSpecialized ()
 
virtual void initializeLevelDataSpecialized (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)
 
virtual void applyGradientDetectorSpecialized (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)
 
virtual void addWorkloadEstimate (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, const int workload_data_idx)
 
virtual void executePreprocessIntegrateHierarchyCallbackFcns (double current_time, double new_time, int num_cycles)
 
virtual void executeIntegrateHierarchyCallbackFcns (double current_time, double new_time, int cycle_num)
 
virtual void executePostprocessIntegrateHierarchyCallbackFcns (double current_time, double new_time, bool skip_synchronize_new_state_data, int num_cycles)
 
virtual void executeApplyGradientDetectorCallbackFcns (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)
 
virtual void executeRegridHierarchyCallbackFcns (SAMRAI::tbox::Pointer< SAMRAI::hier::BasePatchHierarchy< NDIM > > hierarchy, double data_time, bool initial_time)
 
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
 
void registerChildHierarchyIntegrator (HierarchyIntegrator *child_integrator)
 
void registerParentHierarchyIntegrator (HierarchyIntegrator *parent_integrator)
 
SAMRAI::tbox::Pointer< HierarchyMathOpsbuildHierarchyMathOps (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy)
 
void setupTagBuffer (SAMRAI::tbox::Pointer< SAMRAI::mesh::GriddingAlgorithm< NDIM > > gridding_alg)
 
bool regriddingHierarchy () const
 
bool atRegridTimeStep () const
 

Protected Attributes

bool d_integrator_is_initialized = false
 
double d_cfl_max = 0.5
 
TimeSteppingType d_default_diffusion_time_stepping_type = TRAPEZOIDAL_RULE
 
ConvectiveDifferencingType d_default_convective_difference_form = CONSERVATIVE
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > > d_u_var
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >, bool > d_u_is_div_free
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >, SAMRAI::tbox::Pointer< IBTK::CartGridFunction > > d_u_fcn
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > > d_F_var
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >, SAMRAI::tbox::Pointer< IBTK::CartGridFunction > > d_F_fcn
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >, bool > d_F_output
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > > d_diffusion_coef_var
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > > d_diffusion_coef_rhs_var
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >, SAMRAI::tbox::Pointer< IBTK::CartGridFunction > > d_diffusion_coef_fcn
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > > d_diffusion_coef_rhs_map
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > > d_Q_var
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > > d_Q_rhs_var
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >, SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > > d_Q_u_map
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > > d_Q_F_map
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >, SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > > d_Q_Q_rhs_map
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >, TimeSteppingTyped_Q_diffusion_time_stepping_type
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >, ConvectiveDifferencingTyped_Q_difference_form
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >, double > d_Q_diffusion_coef
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >, SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > > d_Q_diffusion_coef_variable
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >, bool > d_Q_is_diffusion_coef_variable
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >, double > d_Q_damping_coef
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >, SAMRAI::tbox::Pointer< IBTK::CartGridFunction > > d_Q_init
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >, std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > > d_Q_bc_coef
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >, bool > d_Q_output
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >, std::vector< ResetPropertiesFcnPtr > > d_Q_reset_fcns
 
std::map< SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >, std::vector< void * > > d_Q_reset_fcns_ctx
 
std::vector< int > d_Q_reset_priority
 
SAMRAI::tbox::Pointer< SAMRAI::math::HierarchyCellDataOpsReal< NDIM, double > > d_hier_cc_data_ops
 
SAMRAI::tbox::Pointer< SAMRAI::math::HierarchySideDataOpsReal< NDIM, double > > d_hier_sc_data_ops
 
std::vector< SAMRAI::tbox::Pointer< IBTK::HierarchyGhostCellInterpolation > > d_hier_bdry_fill_ops
 
SAMRAI::tbox::Pointer< IBTK::HierarchyGhostCellInterpolationd_no_fill_op
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > > d_sol_vecs
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > > d_rhs_vecs
 
std::string d_helmholtz_solver_type
 
std::string d_helmholtz_precond_type
 
std::string d_helmholtz_sub_precond_type
 
SAMRAI::tbox::Pointer< SAMRAI::tbox::Databased_helmholtz_solver_db
 
SAMRAI::tbox::Pointer< SAMRAI::tbox::Databased_helmholtz_precond_db
 
SAMRAI::tbox::Pointer< SAMRAI::tbox::Databased_helmholtz_sub_precond_db
 
std::vector< SAMRAI::tbox::Pointer< IBTK::PoissonSolver > > d_helmholtz_solvers
 
std::vector< SAMRAI::tbox::Pointer< IBTK::LaplaceOperator > > d_helmholtz_rhs_ops
 
std::vector< bool > d_helmholtz_solvers_need_init
 
std::vector< bool > d_helmholtz_rhs_ops_need_init
 
int d_coarsest_reset_ln = IBTK::invalid_level_number
 
int d_finest_reset_ln = IBTK::invalid_level_number
 
- Protected Attributes inherited from IBTK::HierarchyIntegrator
std::string d_object_name
 
bool d_registered_for_restart = false
 
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > d_hierarchy
 
SAMRAI::tbox::Pointer< SAMRAI::mesh::GriddingAlgorithm< NDIM > > d_gridding_alg
 
SAMRAI::tbox::Pointer< SAMRAI::mesh::LoadBalancer< NDIM > > d_load_balancer
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > d_workload_var
 
int d_workload_idx = IBTK::invalid_index
 
bool d_hierarchy_is_initialized = false
 
bool d_may_need_to_reset_hierarchy_configuration = false
 
HierarchyIntegratord_parent_integrator = nullptr
 
std::set< HierarchyIntegrator * > d_child_integrators
 
SAMRAI::tbox::Pointer< SAMRAI::appu::VisItDataWriter< NDIM > > d_visit_writer
 
double d_integrator_time = std::numeric_limits<double>::quiet_NaN()
 
double d_start_time = 0.0
 
double d_end_time = std::numeric_limits<double>::max()
 
double d_dt_init = std::numeric_limits<double>::max()
 
double d_dt_min = 0.0
 
double d_dt_max = std::numeric_limits<double>::max()
 
double d_dt_growth_factor = 2.0
 
int d_integrator_step = 0
 
int d_max_integrator_steps = std::numeric_limits<int>::max()
 
std::deque< double > d_dt_previous
 
int d_num_cycles = 1
 
int d_current_num_cycles = -1
 
int d_current_cycle_num = -1
 
double d_current_dt = std::numeric_limits<double>::quiet_NaN()
 
int d_regrid_interval = 1
 
RegridMode d_regrid_mode = STANDARD
 
bool d_enable_logging = false
 
bool d_enable_logging_solver_iterations = false
 
std::string d_bdry_extrap_type = "LINEAR"
 
SAMRAI::tbox::Array< int > d_tag_buffer = { 0 }
 
SAMRAI::tbox::Pointer< HierarchyMathOpsd_hier_math_ops
 
bool d_manage_hier_math_ops = true
 
std::list< SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > > d_state_variables
 
std::list< SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > > d_scratch_variables
 
std::list< SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > > d_copy_scratch_to_current_fast
 
std::list< SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > > d_copy_scratch_to_current_slow
 
SAMRAI::hier::ComponentSelector d_current_data
 
SAMRAI::hier::ComponentSelector d_new_data
 
SAMRAI::hier::ComponentSelector d_scratch_data
 
SAMRAI::hier::ComponentSelector d_plot_data
 
std::map< SAMRAI::hier::Variable< NDIM > *, SAMRAI::tbox::Pointer< CartGridFunction > > d_state_var_init_fcns
 
SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContextd_current_context
 
SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContextd_new_context
 
SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContextd_scratch_context
 
SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContextd_plot_context
 
SAMRAI::hier::ComponentSelector d_fill_after_regrid_bc_idxs
 
SAMRAI::xfer::RefineAlgorithm< NDIM > d_fill_after_regrid_prolong_alg
 
std::unique_ptr< SAMRAI::xfer::RefinePatchStrategy< NDIM > > d_fill_after_regrid_phys_bdry_bc_op
 
std::vector< PreprocessIntegrateHierarchyCallbackFcnPtrd_preprocess_integrate_hierarchy_callbacks
 
std::vector< void * > d_preprocess_integrate_hierarchy_callback_ctxs
 
std::vector< IntegrateHierarchyCallbackFcnPtrd_integrate_hierarchy_callbacks
 
std::vector< void * > d_integrate_hierarchy_callback_ctxs
 
std::vector< PostprocessIntegrateHierarchyCallbackFcnPtrd_postprocess_integrate_hierarchy_callbacks
 
std::vector< void * > d_postprocess_integrate_hierarchy_callback_ctxs
 
std::vector< ApplyGradientDetectorCallbackFcnPtrd_apply_gradient_detector_callbacks
 
std::vector< void * > d_apply_gradient_detector_callback_ctxs
 
std::vector< RegridHierarchyCallbackFcnPtrd_regrid_hierarchy_callbacks
 
std::vector< void * > d_regrid_hierarchy_callback_ctxs
 

Additional Inherited Members

- Static Protected Attributes inherited from IBTK::HierarchyIntegrator
static const std::string SYNCH_CURRENT_DATA_ALG = "SYNCH_CURRENT_DATA"
 
static const std::string SYNCH_NEW_DATA_ALG = "SYNCH_NEW_DATA"
 

Detailed Description

Class AdvDiffHierarchyIntegrator provides an abstract interface for a time integrator for advection-diffusion or advection-reaction-diffusion equations on an AMR grid hierarchy, along with basic data management for variables defined on that hierarchy.

Constructor & Destructor Documentation

◆ ~AdvDiffHierarchyIntegrator()

IBAMR::AdvDiffHierarchyIntegrator::~AdvDiffHierarchyIntegrator ( )

The destructor for class AdvDiffHierarchyIntegrator unregisters the integrator object with the restart manager when the object is so registered.

◆ AdvDiffHierarchyIntegrator()

IBAMR::AdvDiffHierarchyIntegrator::AdvDiffHierarchyIntegrator ( const std::string object_name,
SAMRAI::tbox::Pointer< SAMRAI::tbox::Database input_db,
bool  register_for_restart 
)
protected

The constructor for class AdvDiffHierarchyIntegrator sets some default values, reads in configuration information from input and restart databases, and registers the integrator object with the restart manager when requested.

Member Function Documentation

◆ getAdvectionVelocity()

Pointer< FaceVariable< NDIM, double > > IBAMR::AdvDiffHierarchyIntegrator::getAdvectionVelocity ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var) const

Get the face-centered advection velocity being used with a particular cell-centered quantity.

◆ getAdvectionVelocityFunction()

Pointer< IBTK::CartGridFunction > IBAMR::AdvDiffHierarchyIntegrator::getAdvectionVelocityFunction ( SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  u_var) const

Get the IBTK::CartGridFunction object being used to specify the value of a particular advection velocity.

◆ getAdvectionVelocityIsDivergenceFree()

bool IBAMR::AdvDiffHierarchyIntegrator::getAdvectionVelocityIsDivergenceFree ( SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  u_var) const

Determine whether a particular advection velocity has been indicated to be discretely divergence free.

◆ getConvectiveDifferencingType()

ConvectiveDifferencingType IBAMR::AdvDiffHierarchyIntegrator::getConvectiveDifferencingType ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var) const

Get the convective differencing form for a quantity that has been registered with the hierarchy integrator.

◆ getDampingCoefficient()

double IBAMR::AdvDiffHierarchyIntegrator::getDampingCoefficient ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var) const

Get the scalar linear damping coefficient corresponding to a quantity that has been registered with the hierarchy integrator.

◆ getDefaultConvectiveDifferencingType()

ConvectiveDifferencingType IBAMR::AdvDiffHierarchyIntegrator::getDefaultConvectiveDifferencingType ( ) const

Get the default convective differencing form being used with registered quantities.

◆ getDefaultDiffusionTimeSteppingType()

TimeSteppingType IBAMR::AdvDiffHierarchyIntegrator::getDefaultDiffusionTimeSteppingType ( ) const

Get the default diffusion time stepping method being used with registered quantities.

◆ getDiffusionCoefficient()

double IBAMR::AdvDiffHierarchyIntegrator::getDiffusionCoefficient ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var) const

Get the constant scalar diffusion coefficient corresponding to a quantity that has been registered with the hierarchy integrator.

◆ getDiffusionCoefficientFunction()

Pointer< IBTK::CartGridFunction > IBAMR::AdvDiffHierarchyIntegrator::getDiffusionCoefficientFunction ( SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  D_var) const

Get the IBTK::CartGridFunction object being used to specify the value of a particular variable diffusion coefficient.

◆ getDiffusionCoefficientVariable()

Pointer< SideVariable< NDIM, double > > IBAMR::AdvDiffHierarchyIntegrator::getDiffusionCoefficientVariable ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var) const

Get the cell-centered variable diffusion coefficient being used with a particular cell-centered quantity.

◆ getDiffusionTimeSteppingType()

TimeSteppingType IBAMR::AdvDiffHierarchyIntegrator::getDiffusionTimeSteppingType ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var) const

Get the diffusion time integration scheme for a quantity that has been registered with the hierarchy integrator.

◆ getHelmholtzRHSOperator()

Pointer< LaplaceOperator > IBAMR::AdvDiffHierarchyIntegrator::getHelmholtzRHSOperator ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var)

Get the operator to use to evaluate the right-hand side for the Helmholtz solver (time-discretized diffusion equation).

◆ getHelmholtzSolver()

Pointer< PoissonSolver > IBAMR::AdvDiffHierarchyIntegrator::getHelmholtzSolver ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var)

Get the solver for the Helmholtz equation (time-discretized diffusion equation) used by this solver class.

◆ getInitialConditions()

Pointer< IBTK::CartGridFunction > IBAMR::AdvDiffHierarchyIntegrator::getInitialConditions ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var) const

Get the grid function being used to provide initial conditions for a quantity that has been registered with the hierarchy integrator.

◆ getMaximumTimeStepSizeSpecialized()

double IBAMR::AdvDiffHierarchyIntegrator::getMaximumTimeStepSizeSpecialized ( )
overrideprotectedvirtual

Return the maximum stable time step size.

Reimplemented from IBTK::HierarchyIntegrator.

Reimplemented in IBAMR::AdvDiffPredictorCorrectorHierarchyIntegrator.

◆ getPhysicalBcCoefs()

std::vector< RobinBcCoefStrategy< NDIM > * > IBAMR::AdvDiffHierarchyIntegrator::getPhysicalBcCoefs ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var) const

Get objects used to provide boundary conditions for a scalar- or vector-valued quantity that has been registered with the hierarchy integrator.

◆ getSourceTerm()

Pointer< CellVariable< NDIM, double > > IBAMR::AdvDiffHierarchyIntegrator::getSourceTerm ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var) const

Get the cell-centered source term being used with a particular cell-centered quantity.

◆ getSourceTermFunction()

Pointer< IBTK::CartGridFunction > IBAMR::AdvDiffHierarchyIntegrator::getSourceTermFunction ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  F_var) const

Get the IBTK::CartGridFunction object being used to specify the value of a particular source term.

◆ initializeCompositeHierarchyDataSpecialized()

void IBAMR::AdvDiffHierarchyIntegrator::initializeCompositeHierarchyDataSpecialized ( double  init_data_time,
bool  initial_time 
)
overrideprotectedvirtual

Initialize composite hierarchy data.

The method initializes variables that may require the full grid hierarchy to be already created.

Reimplemented from IBTK::HierarchyIntegrator.

◆ initializeHierarchyIntegrator()

void IBAMR::AdvDiffHierarchyIntegrator::initializeHierarchyIntegrator ( SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy,
SAMRAI::tbox::Pointer< SAMRAI::mesh::GriddingAlgorithm< NDIM > >  gridding_alg 
)
overridevirtual

Initialize the variables, basic communications algorithms, solvers, and other data structures used by this time integrator object.

This method is called automatically by initializePatchHierarchy() prior to the construction of the patch hierarchy. It is also possible for users to make an explicit call to initializeHierarchyIntegrator() prior to calling initializePatchHierarchy().

Implements IBTK::HierarchyIntegrator.

Reimplemented in IBAMR::BrinkmanAdvDiffSemiImplicitHierarchyIntegrator, IBAMR::AdvDiffSemiImplicitHierarchyIntegrator, and IBAMR::AdvDiffPredictorCorrectorHierarchyIntegrator.

◆ preprocessIntegrateHierarchy()

void IBAMR::AdvDiffHierarchyIntegrator::preprocessIntegrateHierarchy ( double  current_time,
double  new_time,
int  num_cycles = 1 
)
overridevirtual

◆ putToDatabaseSpecialized()

void IBAMR::AdvDiffHierarchyIntegrator::putToDatabaseSpecialized ( SAMRAI::tbox::Pointer< SAMRAI::tbox::Database db)
overrideprotectedvirtual

Write out specialized object state to the given database.

Reimplemented from IBTK::HierarchyIntegrator.

Reimplemented in IBAMR::AdvDiffSemiImplicitHierarchyIntegrator.

◆ registerAdvectionVelocity()

void IBAMR::AdvDiffHierarchyIntegrator::registerAdvectionVelocity ( SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  u_var)
virtual

Register a face-centered advection velocity to be used to advect cell-centered quantities by the hierarchy integrator.

Data management for the registered advection velocity will be handled by the hierarchy integrator.

If a function is not provided, it is the responsibility of the user to ensure that the current and new contexts are set correctly.

Note
By default, each registered advection velocity is assumed to be divergence free.

◆ registerDiffusionCoefficientVariable()

void IBAMR::AdvDiffHierarchyIntegrator::registerDiffusionCoefficientVariable ( SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  D_var)

Register a variable scalar diffusion coefficient corresponding to a quantity that has been registered with the hierarchy integrator.

◆ registerSourceTerm()

void IBAMR::AdvDiffHierarchyIntegrator::registerSourceTerm ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  F_var,
const bool  output_F = true 
)
virtual

Register a cell-centered source term. Can optionally turn off outputting the source.

Data management for the registered source term will be handled by the hierarchy integrator.

◆ registerTransportedQuantity()

void IBAMR::AdvDiffHierarchyIntegrator::registerTransportedQuantity ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var,
const bool  output_Q = true 
)
virtual

Register a cell-centered quantity to be advected and diffused by the hierarchy integrator. Can optionally turn off outputting the quantity.

Data management for the registered quantity will be handled by the hierarchy integrator.

Reimplemented in IBAMR::AdvDiffSemiImplicitHierarchyIntegrator, and IBAMR::BrinkmanAdvDiffSemiImplicitHierarchyIntegrator.

◆ registerVariables()

void IBAMR::AdvDiffHierarchyIntegrator::registerVariables ( )
protected

Standard variable registration.

◆ resetHierarchyConfigurationSpecialized()

void IBAMR::AdvDiffHierarchyIntegrator::resetHierarchyConfigurationSpecialized ( SAMRAI::tbox::Pointer< SAMRAI::hier::BasePatchHierarchy< NDIM > >  hierarchy,
int  coarsest_level,
int  finest_level 
)
overrideprotectedvirtual

Reset cached hierarchy dependent data.

Reimplemented from IBTK::HierarchyIntegrator.

Reimplemented in IBAMR::AdvDiffSemiImplicitHierarchyIntegrator, and IBAMR::AdvDiffPredictorCorrectorHierarchyIntegrator.

◆ setAdvectionVelocity()

void IBAMR::AdvDiffHierarchyIntegrator::setAdvectionVelocity ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var,
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  u_var 
)

Set the face-centered advection velocity to be used with a particular cell-centered quantity.

Note
The specified advection velocity must have been already registered with the hierarchy integrator.

◆ setAdvectionVelocityFunction()

void IBAMR::AdvDiffHierarchyIntegrator::setAdvectionVelocityFunction ( SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  u_var,
SAMRAI::tbox::Pointer< IBTK::CartGridFunction u_fcn 
)

Supply an IBTK::CartGridFunction object to specify the value of a particular advection velocity.

If a function is not provided, it is the responsibility of the user to ensure that the current and new contexts are set correctly.

◆ setAdvectionVelocityIsDivergenceFree()

void IBAMR::AdvDiffHierarchyIntegrator::setAdvectionVelocityIsDivergenceFree ( SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > >  u_var,
bool  is_div_free 
)

Indicate whether a particular advection velocity is discretely divergence free.

◆ setConvectiveDifferencingType()

void IBAMR::AdvDiffHierarchyIntegrator::setConvectiveDifferencingType ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var,
ConvectiveDifferencingType  difference_form 
)

Set the convective differencing form for a quantity that has been registered with the hierarchy integrator.

◆ setDampingCoefficient()

void IBAMR::AdvDiffHierarchyIntegrator::setDampingCoefficient ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var,
double  lambda 
)

Set the scalar linear damping coefficient corresponding to a quantity that has been registered with the hierarchy integrator.

◆ setDefaultConvectiveDifferencingType()

void IBAMR::AdvDiffHierarchyIntegrator::setDefaultConvectiveDifferencingType ( ConvectiveDifferencingType  default_convective_difference_form)

Set the default convective differencing form to use with registered quantities.

◆ setDefaultDiffusionTimeSteppingType()

void IBAMR::AdvDiffHierarchyIntegrator::setDefaultDiffusionTimeSteppingType ( TimeSteppingType  default_diffusion_time_stepping_type)

Set the default diffusion time stepping method to use with registered quantities.

◆ setDiffusionCoefficient()

void IBAMR::AdvDiffHierarchyIntegrator::setDiffusionCoefficient ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var,
double  kappa 
)

Set the constant scalar diffusion coefficient corresponding to a quantity that has been registered with the hierarchy integrator.

◆ setDiffusionCoefficientFunction()

void IBAMR::AdvDiffHierarchyIntegrator::setDiffusionCoefficientFunction ( SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  D_var,
SAMRAI::tbox::Pointer< IBTK::CartGridFunction D_fcn 
)

Supply an IBTK:CartGridFunction object to specify the value of a particular variable diffusion coefficient.

◆ setDiffusionCoefficientVariable()

void IBAMR::AdvDiffHierarchyIntegrator::setDiffusionCoefficientVariable ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var,
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > >  D_var 
)

Set the cell-centered variable diffusion coefficient to be used with a particular cell-centered quantity.

Note
The specified source term must have been already registered with the hierarchy integrator.

◆ setDiffusionTimeSteppingType()

void IBAMR::AdvDiffHierarchyIntegrator::setDiffusionTimeSteppingType ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var,
TimeSteppingType  time_stepping_type 
)

Set the diffusion time integration scheme for a quantity that has been registered with the hierarchy integrator.

◆ setHelmholtzRHSOperator()

void IBAMR::AdvDiffHierarchyIntegrator::setHelmholtzRHSOperator ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var,
SAMRAI::tbox::Pointer< IBTK::LaplaceOperator helmholtz_rhs_operator 
)

Register an operator to use to evaluate the right-hand side for the Helmholtz solver (time-discretized diffusion equation).

◆ setHelmholtzRHSOperatorNeedsInit()

void IBAMR::AdvDiffHierarchyIntegrator::setHelmholtzRHSOperatorNeedsInit ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var)

Indicate that the operator to evaluate the right-hand side for the Helmholtz solver should be (re-)initialized before the next time step.

◆ setHelmholtzRHSOperatorsNeedInit()

void IBAMR::AdvDiffHierarchyIntegrator::setHelmholtzRHSOperatorsNeedInit ( )

Indicate that all of the operators to evaluate the right-hand side for the Helmholtz solver should be (re-)initialized before the next time step.

◆ setHelmholtzSolver()

void IBAMR::AdvDiffHierarchyIntegrator::setHelmholtzSolver ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var,
SAMRAI::tbox::Pointer< IBTK::PoissonSolver helmholtz_solver 
)

Register a solver for the Helmholtz equation (time-discretized diffusion equation).

◆ setHelmholtzSolverNeedsInit()

void IBAMR::AdvDiffHierarchyIntegrator::setHelmholtzSolverNeedsInit ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var)

Indicate that the Helmholtz solver should be (re-)initialized before the next time step.

◆ setHelmholtzSolversNeedInit()

void IBAMR::AdvDiffHierarchyIntegrator::setHelmholtzSolversNeedInit ( )

Indicate that all of the Helmholtz solvers should be (re-)initialized before the next time step.

◆ setInitialConditions()

void IBAMR::AdvDiffHierarchyIntegrator::setInitialConditions ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var,
SAMRAI::tbox::Pointer< IBTK::CartGridFunction Q_init 
)

Set a grid function to provide initial conditions for a quantity that has been registered with the hierarchy integrator.

◆ setPhysicalBcCoef()

void IBAMR::AdvDiffHierarchyIntegrator::setPhysicalBcCoef ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var,
SAMRAI::solv::RobinBcCoefStrategy< NDIM > *  Q_bc_coef 
)

Set an object to provide boundary conditions for a scalar-valued quantity that has been registered with the hierarchy integrator.

See also
IBTK::muParserRobinBcCoefs

◆ setPhysicalBcCoefs()

void IBAMR::AdvDiffHierarchyIntegrator::setPhysicalBcCoefs ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var,
const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &  Q_bc_coef 
)

Set objects to provide boundary conditions for a vector-valued quantity that has been registered with the hierarchy integrator.

See also
IBTK::muParserRobinBcCoefs

◆ setResetPriority()

void IBAMR::AdvDiffHierarchyIntegrator::setResetPriority ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var,
int  priority 
)

Set a reset priority for a particular variable.

Note
Variables will be reset sequentially according to their priority, from lowest to highest. The reset functions registered to each variable will be called according to the order in which they were registered. If no priority is set for a variable, its reset functions will be called after those with priority, in no particular order.

◆ setSourceTerm()

void IBAMR::AdvDiffHierarchyIntegrator::setSourceTerm ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  Q_var,
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  F_var 
)

Set the cell-centered source term to be used with a particular cell-centered quantity.

Note
The specified source term must have been already registered with the hierarchy integrator.

◆ setSourceTermFunction()

void IBAMR::AdvDiffHierarchyIntegrator::setSourceTermFunction ( SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > >  F_var,
SAMRAI::tbox::Pointer< IBTK::CartGridFunction F_fcn 
)

Supply an IBTK::CartGridFunction object to specify the value of a particular source term.

Member Data Documentation

◆ d_cfl_max

double IBAMR::AdvDiffHierarchyIntegrator::d_cfl_max = 0.5
protected

Advective CFL condition.

◆ d_default_convective_difference_form

ConvectiveDifferencingType IBAMR::AdvDiffHierarchyIntegrator::d_default_convective_difference_form = CONSERVATIVE
protected

Default convective differencing type.

◆ d_default_diffusion_time_stepping_type

TimeSteppingType IBAMR::AdvDiffHierarchyIntegrator::d_default_diffusion_time_stepping_type = TRAPEZOIDAL_RULE
protected

Default diffusion time integration method.

◆ d_diffusion_coef_var

std::vector<SAMRAI::tbox::Pointer<SAMRAI::pdat::SideVariable<NDIM, double> > > IBAMR::AdvDiffHierarchyIntegrator::d_diffusion_coef_var
protected

Diffusion coefficient data

◆ d_F_var

std::vector<SAMRAI::tbox::Pointer<SAMRAI::pdat::CellVariable<NDIM, double> > > IBAMR::AdvDiffHierarchyIntegrator::d_F_var
protected

Source term data.

◆ d_Q_reset_fcns

std::map<SAMRAI::tbox::Pointer<SAMRAI::pdat::CellVariable<NDIM, double> >, std::vector<ResetPropertiesFcnPtr> > IBAMR::AdvDiffHierarchyIntegrator::d_Q_reset_fcns
protected

Objects to keep track of the resetting functions.

◆ d_Q_var

std::vector<SAMRAI::tbox::Pointer<SAMRAI::pdat::CellVariable<NDIM, double> > > IBAMR::AdvDiffHierarchyIntegrator::d_Q_var
protected

Transported quantities.

◆ d_u_var

std::vector<SAMRAI::tbox::Pointer<SAMRAI::pdat::FaceVariable<NDIM, double> > > IBAMR::AdvDiffHierarchyIntegrator::d_u_var
protected

Advection velocity data.


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