IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
|
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>
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< StaggeredStokesPhysicalBoundaryHelper > | d_bc_helper |
SAMRAI::tbox::Pointer< IBTK::SideDataSynchronization > | d_side_synch_op |
SAMRAI::tbox::Pointer< IBTK::HierarchyGhostCellInterpolation > | d_rho_bdry_bc_fill_op |
SAMRAI::tbox::Pointer< IBTK::HierarchyGhostCellInterpolation > | d_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::Database > | d_stokes_solver_db |
SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > | d_stokes_precond_db |
SAMRAI::tbox::Pointer< StaggeredStokesSolver > | d_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< ResetFluidPropertiesFcnPtr > | d_reset_rho_fcns |
std::vector< ResetFluidPropertiesFcnPtr > | d_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::CartGridFunction > | d_rho_init_fcn |
SAMRAI::tbox::Pointer< IBTK::CartGridFunction > | d_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::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 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 where .
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 . 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 , an interpolated face density is produced and used in the momentum convection to obtain and mass advection to obtain . Hence, a consistent momentum and mass transport is carried out, which leads to stable solutions for high-density ratio flows.
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.
|
default |
The destructor for class INSVCStaggeredConservativeHierarchyIntegrator 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 IBAMR::INSVCStaggeredHierarchyIntegrator.
|
overridevirtual |
Get the convective operator being used by the integrator class.
Implements IBAMR::INSHierarchyIntegrator.
|
overridevirtual |
Returns the number of cycles to perform for the present time step.
Reimplemented from IBAMR::INSHierarchyIntegrator.
|
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.
|
overrideprotectedvirtual |
Initialize data on a new level after it is inserted into an AMR patch hierarchy by the gridding algorithm.
Reimplemented from IBAMR::INSVCStaggeredHierarchyIntegrator.
|
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.
|
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::INSVCStaggeredHierarchyIntegrator.
|
overridevirtual |
Prepare to advance the data from current_time to new_time.
Reimplemented from IBAMR::INSVCStaggeredHierarchyIntegrator.
void IBAMR::INSVCStaggeredConservativeHierarchyIntegrator::registerMassDensitySourceTerm | ( | SAMRAI::tbox::Pointer< IBTK::CartGridFunction > | S_fcn | ) |
Supply a source term for the mass update equation.
|
overrideprotectedvirtual |
Project the velocity field following a regridding operation.
Implements IBAMR::INSHierarchyIntegrator.
void IBAMR::INSVCStaggeredConservativeHierarchyIntegrator::removeNullSpace | ( | const SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > & | sol_vec | ) |
Explicitly remove nullspace components from a solution vector.
|
overrideprotectedvirtual |
Reset cached hierarchy dependent data.
Reimplemented from IBAMR::INSVCStaggeredHierarchyIntegrator.
|
overrideprotectedvirtual |
Prepare variables for plotting.
Reimplemented from IBAMR::INSVCStaggeredHierarchyIntegrator.