IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
|
Class INSCollocatedHierarchyIntegrator provides a collocated projection method-based solver for the incompressible Navier-Stokes equations on an AMR grid hierarchy. More...
#include </home/runner/work/IBAMR/IBAMR/include/ibamr/INSCollocatedHierarchyIntegrator.h>
Additional Inherited Members | |
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::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::CartGridFunction > | d_U_init |
SAMRAI::tbox::Pointer< IBTK::CartGridFunction > | d_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::CartGridFunction > | d_F_fcn |
SAMRAI::tbox::Pointer< IBTK::CartGridFunction > | d_Q_fcn |
SAMRAI::tbox::Pointer< IBTK::HierarchyGhostCellInterpolation > | d_U_bdry_bc_fill_op |
SAMRAI::tbox::Pointer< IBTK::HierarchyGhostCellInterpolation > | d_P_bdry_bc_fill_op |
SAMRAI::tbox::Pointer< IBTK::HierarchyGhostCellInterpolation > | d_Q_bdry_bc_fill_op |
SAMRAI::tbox::Pointer< IBTK::HierarchyGhostCellInterpolation > | d_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::Database > | d_convective_op_input_db |
SAMRAI::tbox::Pointer< ConvectiveOperator > | d_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::Database > | d_velocity_solver_db |
SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > | d_velocity_precond_db |
SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > | d_velocity_sub_precond_db |
SAMRAI::tbox::Pointer< IBTK::PoissonSolver > | d_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::Database > | d_pressure_solver_db |
SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > | d_pressure_precond_db |
SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > | d_pressure_sub_precond_db |
SAMRAI::tbox::Pointer< IBTK::PoissonSolver > | d_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::Database > | d_regrid_projection_solver_db |
SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > | d_regrid_projection_precond_db |
SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > | d_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 |
HierarchyIntegrator * | d_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< HierarchyMathOps > | d_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::VariableContext > | d_current_context |
SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContext > | d_new_context |
SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContext > | d_scratch_context |
SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContext > | d_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< PreprocessIntegrateHierarchyCallbackFcnPtr > | d_preprocess_integrate_hierarchy_callbacks |
std::vector< void * > | d_preprocess_integrate_hierarchy_callback_ctxs |
std::vector< IntegrateHierarchyCallbackFcnPtr > | d_integrate_hierarchy_callbacks |
std::vector< void * > | d_integrate_hierarchy_callback_ctxs |
std::vector< PostprocessIntegrateHierarchyCallbackFcnPtr > | d_postprocess_integrate_hierarchy_callbacks |
std::vector< void * > | d_postprocess_integrate_hierarchy_callback_ctxs |
std::vector< ApplyGradientDetectorCallbackFcnPtr > | d_apply_gradient_detector_callbacks |
std::vector< void * > | d_apply_gradient_detector_callback_ctxs |
std::vector< RegridHierarchyCallbackFcnPtr > | d_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" |
Class INSCollocatedHierarchyIntegrator provides a collocated projection method-based solver for the incompressible Navier-Stokes equations on an AMR grid hierarchy.
IBAMR::INSCollocatedHierarchyIntegrator::INSCollocatedHierarchyIntegrator | ( | std::string | object_name, |
SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > | input_db, | ||
bool | register_for_restart = true |
||
) |
The constructor for class INSCollocatedHierarchyIntegrator sets some default values, reads in configuration information from input and restart databases, and registers the integrator object with the restart manager when requested.
IBAMR::INSCollocatedHierarchyIntegrator::~INSCollocatedHierarchyIntegrator | ( | ) |
The destructor for class INSCollocatedHierarchyIntegrator unregisters the integrator object with the restart manager when the object is so registered.
|
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 IBTK::HierarchyIntegrator.
|
overridevirtual |
Get the convective operator being used by this solver class.
If the time integrator is configured to solve the time-dependent (creeping) Stokes equations, then the returned pointer will be NULL.
If the convective operator has not already been constructed, and if the time integrator is not configured to solve the time-dependent (creeping) Stokes equations, then this function will initialize the default type of convective operator, which may be set in the class input database.
Implements IBAMR::INSHierarchyIntegrator.
|
overridevirtual |
Get the subdomain solver for the pressure subsystem. Such solvers can be useful in constructing block preconditioners.
Implements IBAMR::INSHierarchyIntegrator.
|
overrideprotectedvirtual |
Determine the largest stable timestep on an individual patch.
Implements IBAMR::INSHierarchyIntegrator.
|
overridevirtual |
Get the subdomain solver for the velocity subsystem. Such solvers can be useful in constructing block preconditioners.
Implements IBAMR::INSHierarchyIntegrator.
|
overrideprotectedvirtual |
Perform data initialization after the entire hierarchy has been constructed.
Reimplemented from IBTK::HierarchyIntegrator.
|
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.
|
overrideprotectedvirtual |
Initialize data on a new level after it is inserted into an AMR patch hierarchy by the gridding algorithm.
Reimplemented from IBTK::HierarchyIntegrator.
|
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 IBTK::HierarchyIntegrator.
|
overrideprotectedvirtual |
Synchronously advance each level in the hierarchy over the given time increment.
Implements IBTK::HierarchyIntegrator.
|
overridevirtual |
Clean up data following call(s) to integrateHierarchy().
Reimplemented from IBAMR::INSHierarchyIntegrator.
|
overridevirtual |
Prepare to advance the data from current_time to new_time.
Reimplemented from IBTK::HierarchyIntegrator.
|
overrideprotectedvirtual |
Project the velocity field following a regridding operation.
Implements IBAMR::INSHierarchyIntegrator.
|
overrideprotectedvirtual |
Reset cached hierarchy dependent data.
Reimplemented from IBTK::HierarchyIntegrator.
|
overrideprotectedvirtual |
Prepare variables for plotting.
Reimplemented from IBTK::HierarchyIntegrator.