IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
|
Class AdvDiffHierarchyIntegrator provides an abstract interface for a time integrator for advection-diffusion or advection-reaction-diffusion equations on an AMR grid hierarchy, along with basic data management for variables defined on that hierarchy. More...
#include </home/runner/work/IBAMR/IBAMR/include/ibamr/AdvDiffHierarchyIntegrator.h>
Public Types | |
using | ResetPropertiesFcnPtr = void(*)(int property_idx, SAMRAI::tbox::Pointer< IBTK::HierarchyMathOps > hier_math_ops, int integrator_step, double time, bool initial_time, bool regrid_time, void *ctx) |
Function to reset variables registered by this integrator. | |
Public Types inherited from IBTK::HierarchyIntegrator | |
using | PreprocessIntegrateHierarchyCallbackFcnPtr = void(*)(double current_time, double new_time, int num_cycles, void *ctx) |
using | IntegrateHierarchyCallbackFcnPtr = void(*)(double current_time, double new_time, int cycle_num, void *ctx) |
using | PostprocessIntegrateHierarchyCallbackFcnPtr = void(*)(double current_time, double new_time, bool skip_synchronize_new_state_data, int num_cycles, void *ctx) |
using | ApplyGradientDetectorCallbackFcnPtr = void(*)(SAMRAI::tbox::Pointer< SAMRAI::hier::BasePatchHierarchy< NDIM > > hierarchy, int level_number, double error_data_time, int tag_index, bool initial_time, bool uses_richardson_extrapolation_too, void *ctx) |
using | RegridHierarchyCallbackFcnPtr = void(*)(SAMRAI::tbox::Pointer< SAMRAI::hier::BasePatchHierarchy< NDIM > > hierarchy, double data_time, bool initial_time, void *ctx) |
Additional Inherited Members | |
Static Protected Attributes inherited from IBTK::HierarchyIntegrator | |
static const std::string | SYNCH_CURRENT_DATA_ALG = "SYNCH_CURRENT_DATA" |
static const std::string | SYNCH_NEW_DATA_ALG = "SYNCH_NEW_DATA" |
Class AdvDiffHierarchyIntegrator provides an abstract interface for a time integrator for advection-diffusion or advection-reaction-diffusion equations on an AMR grid hierarchy, along with basic data management for variables defined on that hierarchy.
IBAMR::AdvDiffHierarchyIntegrator::~AdvDiffHierarchyIntegrator | ( | ) |
The destructor for class AdvDiffHierarchyIntegrator unregisters the integrator object with the restart manager when the object is so registered.
|
protected |
The constructor for class AdvDiffHierarchyIntegrator sets some default values, reads in configuration information from input and restart databases, and registers the integrator object with the restart manager when requested.
Pointer< FaceVariable< NDIM, double > > IBAMR::AdvDiffHierarchyIntegrator::getAdvectionVelocity | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var | ) | const |
Get the face-centered advection velocity being used with a particular cell-centered quantity.
Pointer< IBTK::CartGridFunction > IBAMR::AdvDiffHierarchyIntegrator::getAdvectionVelocityFunction | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > | u_var | ) | const |
Get the IBTK::CartGridFunction object being used to specify the value of a particular advection velocity.
bool IBAMR::AdvDiffHierarchyIntegrator::getAdvectionVelocityIsDivergenceFree | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > | u_var | ) | const |
Determine whether a particular advection velocity has been indicated to be discretely divergence free.
ConvectiveDifferencingType IBAMR::AdvDiffHierarchyIntegrator::getConvectiveDifferencingType | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var | ) | const |
Get the convective differencing form for a quantity that has been registered with the hierarchy integrator.
double IBAMR::AdvDiffHierarchyIntegrator::getDampingCoefficient | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var | ) | const |
Get the scalar linear damping coefficient corresponding to a quantity that has been registered with the hierarchy integrator.
ConvectiveDifferencingType IBAMR::AdvDiffHierarchyIntegrator::getDefaultConvectiveDifferencingType | ( | ) | const |
Get the default convective differencing form being used with registered quantities.
TimeSteppingType IBAMR::AdvDiffHierarchyIntegrator::getDefaultDiffusionTimeSteppingType | ( | ) | const |
Get the default diffusion time stepping method being used with registered quantities.
double IBAMR::AdvDiffHierarchyIntegrator::getDiffusionCoefficient | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var | ) | const |
Get the constant scalar diffusion coefficient corresponding to a quantity that has been registered with the hierarchy integrator.
Pointer< IBTK::CartGridFunction > IBAMR::AdvDiffHierarchyIntegrator::getDiffusionCoefficientFunction | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > | D_var | ) | const |
Get the IBTK::CartGridFunction object being used to specify the value of a particular variable diffusion coefficient.
Pointer< SideVariable< NDIM, double > > IBAMR::AdvDiffHierarchyIntegrator::getDiffusionCoefficientVariable | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var | ) | const |
Get the cell-centered variable diffusion coefficient being used with a particular cell-centered quantity.
TimeSteppingType IBAMR::AdvDiffHierarchyIntegrator::getDiffusionTimeSteppingType | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var | ) | const |
Get the diffusion time integration scheme for a quantity that has been registered with the hierarchy integrator.
Pointer< LaplaceOperator > IBAMR::AdvDiffHierarchyIntegrator::getHelmholtzRHSOperator | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var | ) |
Get the operator to use to evaluate the right-hand side for the Helmholtz solver (time-discretized diffusion equation).
Pointer< PoissonSolver > IBAMR::AdvDiffHierarchyIntegrator::getHelmholtzSolver | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var | ) |
Get the solver for the Helmholtz equation (time-discretized diffusion equation) used by this solver class.
Pointer< IBTK::CartGridFunction > IBAMR::AdvDiffHierarchyIntegrator::getInitialConditions | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var | ) | const |
Get the grid function being used to provide initial conditions for a quantity that has been registered with the hierarchy integrator.
|
overrideprotectedvirtual |
Return the maximum stable time step size.
Reimplemented from IBTK::HierarchyIntegrator.
Reimplemented in IBAMR::AdvDiffPredictorCorrectorHierarchyIntegrator.
std::vector< RobinBcCoefStrategy< NDIM > * > IBAMR::AdvDiffHierarchyIntegrator::getPhysicalBcCoefs | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var | ) | const |
Get objects used to provide boundary conditions for a scalar- or vector-valued quantity that has been registered with the hierarchy integrator.
Pointer< CellVariable< NDIM, double > > IBAMR::AdvDiffHierarchyIntegrator::getSourceTerm | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var | ) | const |
Get the cell-centered source term being used with a particular cell-centered quantity.
Pointer< IBTK::CartGridFunction > IBAMR::AdvDiffHierarchyIntegrator::getSourceTermFunction | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | F_var | ) | const |
Get the IBTK::CartGridFunction object being used to specify the value of a particular source term.
|
overrideprotectedvirtual |
Initialize composite hierarchy data.
The method initializes variables that may require the full grid hierarchy to be already created.
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.
Reimplemented in IBAMR::BrinkmanAdvDiffSemiImplicitHierarchyIntegrator, IBAMR::AdvDiffSemiImplicitHierarchyIntegrator, and IBAMR::AdvDiffPredictorCorrectorHierarchyIntegrator.
|
overridevirtual |
Prepare to advance the data from current_time to new_time.
Reimplemented from IBTK::HierarchyIntegrator.
Reimplemented in IBAMR::BrinkmanAdvDiffSemiImplicitHierarchyIntegrator, IBAMR::AdvDiffSemiImplicitHierarchyIntegrator, and IBAMR::AdvDiffPredictorCorrectorHierarchyIntegrator.
|
overrideprotectedvirtual |
Write out specialized object state to the given database.
Reimplemented from IBTK::HierarchyIntegrator.
Reimplemented in IBAMR::AdvDiffSemiImplicitHierarchyIntegrator.
|
virtual |
Register a face-centered advection velocity to be used to advect cell-centered quantities by the hierarchy integrator.
Data management for the registered advection velocity will be handled by the hierarchy integrator.
If a function is not provided, it is the responsibility of the user to ensure that the current and new contexts are set correctly.
void IBAMR::AdvDiffHierarchyIntegrator::registerDiffusionCoefficientVariable | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > | D_var | ) |
Register a variable scalar diffusion coefficient corresponding to a quantity that has been registered with the hierarchy integrator.
|
virtual |
Register a cell-centered source term. Can optionally turn off outputting the source.
Data management for the registered source term will be handled by the hierarchy integrator.
|
virtual |
Register a cell-centered quantity to be advected and diffused by the hierarchy integrator. Can optionally turn off outputting the quantity.
Data management for the registered quantity will be handled by the hierarchy integrator.
Reimplemented in IBAMR::AdvDiffSemiImplicitHierarchyIntegrator, and IBAMR::BrinkmanAdvDiffSemiImplicitHierarchyIntegrator.
|
protected |
Standard variable registration.
|
overrideprotectedvirtual |
Reset cached hierarchy dependent data.
Reimplemented from IBTK::HierarchyIntegrator.
Reimplemented in IBAMR::AdvDiffSemiImplicitHierarchyIntegrator, and IBAMR::AdvDiffPredictorCorrectorHierarchyIntegrator.
void IBAMR::AdvDiffHierarchyIntegrator::setAdvectionVelocity | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var, |
SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > | u_var | ||
) |
Set the face-centered advection velocity to be used with a particular cell-centered quantity.
void IBAMR::AdvDiffHierarchyIntegrator::setAdvectionVelocityFunction | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > | u_var, |
SAMRAI::tbox::Pointer< IBTK::CartGridFunction > | u_fcn | ||
) |
Supply an IBTK::CartGridFunction object to specify the value of a particular advection velocity.
If a function is not provided, it is the responsibility of the user to ensure that the current and new contexts are set correctly.
void IBAMR::AdvDiffHierarchyIntegrator::setAdvectionVelocityIsDivergenceFree | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::FaceVariable< NDIM, double > > | u_var, |
bool | is_div_free | ||
) |
Indicate whether a particular advection velocity is discretely divergence free.
void IBAMR::AdvDiffHierarchyIntegrator::setConvectiveDifferencingType | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var, |
ConvectiveDifferencingType | difference_form | ||
) |
Set the convective differencing form for a quantity that has been registered with the hierarchy integrator.
void IBAMR::AdvDiffHierarchyIntegrator::setDampingCoefficient | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var, |
double | lambda | ||
) |
Set the scalar linear damping coefficient corresponding to a quantity that has been registered with the hierarchy integrator.
void IBAMR::AdvDiffHierarchyIntegrator::setDefaultConvectiveDifferencingType | ( | ConvectiveDifferencingType | default_convective_difference_form | ) |
Set the default convective differencing form to use with registered quantities.
void IBAMR::AdvDiffHierarchyIntegrator::setDefaultDiffusionTimeSteppingType | ( | TimeSteppingType | default_diffusion_time_stepping_type | ) |
Set the default diffusion time stepping method to use with registered quantities.
void IBAMR::AdvDiffHierarchyIntegrator::setDiffusionCoefficient | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var, |
double | kappa | ||
) |
Set the constant scalar diffusion coefficient corresponding to a quantity that has been registered with the hierarchy integrator.
void IBAMR::AdvDiffHierarchyIntegrator::setDiffusionCoefficientFunction | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > | D_var, |
SAMRAI::tbox::Pointer< IBTK::CartGridFunction > | D_fcn | ||
) |
Supply an IBTK:CartGridFunction object to specify the value of a particular variable diffusion coefficient.
void IBAMR::AdvDiffHierarchyIntegrator::setDiffusionCoefficientVariable | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var, |
SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > | D_var | ||
) |
Set the cell-centered variable diffusion coefficient to be used with a particular cell-centered quantity.
void IBAMR::AdvDiffHierarchyIntegrator::setDiffusionTimeSteppingType | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var, |
TimeSteppingType | time_stepping_type | ||
) |
Set the diffusion time integration scheme for a quantity that has been registered with the hierarchy integrator.
void IBAMR::AdvDiffHierarchyIntegrator::setHelmholtzRHSOperator | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var, |
SAMRAI::tbox::Pointer< IBTK::LaplaceOperator > | helmholtz_rhs_operator | ||
) |
Register an operator to use to evaluate the right-hand side for the Helmholtz solver (time-discretized diffusion equation).
void IBAMR::AdvDiffHierarchyIntegrator::setHelmholtzRHSOperatorNeedsInit | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var | ) |
Indicate that the operator to evaluate the right-hand side for the Helmholtz solver should be (re-)initialized before the next time step.
void IBAMR::AdvDiffHierarchyIntegrator::setHelmholtzRHSOperatorsNeedInit | ( | ) |
Indicate that all of the operators to evaluate the right-hand side for the Helmholtz solver should be (re-)initialized before the next time step.
void IBAMR::AdvDiffHierarchyIntegrator::setHelmholtzSolver | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var, |
SAMRAI::tbox::Pointer< IBTK::PoissonSolver > | helmholtz_solver | ||
) |
Register a solver for the Helmholtz equation (time-discretized diffusion equation).
void IBAMR::AdvDiffHierarchyIntegrator::setHelmholtzSolverNeedsInit | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var | ) |
Indicate that the Helmholtz solver should be (re-)initialized before the next time step.
void IBAMR::AdvDiffHierarchyIntegrator::setHelmholtzSolversNeedInit | ( | ) |
Indicate that all of the Helmholtz solvers should be (re-)initialized before the next time step.
void IBAMR::AdvDiffHierarchyIntegrator::setInitialConditions | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var, |
SAMRAI::tbox::Pointer< IBTK::CartGridFunction > | Q_init | ||
) |
Set a grid function to provide initial conditions for a quantity that has been registered with the hierarchy integrator.
void IBAMR::AdvDiffHierarchyIntegrator::setPhysicalBcCoef | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var, |
SAMRAI::solv::RobinBcCoefStrategy< NDIM > * | Q_bc_coef | ||
) |
Set an object to provide boundary conditions for a scalar-valued quantity that has been registered with the hierarchy integrator.
void IBAMR::AdvDiffHierarchyIntegrator::setPhysicalBcCoefs | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var, |
const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > & | Q_bc_coef | ||
) |
Set objects to provide boundary conditions for a vector-valued quantity that has been registered with the hierarchy integrator.
void IBAMR::AdvDiffHierarchyIntegrator::setResetPriority | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var, |
int | priority | ||
) |
Set a reset priority for a particular variable.
void IBAMR::AdvDiffHierarchyIntegrator::setSourceTerm | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | Q_var, |
SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | F_var | ||
) |
Set the cell-centered source term to be used with a particular cell-centered quantity.
void IBAMR::AdvDiffHierarchyIntegrator::setSourceTermFunction | ( | SAMRAI::tbox::Pointer< SAMRAI::pdat::CellVariable< NDIM, double > > | F_var, |
SAMRAI::tbox::Pointer< IBTK::CartGridFunction > | F_fcn | ||
) |
Supply an IBTK::CartGridFunction object to specify the value of a particular source term.
|
protected |
Advective CFL condition.
|
protected |
Default convective differencing type.
|
protected |
Default diffusion time integration method.
|
protected |
Diffusion coefficient data
|
protected |
Source term data.
|
protected |
Objects to keep track of the resetting functions.
|
protected |
Transported quantities.
|
protected |
Advection velocity data.