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

Class INSVCStaggeredConservativeHierarchyIntegrator provides a staggered-grid solver for the incompressible Navier-Stokes equations on an AMR grid hierarchy, with variable coefficients. More...

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

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

Public Member Functions

 INSVCStaggeredConservativeHierarchyIntegrator (std::string object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, bool register_for_restart=true)
 
 ~INSVCStaggeredConservativeHierarchyIntegrator ()=default
 
void initializeHierarchyIntegrator (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, SAMRAI::tbox::Pointer< SAMRAI::mesh::GriddingAlgorithm< NDIM > > gridding_alg) override
 
void initializePatchHierarchy (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 postprocessIntegrateHierarchy (double current_time, double new_time, bool skip_synchronize_new_state_data, int num_cycles=1) override
 
void removeNullSpace (const SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > &sol_vec)
 
void registerMassDensityBoundaryConditions (SAMRAI::solv::RobinBcCoefStrategy< NDIM > *rho_bc_coef) override
 
void registerMassDensityBoundaryConditions (const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &rho_sc_bc_coefs)
 
void registerMassDensitySourceTerm (SAMRAI::tbox::Pointer< IBTK::CartGridFunction > S_fcn)
 Supply a source term for the mass update equation. More...
 
int getNumberOfCycles () const override
 
SAMRAI::tbox::Pointer< ConvectiveOperatorgetConvectiveOperator () override
 
- Public Member Functions inherited from IBAMR::INSVCStaggeredHierarchyIntegrator
 INSVCStaggeredHierarchyIntegrator (std::string object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, bool register_for_restart=true)
 
 ~INSVCStaggeredHierarchyIntegrator ()
 
SAMRAI::tbox::Pointer< ConvectiveOperatorgetConvectiveOperator () override
 
SAMRAI::tbox::Pointer< IBTK::PoissonSolvergetVelocitySubdomainSolver () override
 
SAMRAI::tbox::Pointer< IBTK::PoissonSolvergetPressureSubdomainSolver () override
 
void setStokesSolver (SAMRAI::tbox::Pointer< StaggeredStokesSolver > stokes_solver)
 
SAMRAI::tbox::Pointer< StaggeredStokesSolvergetStokesSolver ()
 
void setStokesSolverNeedsInit ()
 
void removeNullSpace (const SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > &sol_vec)
 
void registerMassDensityVariable (SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > rho_var)
 
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > getMassDensityVariable () const
 
void registerViscosityVariable (SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > mu_var)
 
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > getViscosityVariable () const
 
void setDensityVCInterpolationType (const IBTK::VCInterpType vc_interp_type)
 
void setViscosityVCInterpolationType (const IBTK::VCInterpType vc_interp_type)
 
void registerResetFluidDensityFcn (ResetFluidPropertiesFcnPtr callback, void *ctx)
 Register function to reset fluid density.
 
void registerResetFluidViscosityFcn (ResetFluidPropertiesFcnPtr callback, void *ctx)
 Register function to reset fluid viscosity.
 
virtual void registerBrinkmanPenalizationStrategy (SAMRAI::tbox::Pointer< IBAMR::BrinkmanPenalizationStrategy > brinkman_force)
 Register BrinkmanPenalizationStrategy objects to add Brinkman penalization term in the momentum equation.
 
void registerMassDensityInitialConditions (SAMRAI::tbox::Pointer< IBTK::CartGridFunction > rho_init_fcn)
 Supply initial conditions for the density field, if maintained by the fluid integrator.
 
void registerViscosityInitialConditions (SAMRAI::tbox::Pointer< IBTK::CartGridFunction > mu_init_fcn)
 Supply initial conditions for the viscosity field, if maintained by the fluid integrator.
 
void registerViscosityBoundaryConditions (SAMRAI::solv::RobinBcCoefStrategy< NDIM > *mu_bc_coef)
 
void setTransportedViscosityVariable (SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > mu_adv_diff_var, unsigned int adv_diff_idx=0)
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > getTransportedViscosityVariable () const
 Get the transported viscosity variable that is being manintained by an advection-diffusion integrator.
 
int getLinearOperatorRhoPatchDataIndex () const
 Get the side-centered density patch data index, which will always be the newest one used in the linear operator i.e. rho_sc in rho_sc*u^{n+1} term. More...
 
bool rhoIsConstant () const
 Get whether or not density is constant.
 
bool muIsConstant () const
 Get whether or not viscosity is constant.
 
int getLinearOperatorMuPatchDataIndex () const
 Get the cell-centered viscosity patch data index, which will always be the newest one used in the linear operator. More...
 
int getInterpolatedLinearOperatorMuPatchDataIndex () const
 Get the interpolated viscosity patch data index, which will always be the newest one used in the linear operator. More...
 
SAMRAI::tbox::Array< double > getScalingFactor () const
 Get the scaling factor used for A, p and u_rhs.
 
SAMRAI::solv::RobinBcCoefStrategy< NDIM > * getViscosityBoundaryConditions () const
 Get the viscosity boundary conditions.
 
const std::vector< SAMRAI::tbox::Pointer< IBAMR::BrinkmanPenalizationStrategy > > & getBrinkmanPenalizationStrategy () const
 Get the Brinkman penalization objects registered with this class.
 
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > getOldVelocityVariable () const
 Get "old" velocity variable.
 
- Public Member Functions inherited from IBAMR::INSHierarchyIntegrator
 ~INSHierarchyIntegrator ()
 
void setViscousTimeSteppingType (TimeSteppingType viscous_time_stepping_type)
 
TimeSteppingType getViscousTimeSteppingType () const
 
void setConvectiveTimeSteppingType (TimeSteppingType convective_time_stepping_type)
 
TimeSteppingType getConvectiveTimeSteppingType () const
 
void setInitialConvectiveTimeSteppingType (TimeSteppingType init_convective_time_stepping_type) const
 
TimeSteppingType getInitialConvectiveTimeSteppingType () const
 
void registerAdvDiffHierarchyIntegrator (SAMRAI::tbox::Pointer< AdvDiffHierarchyIntegrator > adv_diff_hier_integrator)
 
void setStokesSpecifications (StokesSpecifications problem_coefs)
 
const StokesSpecificationsgetStokesSpecifications () const
 
void registerPhysicalBoundaryConditions (const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &bc_coefs)
 
virtual const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > & getVelocityBoundaryConditions () const
 
virtual SAMRAI::solv::RobinBcCoefStrategy< NDIM > * getPressureBoundaryConditions () const
 
void registerVelocityInitialConditions (SAMRAI::tbox::Pointer< IBTK::CartGridFunction > U_init)
 
void registerPressureInitialConditions (SAMRAI::tbox::Pointer< IBTK::CartGridFunction > P_init)
 
void registerBodyForceFunction (SAMRAI::tbox::Pointer< IBTK::CartGridFunction > F_fcn)
 
void registerFluidSourceFunction (SAMRAI::tbox::Pointer< IBTK::CartGridFunction > Q_fcn)
 
void registerVelocityDivergenceFunction (SAMRAI::tbox::Pointer< IBTK::CartGridFunction > Q_fcn)
 
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > getVelocityVariable () const
 
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > getPressureVariable () const
 
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > getBodyForceVariable () const
 
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > getFluidSourceVariable () const
 
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > getVelocityDivergenceVariable () const
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > getAdvectionVelocityVariable () const
 
std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > getIntermediateVelocityBoundaryConditions () const
 
SAMRAI::solv::RobinBcCoefStrategy< NDIM > * getProjectionBoundaryConditions () const
 
void setConvectiveOperatorType (const std::string &op_type)
 Set the convective operator type to be used by the solver.
 
const std::stringgetConvectiveOperatorType () const
 Get the convective operator type used by the solver.
 
void setConvectiveDifferencingType (ConvectiveDifferencingType difference_form)
 Set the convective differencing form to be used by the solver.
 
ConvectiveDifferencingType getConvectiveDifferencingType () const
 Get the convective differencing form used by the solver.
 
void setCreepingFlow (bool creeping_flow)
 Set whether the integrator solves the time-dependent (creeping) Stokes equations. Otherwise, the integrator solves the time-dependent Navier-Stokes equations.
 
bool getCreepingFlow () const
 Get whether the integrator solves the time-dependent (creeping) Stokes equations. Otherwise, the integrator solves the time-dependent Navier-Stokes equations.
 
void setConvectiveOperator (SAMRAI::tbox::Pointer< ConvectiveOperator > convective_op)
 
void setConvectiveOperatorNeedsInit ()
 
void setVelocitySubdomainSolver (SAMRAI::tbox::Pointer< IBTK::PoissonSolver > velocity_solver)
 
void setVelocitySubdomainSolverNeedsInit ()
 
void setPressureSubdomainSolver (SAMRAI::tbox::Pointer< IBTK::PoissonSolver > pressure_solver)
 
void setPressureSubdomainSolverNeedsInit ()
 
virtual double getCurrentCFLNumber () const
 
- 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 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 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)
 
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

void integrateHierarchySpecialized (double current_time, double new_time, int cycle_num=0) override
 
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) override
 
void resetHierarchyConfigurationSpecialized (SAMRAI::tbox::Pointer< SAMRAI::hier::BasePatchHierarchy< NDIM > > hierarchy, int coarsest_level, int finest_level) override
 
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) override
 
void setupPlotDataSpecialized () override
 
void regridProjection () override
 
- Protected Member Functions inherited from IBAMR::INSVCStaggeredHierarchyIntegrator
double getStableTimestep (SAMRAI::tbox::Pointer< SAMRAI::hier::Patch< NDIM > > patch) const override
 
void regridHierarchyBeginSpecialized () override
 
void regridHierarchyEndSpecialized () override
 
void initializeCompositeHierarchyDataSpecialized (double init_data_time, bool initial_time) override
 
void copySideToFace (const int U_fc_idx, const int U_sc_idx, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy)
 
- Protected Member Functions inherited from IBAMR::INSHierarchyIntegrator
 INSHierarchyIntegrator (std::string object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > U_var, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > P_var, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > F_var, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > Q_var, bool register_for_restart)
 
 INSHierarchyIntegrator (std::string object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > U_var, std::string U_default_coarsen_type, std::string U_default_refine_type, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > P_var, std::string P_default_coarsen_type, std::string P_default_refine_type, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > F_var, std::string F_default_coarsen_type, std::string F_default_refine_type, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > Q_var, std::string Q_default_coarsen_type, std::string Q_default_refine_type, bool register_for_restart)
 
virtual void updateCurrentCFLNumber (const int data_idx, const double dt)
 
double getMaximumTimeStepSizeSpecialized () override
 
double getStableTimestep (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchLevel< NDIM > > level) const
 
void putToDatabaseSpecialized (SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > db) override
 
- Protected Member Functions inherited from IBTK::HierarchyIntegrator
virtual double getMinimumTimeStepSizeSpecialized ()
 
virtual void synchronizeHierarchyDataSpecialized (VariableContextType ctx_type)
 
virtual void resetTimeDependentHierarchyDataSpecialized (double new_time)
 
virtual void resetIntegratorToPreadvanceStateSpecialized ()
 
virtual bool atRegridPointSpecialized () const
 
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
 

Additional Inherited Members

- Public Types inherited from IBAMR::INSVCStaggeredHierarchyIntegrator
using ResetFluidPropertiesFcnPtr = void(*)(int property_idx, SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > property_var, SAMRAI::tbox::Pointer< IBTK::HierarchyMathOps > hier_math_ops, int cycle_num, double time, double current_time, double new_time, void *ctx)
 Function to reset fluid density or viscosity if they are maintained 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)
 
- Protected Attributes inherited from IBAMR::INSVCStaggeredHierarchyIntegrator
double d_div_U_norm_1_pre = 0.0
 
double d_div_U_norm_2_pre = 0.0
 
double d_div_U_norm_oo_pre = 0.0
 
double d_div_U_norm_1_post = 0.0
 
double d_div_U_norm_2_post = 0.0
 
double d_div_U_norm_oo_post = 0.0
 
bool d_do_regrid_projection = false
 
SAMRAI::tbox::Pointer< SAMRAI::math::HierarchyCellDataOpsReal< NDIM, double > > d_hier_cc_data_ops
 
SAMRAI::tbox::Pointer< SAMRAI::math::HierarchyFaceDataOpsReal< NDIM, double > > d_hier_fc_data_ops
 
SAMRAI::tbox::Pointer< SAMRAI::math::HierarchySideDataOpsReal< NDIM, double > > d_hier_sc_data_ops
 
SAMRAI::tbox::Pointer< SAMRAI::math::HierarchyNodeDataOpsReal< NDIM, double > > d_hier_nc_data_ops
 
SAMRAI::tbox::Pointer< SAMRAI::math::HierarchyEdgeDataOpsReal< NDIM, double > > d_hier_ec_data_ops
 
SAMRAI::tbox::Pointer< StaggeredStokesPhysicalBoundaryHelperd_bc_helper
 
SAMRAI::tbox::Pointer< IBTK::SideDataSynchronizationd_side_synch_op
 
SAMRAI::tbox::Pointer< IBTK::HierarchyGhostCellInterpolationd_rho_bdry_bc_fill_op
 
SAMRAI::tbox::Pointer< IBTK::HierarchyGhostCellInterpolationd_mu_bdry_bc_fill_op
 
double d_rho_scale = 1.0
 
double d_mu_scale = 1.0
 
bool d_output_rho = false
 
bool d_output_mu = false
 
int d_coarsest_reset_ln
 
int d_finest_reset_ln
 
SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > d_U_scratch_vec
 
SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > d_U_rhs_vec
 
SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > d_U_adv_vec
 
SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > d_N_vec
 
SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > d_P_scratch_vec
 
SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > d_P_rhs_vec
 
SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > d_sol_vec
 
SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > d_rhs_vec
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > > d_nul_vecs
 
std::vector< SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > > d_U_nul_vecs
 
bool d_vectors_need_init
 
bool d_explicitly_remove_nullspace = false
 
std::string d_stokes_solver_type = StaggeredStokesSolverManager::UNDEFINED
 
std::string d_stokes_precond_type = StaggeredStokesSolverManager::UNDEFINED
 
SAMRAI::tbox::Pointer< SAMRAI::tbox::Databased_stokes_solver_db
 
SAMRAI::tbox::Pointer< SAMRAI::tbox::Databased_stokes_precond_db
 
SAMRAI::tbox::Pointer< StaggeredStokesSolverd_stokes_solver
 
bool d_stokes_solver_needs_init
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > d_U_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > d_U_old_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > d_U_cc_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > d_P_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > d_F_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > d_F_cc_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > d_N_old_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > d_Omega_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > d_Div_U_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > d_Omega_Norm_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > d_U_regrid_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > d_U_src_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > d_indicator_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > d_F_div_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > d_Q_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > d_EE_var
 
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > d_rho_var
 
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > d_mu_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > d_pressure_D_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > d_pressure_rhs_D_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > > d_velocity_D_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > > d_velocity_rhs_D_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > d_velocity_D_cc_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > d_velocity_C_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > d_velocity_L_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > d_velocity_rhs_C_var
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > d_N_full_var
 
std::string d_N_coarsen_type = "CONSERVATIVE_COARSEN"
 
std::string d_N_refine_type = "CONSERVATIVE_LINEAR_REFINE"
 
std::string d_mu_coarsen_type = "CONSERVATIVE_COARSEN"
 
std::string d_mu_refine_type = "CONSERVATIVE_LINEAR_REFINE"
 
std::string d_mu_bdry_extrap_type = "CONSTANT"
 
std::string d_rho_coarsen_type = "CONSERVATIVE_COARSEN"
 
std::string d_rho_refine_type = "CONSERVATIVE_LINEAR_REFINE"
 
std::string d_rho_bdry_extrap_type = "CONSTANT"
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::EdgeVariable< NDIM, double > > d_mu_interp_var
 
std::vector< ResetFluidPropertiesFcnPtrd_reset_rho_fcns
 
std::vector< ResetFluidPropertiesFcnPtrd_reset_mu_fcns
 
std::vector< void * > d_reset_rho_fcns_ctx
 
std::vector< void * > d_reset_mu_fcns_ctx
 
std::vector< SAMRAI::tbox::Pointer< IBAMR::BrinkmanPenalizationStrategy > > d_brinkman_force
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > d_temp_sc_var
 
int d_temp_sc_idx
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > d_temp_cc_var
 
int d_temp_cc_idx
 
int d_U_current_idx
 
int d_U_new_idx
 
int d_U_scratch_idx
 
int d_U_old_current_idx
 
int d_U_old_new_idx
 
int d_U_old_scratch_idx
 
int d_P_current_idx
 
int d_P_new_idx
 
int d_P_scratch_idx
 
int d_F_current_idx
 
int d_F_new_idx
 
int d_F_scratch_idx
 
int d_Q_current_idx
 
int d_Q_new_idx
 
int d_Q_scratch_idx
 
int d_N_old_current_idx
 
int d_N_old_new_idx
 
int d_N_old_scratch_idx
 
int d_mu_current_idx
 
int d_mu_new_idx
 
int d_mu_scratch_idx
 
int d_U_cc_idx
 
int d_F_cc_idx
 
int d_Omega_idx
 
int d_Div_U_idx
 
int d_EE_idx
 
int d_Omega_Norm_idx
 
int d_U_regrid_idx
 
int d_U_src_idx
 
int d_indicator_idx
 
int d_F_div_idx
 
int d_velocity_C_idx
 
int d_velocity_L_idx
 
int d_velocity_D_idx
 
int d_velocity_D_cc_idx
 
int d_pressure_D_idx
 
int d_velocity_rhs_C_idx
 
int d_velocity_rhs_D_idx
 
int d_pressure_rhs_D_idx
 
int d_mu_interp_idx
 
int d_N_full_idx
 
int d_mu_linear_op_idx
 
int d_mu_interp_linear_op_idx
 
int d_rho_linear_op_idx
 
bool d_rho_is_const = false
 
bool d_mu_is_const = false
 
IBTK::VCInterpType d_rho_vc_interp_type
 
IBTK::VCInterpType d_mu_vc_interp_type
 
SAMRAI::tbox::Array< double > d_A_scale
 
int d_precond_reinit_interval = 1
 
SAMRAI::tbox::Pointer< IBTK::CartGridFunctiond_rho_init_fcn
 
SAMRAI::tbox::Pointer< IBTK::CartGridFunctiond_mu_init_fcn
 
SAMRAI::solv::RobinBcCoefStrategy< NDIM > * d_mu_bc_coef = nullptr
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > d_mu_adv_diff_var
 
unsigned int d_mu_adv_diff_idx = 0
 
- Protected Attributes inherited from IBAMR::INSHierarchyIntegrator
bool d_integrator_is_initialized = false
 
TimeSteppingType d_viscous_time_stepping_type = TRAPEZOIDAL_RULE
 
TimeSteppingType d_convective_time_stepping_type = ADAMS_BASHFORTH
 
TimeSteppingType d_init_convective_time_stepping_type = MIDPOINT_RULE
 
StokesSpecifications d_problem_coefs
 
std::vector< SAMRAI::tbox::Pointer< AdvDiffHierarchyIntegrator > > d_adv_diff_hier_integrators
 
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > d_U_adv_diff_var
 
double d_cfl_current = std::numeric_limits<double>::quiet_NaN()
 
double d_cfl_max = 1.0
 
bool d_using_vorticity_tagging = false
 
SAMRAI::tbox::Array< double > d_Omega_rel_thresh
 
SAMRAI::tbox::Array< double > d_Omega_abs_thresh
 
double d_Omega_max = 0.0
 
bool d_normalize_pressure = false
 
bool d_normalize_velocity = false
 
bool d_creeping_flow = false
 
double d_regrid_max_div_growth_factor = 1.1
 
double d_U_scale = 1.0
 
double d_P_scale = 1.0
 
double d_F_scale = 1.0
 
double d_Q_scale = 1.0
 
double d_Omega_scale = 1.0
 
double d_Div_U_scale = 1.0
 
double d_EE_scale = 1.0
 
bool d_output_U = true
 
bool d_output_P = true
 
bool d_output_F = false
 
bool d_output_Q = false
 
bool d_output_Omega = true
 
bool d_output_Div_U = true
 
bool d_output_EE = false
 
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > d_U_var
 
std::string d_U_coarsen_type = "CONSERVATIVE_COARSEN"
 
std::string d_U_refine_type = "CONSERVATIVE_LINEAR_REFINE"
 
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > d_P_var
 
std::string d_P_coarsen_type = "CONSERVATIVE_COARSEN"
 
std::string d_P_refine_type = "LINEAR_REFINE"
 
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > d_F_var
 
std::string d_F_coarsen_type = "CONSERVATIVE_COARSEN"
 
std::string d_F_refine_type = "CONSERVATIVE_LINEAR_REFINE"
 
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > d_Q_var
 
std::string d_Q_coarsen_type = "CONSERVATIVE_COARSEN"
 
std::string d_Q_refine_type = "CONSTANT_REFINE"
 
SAMRAI::tbox::Pointer< IBTK::CartGridFunctiond_U_init
 
SAMRAI::tbox::Pointer< IBTK::CartGridFunctiond_P_init
 
SAMRAI::solv::LocationIndexRobinBcCoefs< NDIM > d_default_bc_coefs
 
std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > d_bc_coefs
 
std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > d_U_bc_coefs
 
std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > d_U_star_bc_coefs
 
TractionBcType d_traction_bc_type = TRACTION
 
SAMRAI::solv::RobinBcCoefStrategy< NDIM > * d_P_bc_coef
 
std::unique_ptr< SAMRAI::solv::RobinBcCoefStrategy< NDIM > > d_Phi_bc_coef
 
SAMRAI::tbox::Pointer< IBTK::CartGridFunctiond_F_fcn
 
SAMRAI::tbox::Pointer< IBTK::CartGridFunctiond_Q_fcn
 
SAMRAI::tbox::Pointer< IBTK::HierarchyGhostCellInterpolationd_U_bdry_bc_fill_op
 
SAMRAI::tbox::Pointer< IBTK::HierarchyGhostCellInterpolationd_P_bdry_bc_fill_op
 
SAMRAI::tbox::Pointer< IBTK::HierarchyGhostCellInterpolationd_Q_bdry_bc_fill_op
 
SAMRAI::tbox::Pointer< IBTK::HierarchyGhostCellInterpolationd_no_fill_op
 
bool d_use_div_sink_drag_term = false
 
int d_coarsest_reset_ln
 
int d_finest_reset_ln
 
std::string d_convective_op_type = "DEFAULT"
 
ConvectiveDifferencingType d_convective_difference_form = ADVECTIVE
 
SAMRAI::tbox::Pointer< SAMRAI::tbox::Databased_convective_op_input_db
 
SAMRAI::tbox::Pointer< ConvectiveOperatord_convective_op
 
bool d_convective_op_needs_init
 
std::string d_velocity_solver_type
 
std::string d_velocity_precond_type
 
std::string d_velocity_sub_precond_type
 
SAMRAI::tbox::Pointer< SAMRAI::tbox::Databased_velocity_solver_db
 
SAMRAI::tbox::Pointer< SAMRAI::tbox::Databased_velocity_precond_db
 
SAMRAI::tbox::Pointer< SAMRAI::tbox::Databased_velocity_sub_precond_db
 
SAMRAI::tbox::Pointer< IBTK::PoissonSolverd_velocity_solver
 
bool d_velocity_solver_needs_init
 
std::string d_pressure_solver_type
 
std::string d_pressure_precond_type
 
std::string d_pressure_sub_precond_type
 
SAMRAI::tbox::Pointer< SAMRAI::tbox::Databased_pressure_solver_db
 
SAMRAI::tbox::Pointer< SAMRAI::tbox::Databased_pressure_precond_db
 
SAMRAI::tbox::Pointer< SAMRAI::tbox::Databased_pressure_sub_precond_db
 
SAMRAI::tbox::Pointer< IBTK::PoissonSolverd_pressure_solver
 
bool d_pressure_solver_needs_init
 
std::string d_regrid_projection_solver_type
 
std::string d_regrid_projection_precond_type
 
std::string d_regrid_projection_sub_precond_type
 
SAMRAI::tbox::Pointer< SAMRAI::tbox::Databased_regrid_projection_solver_db
 
SAMRAI::tbox::Pointer< SAMRAI::tbox::Databased_regrid_projection_precond_db
 
SAMRAI::tbox::Pointer< SAMRAI::tbox::Databased_regrid_projection_sub_precond_db
 
- 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
 
- 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 INSVCStaggeredConservativeHierarchyIntegrator provides a staggered-grid solver for the incompressible Navier-Stokes equations on an AMR grid hierarchy, with variable coefficients.

This class integrates the conservative form of the momentum equation $(\frac{\partial \rho u}{\partial t} + N(\rho u)) = -\nabla p + \nabla \cdot \mu (\nabla u) + (\nabla u)^T )$ where $ N(u) = \nabla \cdot (\rho u u) $.

In other words, the class treats the left-hand side of the momentum equation in conservative form. This class is specialized to use INSVCStaggeredConservativeMassMomentumIntegrator, which produces an update for the newest density by solving the mass transport equation $ \frac{\partial \rho}{\partial t} + \nabla \cdot (\rho u) = 0 $. Therefore, the density variable must be registered and maintained by this class, and not by any other integrator (such AdvDiffHierarchyIntegrator). It is also assumed that this density variable is side-centered. In other words, given a density at the beginning of the time step $\rho^n$, an interpolated face density $\rho^{n+\frac{1}{2}}$ is produced and used in the momentum convection to obtain $N(\rho u)$ and mass advection to obtain $\rho^{n+1}$. Hence, a consistent momentum and mass transport is carried out, which leads to stable solutions for high-density ratio flows.

Constructor & Destructor Documentation

◆ INSVCStaggeredConservativeHierarchyIntegrator()

IBAMR::INSVCStaggeredConservativeHierarchyIntegrator::INSVCStaggeredConservativeHierarchyIntegrator ( std::string  object_name,
SAMRAI::tbox::Pointer< SAMRAI::tbox::Database input_db,
bool  register_for_restart = true 
)

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

◆ ~INSVCStaggeredConservativeHierarchyIntegrator()

IBAMR::INSVCStaggeredConservativeHierarchyIntegrator::~INSVCStaggeredConservativeHierarchyIntegrator ( )
default

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

Member Function Documentation

◆ applyGradientDetectorSpecialized()

void IBAMR::INSVCStaggeredConservativeHierarchyIntegrator::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 
)
overrideprotectedvirtual

Set integer tags to "one" in cells where refinement of the given level should occur according to the magnitude of the fluid vorticity.

Reimplemented from IBAMR::INSVCStaggeredHierarchyIntegrator.

◆ getConvectiveOperator()

Pointer< ConvectiveOperator > IBAMR::INSVCStaggeredConservativeHierarchyIntegrator::getConvectiveOperator ( )
overridevirtual

Get the convective operator being used by the integrator class.

Note
The class employs INSVCStaggeredConservativeMassMomentumIntegrator to compute the conservative convective derivative. Therefore, ConvectiveOperator is a NULL object.

Implements IBAMR::INSHierarchyIntegrator.

◆ getNumberOfCycles()

int IBAMR::INSVCStaggeredConservativeHierarchyIntegrator::getNumberOfCycles ( ) const
overridevirtual

Returns the number of cycles to perform for the present time step.

Reimplemented from IBAMR::INSHierarchyIntegrator.

◆ initializeHierarchyIntegrator()

void IBAMR::INSVCStaggeredConservativeHierarchyIntegrator::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().

Reimplemented from IBAMR::INSVCStaggeredHierarchyIntegrator.

◆ initializeLevelDataSpecialized()

void IBAMR::INSVCStaggeredConservativeHierarchyIntegrator::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 
)
overrideprotectedvirtual

Initialize data on a new level after it is inserted into an AMR patch hierarchy by the gridding algorithm.

Reimplemented from IBAMR::INSVCStaggeredHierarchyIntegrator.

◆ initializePatchHierarchy()

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

Initialize the AMR patch hierarchy and data defined on the hierarchy at the start of a computation. If the computation is begun from a restart file, the patch hierarchy and patch data are read from the hierarchy database. Otherwise, the patch hierarchy and patch data are initialized by the gridding algorithm associated with the integrator object.

The implementation of this function assumes that the hierarchy exists upon entry to the function, but that it contains no patch levels. On return from this function, the state of the integrator object will be such that it is possible to step through time via the advanceHierarchy() function.

Reimplemented from IBAMR::INSVCStaggeredHierarchyIntegrator.

◆ integrateHierarchySpecialized()

void IBAMR::INSVCStaggeredConservativeHierarchyIntegrator::integrateHierarchySpecialized ( double  current_time,
double  new_time,
int  cycle_num = 0 
)
overrideprotectedvirtual

Synchronously advance each level in the hierarchy over the given time increment.

Implements IBTK::HierarchyIntegrator.

◆ postprocessIntegrateHierarchy()

void IBAMR::INSVCStaggeredConservativeHierarchyIntegrator::postprocessIntegrateHierarchy ( double  current_time,
double  new_time,
bool  skip_synchronize_new_state_data,
int  num_cycles = 1 
)
overridevirtual

Clean up data following call(s) to integrateHierarchy().

Reimplemented from IBAMR::INSVCStaggeredHierarchyIntegrator.

◆ preprocessIntegrateHierarchy()

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

Prepare to advance the data from current_time to new_time.

Reimplemented from IBAMR::INSVCStaggeredHierarchyIntegrator.

◆ registerMassDensitySourceTerm()

void IBAMR::INSVCStaggeredConservativeHierarchyIntegrator::registerMassDensitySourceTerm ( SAMRAI::tbox::Pointer< IBTK::CartGridFunction S_fcn)

Supply a source term for the mass update equation.

Note
Current implementation is used only to check order of accuracy via a manufactured solution.

◆ regridProjection()

void IBAMR::INSVCStaggeredConservativeHierarchyIntegrator::regridProjection ( )
overrideprotectedvirtual

Project the velocity field following a regridding operation.

Implements IBAMR::INSHierarchyIntegrator.

◆ removeNullSpace()

void IBAMR::INSVCStaggeredConservativeHierarchyIntegrator::removeNullSpace ( const SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > &  sol_vec)

Explicitly remove nullspace components from a solution vector.

◆ resetHierarchyConfigurationSpecialized()

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

Reset cached hierarchy dependent data.

Reimplemented from IBAMR::INSVCStaggeredHierarchyIntegrator.

◆ setupPlotDataSpecialized()

void IBAMR::INSVCStaggeredConservativeHierarchyIntegrator::setupPlotDataSpecialized ( )
overrideprotectedvirtual

Prepare variables for plotting.

Reimplemented from IBAMR::INSVCStaggeredHierarchyIntegrator.


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