Class CIBStaggeredStokesSolver is an extension of IBAMR::StaggeredStokesSolver class that solves for the Langrange multiplier field \( \vec{\lambda} \) which imposes the rigidity constraint and solves for rigid body velocity (if it is freely-moving) along with the fluid velocity and pressure.
#include <ibamr/CIBStaggeredStokesSolver.h>
|
| | CIBStaggeredStokesSolver (const std::string &object_name, SAMRAI::tbox::Pointer< SAMRAI::tbox::Database > input_db, SAMRAI::tbox::Pointer< IBAMR::INSStaggeredHierarchyIntegrator > navier_stokes_integrator, SAMRAI::tbox::Pointer< IBAMR::CIBStrategy > cib_strategy, const std::string &default_options_prefix) |
| | Constructor. More...
|
| |
| | ~CIBStaggeredStokesSolver () |
| | Destructor. More...
|
| |
| virtual void | initializeSolverState (const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &x, const SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &b) override |
| |
| virtual void | deallocateSolverState () override |
| |
| virtual bool | solveSystem (SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &x, SAMRAI::solv::SAMRAIVectorReal< NDIM, double > &b) override |
| | Solve the system of equations. More...
|
| |
| virtual void | setVelocityPoissonSpecifications (const SAMRAI::solv::PoissonSpecifications &u_problem_coefs) override |
| | Set the PoissonSpecifications object used to specify the coefficients for the momentum equation in the incompressible Stokes operator. More...
|
| |
| virtual void | setPhysicalBcCoefs (const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &u_bc_coefs, SAMRAI::solv::RobinBcCoefStrategy< NDIM > *p_bc_coef) override |
| | Set the SAMRAI::solv::RobinBcCoefStrategy objects used to specify physical boundary conditions. More...
|
| |
| virtual void | setPhysicalBoundaryHelper (SAMRAI::tbox::Pointer< StaggeredStokesPhysicalBoundaryHelper > bc_helper) override |
| | Set the StaggeredStokesPhysicalBoundaryHelper object to be used in the StokesOperator. More...
|
| |
| virtual void | setSolutionTime (double solution_time) override |
| | Set the time at which the solution is to be evaluated. More...
|
| |
| virtual void | setTimeInterval (double current_time, double new_time) override |
| | Set the current time interval. More...
|
| |
| SAMRAI::tbox::Pointer< IBAMR::CIBSaddlePointSolver > | getSaddlePointSolver () const |
| | Get the saddle-point solver for the extended Stokes system. More...
|
| |
| virtual void | setComponentsHaveNullSpace (const bool has_velocity_nullspace, const bool has_pressure_nullspace) |
| | Set if velocity and pressure have nullspace. More...
|
| |
◆ CIBStaggeredStokesSolver() [1/2]
◆ ~CIBStaggeredStokesSolver()
| IBAMR::CIBStaggeredStokesSolver::~CIBStaggeredStokesSolver |
( |
| ) |
|
◆ CIBStaggeredStokesSolver() [2/2]
- Note
- This constructor is not implemented and should not be used.
- Parameters
-
| from | The value to copy to this object. |
◆ initializeSolverState()
Initialize the solver before solving the system of equations.
Reimplemented from IBTK::GeneralSolver.
◆ deallocateSolverState()
| virtual void IBAMR::CIBStaggeredStokesSolver::deallocateSolverState |
( |
| ) |
|
|
overridevirtual |
◆ solveSystem()
- Returns
true if the solver converged to the specified tolerances, false otherwise.
Implements IBTK::GeneralSolver.
◆ setVelocityPoissonSpecifications()
◆ setPhysicalBcCoefs()
- Note
- Any of the elements of u_bc_coefs may be nullptr. In this case, homogeneous Dirichlet boundary conditions are employed for that data depth. P_bc_coef may also be nullptr; in that case, homogeneous Neumann boundary conditions are employed for the pressure.
- Parameters
-
| u_bc_coefs | Vector of pointers to objects that can set the Robin boundary condition coefficients for the velocity. |
| p_bc_coef | Pointer to object that can set the Robin boundary condition coefficients for the pressure. |
Reimplemented from IBAMR::StaggeredStokesSolver.
◆ setPhysicalBoundaryHelper()
◆ setSolutionTime()
| virtual void IBAMR::CIBStaggeredStokesSolver::setSolutionTime |
( |
double |
solution_time | ) |
|
|
overridevirtual |
◆ setTimeInterval()
| virtual void IBAMR::CIBStaggeredStokesSolver::setTimeInterval |
( |
double |
current_time, |
|
|
double |
new_time |
|
) |
| |
|
overridevirtual |
◆ getSaddlePointSolver()
◆ operator=()
- Note
- This operator is not implemented and should not be used.
- Parameters
-
| that | The value to assign to this object. |
- Returns
- A reference to this object.
◆ setComponentsHaveNullSpace()
| virtual void IBAMR::StaggeredStokesSolver::setComponentsHaveNullSpace |
( |
const bool |
has_velocity_nullspace, |
|
|
const bool |
has_pressure_nullspace |
|
) |
| |
|
virtualinherited |
◆ getName()
| const std::string& IBTK::GeneralSolver::getName |
( |
| ) |
const |
|
inherited |
◆ getIsInitialized()
| virtual bool IBTK::GeneralSolver::getIsInitialized |
( |
| ) |
const |
|
virtualinherited |
◆ setHomogeneousBc()
| virtual void IBTK::GeneralSolver::setHomogeneousBc |
( |
bool |
homogeneous_bc | ) |
|
|
virtualinherited |
◆ getHomogeneousBc()
| virtual bool IBTK::GeneralSolver::getHomogeneousBc |
( |
| ) |
const |
|
virtualinherited |
◆ getSolutionTime()
| virtual double IBTK::GeneralSolver::getSolutionTime |
( |
| ) |
const |
|
virtualinherited |
◆ getTimeInterval()
| virtual std::pair<double, double> IBTK::GeneralSolver::getTimeInterval |
( |
| ) |
const |
|
virtualinherited |
◆ getDt()
| virtual double IBTK::GeneralSolver::getDt |
( |
| ) |
const |
|
virtualinherited |
◆ setHierarchyMathOps()
◆ getHierarchyMathOps()
◆ setMaxIterations()
| virtual void IBTK::GeneralSolver::setMaxIterations |
( |
int |
max_iterations | ) |
|
|
virtualinherited |
◆ getMaxIterations()
| virtual int IBTK::GeneralSolver::getMaxIterations |
( |
| ) |
const |
|
virtualinherited |
◆ setAbsoluteTolerance()
| virtual void IBTK::GeneralSolver::setAbsoluteTolerance |
( |
double |
abs_residual_tol | ) |
|
|
virtualinherited |
◆ getAbsoluteTolerance()
| virtual double IBTK::GeneralSolver::getAbsoluteTolerance |
( |
| ) |
const |
|
virtualinherited |
◆ setRelativeTolerance()
| virtual void IBTK::GeneralSolver::setRelativeTolerance |
( |
double |
rel_residual_tol | ) |
|
|
virtualinherited |
◆ getRelativeTolerance()
| virtual double IBTK::GeneralSolver::getRelativeTolerance |
( |
| ) |
const |
|
virtualinherited |
◆ getNumIterations()
| virtual int IBTK::GeneralSolver::getNumIterations |
( |
| ) |
const |
|
virtualinherited |
◆ getResidualNorm()
| virtual double IBTK::GeneralSolver::getResidualNorm |
( |
| ) |
const |
|
virtualinherited |
◆ setLoggingEnabled()
| virtual void IBTK::GeneralSolver::setLoggingEnabled |
( |
bool |
enable_logging = true | ) |
|
|
virtualinherited |
◆ getLoggingEnabled()
| virtual bool IBTK::GeneralSolver::getLoggingEnabled |
( |
| ) |
const |
|
virtualinherited |
◆ printClassData()
| virtual void IBTK::GeneralSolver::printClassData |
( |
std::ostream & |
stream | ) |
|
|
virtualinherited |
◆ init()
| void IBTK::GeneralSolver::init |
( |
const std::string & |
object_name, |
|
|
bool |
homogeneous_bc |
|
) |
| |
|
protectedinherited |
◆ initSpecialized()
| virtual void IBTK::GeneralSolver::initSpecialized |
( |
const std::string & |
object_name, |
|
|
bool |
homogeneous_bc |
|
) |
| |
|
protectedvirtualinherited |
◆ d_cib_strategy
◆ d_num_rigid_parts
| const unsigned int IBAMR::CIBStaggeredStokesSolver::d_num_rigid_parts |
|
private |
◆ d_sp_solver
◆ d_wide_u_var
◆ d_wide_f_var
◆ d_wide_ctx
◆ d_wide_u_idx
◆ d_wide_f_idx
◆ d_x_wide
◆ d_b_wide
◆ d_is_initialized
| bool IBAMR::CIBStaggeredStokesSolver::d_is_initialized = false |
|
private |
◆ d_reinitializing_solver
| bool IBAMR::CIBStaggeredStokesSolver::d_reinitializing_solver = false |
|
private |
◆ d_U_problem_coefs
◆ d_default_U_bc_coef
◆ d_U_bc_coefs
◆ d_default_P_bc_coef
◆ d_P_bc_coef
◆ d_bc_helper
◆ d_has_velocity_nullspace
| bool IBAMR::StaggeredStokesSolver::d_has_velocity_nullspace = false |
|
protectedinherited |
◆ d_has_pressure_nullspace
| bool IBAMR::StaggeredStokesSolver::d_has_pressure_nullspace = false |
|
protectedinherited |
◆ d_object_name
| std::string IBTK::GeneralSolver::d_object_name = "unitialized" |
|
protectedinherited |
◆ d_homogeneous_bc
| bool IBTK::GeneralSolver::d_homogeneous_bc = false |
|
protectedinherited |
◆ d_solution_time
| double IBTK::GeneralSolver::d_solution_time = std::numeric_limits<double>::quiet_NaN() |
|
protectedinherited |
◆ d_current_time
| double IBTK::GeneralSolver::d_current_time = std::numeric_limits<double>::quiet_NaN() |
|
protectedinherited |
◆ d_new_time
| double IBTK::GeneralSolver::d_new_time = std::numeric_limits<double>::quiet_NaN() |
|
protectedinherited |
◆ d_rel_residual_tol
| double IBTK::GeneralSolver::d_rel_residual_tol = 0.0 |
|
protectedinherited |
◆ d_abs_residual_tol
| double IBTK::GeneralSolver::d_abs_residual_tol = 0.0 |
|
protectedinherited |
◆ d_max_iterations
| int IBTK::GeneralSolver::d_max_iterations = 100 |
|
protectedinherited |
◆ d_current_iterations
| int IBTK::GeneralSolver::d_current_iterations = 0 |
|
protectedinherited |
◆ d_current_residual_norm
| double IBTK::GeneralSolver::d_current_residual_norm = std::numeric_limits<double>::quiet_NaN() |
|
protectedinherited |
◆ d_hier_math_ops
◆ d_hier_math_ops_external
| bool IBTK::GeneralSolver::d_hier_math_ops_external = false |
|
protectedinherited |
◆ d_enable_logging
| bool IBTK::GeneralSolver::d_enable_logging = false |
|
protectedinherited |
The documentation for this class was generated from the following file: