IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
|
Class IBImplicitStaggeredHierarchyIntegrator is an implementation of a formally second-order accurate, nonlinearly-implicit version of the immersed boundary method. More...
#include </home/runner/work/IBAMR/IBAMR/include/ibamr/IBImplicitStaggeredHierarchyIntegrator.h>
Protected Attributes | |
SAMRAI::tbox::Pointer< IBImplicitStrategy > | d_ib_implicit_ops |
Protected Attributes inherited from IBAMR::IBHierarchyIntegrator | |
bool | d_integrator_is_initialized = false |
TimeSteppingType | d_time_stepping_type = MIDPOINT_RULE |
bool | d_use_structure_predictor |
bool | d_error_on_dt_change = true |
bool | d_warn_on_dt_change = false |
SAMRAI::tbox::Pointer< INSHierarchyIntegrator > | d_ins_hier_integrator |
double | d_regrid_fluid_cfl_interval = -1.0 |
double | d_regrid_structure_cfl_interval = -1.0 |
double | d_regrid_fluid_cfl_estimate = 0.0 |
double | d_regrid_structure_cfl_estimate = 0.0 |
SAMRAI::tbox::Pointer< IBStrategy > | d_ib_method_ops |
SAMRAI::tbox::Pointer< SAMRAI::math::HierarchyDataOpsReal< NDIM, double > > | d_hier_velocity_data_ops |
SAMRAI::tbox::Pointer< SAMRAI::math::HierarchyDataOpsReal< NDIM, double > > | d_hier_pressure_data_ops |
SAMRAI::tbox::Pointer< SAMRAI::math::HierarchyCellDataOpsReal< NDIM, double > > | d_hier_cc_data_ops |
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > | d_u_var |
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > | d_p_var |
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > | d_f_var |
SAMRAI::tbox::Pointer< SAMRAI::hier::Variable< NDIM > > | d_q_var |
int | d_u_idx = IBTK::invalid_index |
int | d_p_idx = IBTK::invalid_index |
int | d_f_idx = IBTK::invalid_index |
int | d_f_current_idx = IBTK::invalid_index |
int | d_q_idx = IBTK::invalid_index |
SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContext > | d_ib_context |
SAMRAI::hier::ComponentSelector | d_ib_data |
IBTK::RobinPhysBdryPatchStrategy * | d_u_phys_bdry_op |
IBTK::RobinPhysBdryPatchStrategy * | d_p_phys_bdry_op |
SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineAlgorithm< NDIM > > | d_u_ghostfill_alg |
SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineAlgorithm< NDIM > > | d_f_prolong_alg |
SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineAlgorithm< NDIM > > | d_p_ghostfill_alg |
SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineAlgorithm< NDIM > > | d_q_prolong_alg |
SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineOperator< NDIM > > | d_u_ghostfill_op |
SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineOperator< NDIM > > | d_f_prolong_op |
SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineOperator< NDIM > > | d_p_ghostfill_op |
SAMRAI::tbox::Pointer< SAMRAI::xfer::RefineOperator< NDIM > > | d_q_prolong_op |
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenAlgorithm< NDIM > > | d_u_coarsen_alg |
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenAlgorithm< NDIM > > | d_p_coarsen_alg |
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenOperator< NDIM > > | d_u_coarsen_op |
SAMRAI::tbox::Pointer< SAMRAI::xfer::CoarsenOperator< NDIM > > | d_p_coarsen_op |
SAMRAI::tbox::Pointer< IBTK::CartGridFunction > | d_body_force_fcn |
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 |
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) |
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 IBImplicitStaggeredHierarchyIntegrator is an implementation of a formally second-order accurate, nonlinearly-implicit version of the immersed boundary method.
IBAMR::IBImplicitStaggeredHierarchyIntegrator::IBImplicitStaggeredHierarchyIntegrator | ( | const std::string & | object_name, |
SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > | input_db, | ||
SAMRAI::tbox::Pointer< IBImplicitStrategy > | ib_method_ops, | ||
SAMRAI::tbox::Pointer< INSStaggeredHierarchyIntegrator > | ins_hier_integrator, | ||
bool | register_for_restart = true |
||
) |
The constructor for class IBImplicitStaggeredHierarchyIntegrator sets some default values, reads in configuration information from input and restart databases, and registers the integrator object with the restart manager when requested.
|
default |
The destructor for class IBImplicitStaggeredHierarchyIntegrator unregisters the integrator object with the restart manager when the object is so registered.
|
overridevirtual |
Returns the number of cycles to perform for the present time step.
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().
Reimplemented from IBAMR::IBHierarchyIntegrator.
|
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::IBHierarchyIntegrator.
|
overridevirtual |
Prepare to advance the data from current_time to new_time.
Reimplemented from IBAMR::IBHierarchyIntegrator.
|
overrideprotectedvirtual |
Write out specialized object state to the given database.
Reimplemented from IBAMR::IBHierarchyIntegrator.