|
IBAMR
IBAMR version 0.20.
|
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>

Public Member Functions | |
| 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... | |
General-purpose solver functionality. | |
| const std::string & | getName () const |
| Return the object name. More... | |
| virtual bool | getIsInitialized () const |
| Return whether the operator is initialized. More... | |
| virtual void | setHomogeneousBc (bool homogeneous_bc) |
| Set whether the solver should use homogeneous boundary conditions. More... | |
| virtual bool | getHomogeneousBc () const |
| Return whether the solver is using homogeneous boundary conditions. More... | |
| virtual double | getSolutionTime () const |
| Get the time at which the solution is being evaluated. More... | |
| virtual std::pair< double, double > | getTimeInterval () const |
| Get the current time interval. More... | |
| virtual double | getDt () const |
| Get the current time step size. More... | |
| virtual void | setHierarchyMathOps (SAMRAI::tbox::Pointer< HierarchyMathOps > hier_math_ops) |
| Set the HierarchyMathOps object used by the solver. More... | |
| virtual SAMRAI::tbox::Pointer< HierarchyMathOps > | getHierarchyMathOps () const |
| Get the HierarchyMathOps object used by the solver. More... | |
Functions to access solver parameters. | |
| virtual void | setMaxIterations (int max_iterations) |
| Set the maximum number of nonlinear iterations to use per solve. More... | |
| virtual int | getMaxIterations () const |
| Get the maximum number of nonlinear iterations to use per solve. More... | |
| virtual void | setAbsoluteTolerance (double abs_residual_tol) |
| Set the absolute residual tolerance for convergence. More... | |
| virtual double | getAbsoluteTolerance () const |
| Get the absolute residual tolerance for convergence. More... | |
| virtual void | setRelativeTolerance (double rel_residual_tol) |
| Set the relative residual tolerance for convergence. More... | |
| virtual double | getRelativeTolerance () const |
| Get the relative residual tolerance for convergence. More... | |
Functions to access data on the most recent solve. | |
| virtual int | getNumIterations () const |
| Return the iteration count from the most recent solve. More... | |
| virtual double | getResidualNorm () const |
| Return the residual norm from the most recent iteration. More... | |
Protected Attributes | |
| SAMRAI::solv::PoissonSpecifications | d_U_problem_coefs |
| SAMRAI::solv::LocationIndexRobinBcCoefs< NDIM > | d_default_U_bc_coef |
| std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > | d_U_bc_coefs |
| SAMRAI::solv::LocationIndexRobinBcCoefs< NDIM > | d_default_P_bc_coef |
| SAMRAI::solv::RobinBcCoefStrategy< NDIM > * | d_P_bc_coef |
| SAMRAI::tbox::Pointer< StaggeredStokesPhysicalBoundaryHelper > | d_bc_helper |
| bool | d_has_velocity_nullspace = false |
| bool | d_has_pressure_nullspace = false |
Private Member Functions | |
| CIBStaggeredStokesSolver (const CIBStaggeredStokesSolver &from)=delete | |
| Copy constructor. More... | |
| CIBStaggeredStokesSolver & | operator= (const CIBStaggeredStokesSolver &that)=delete |
| Assignment operator. More... | |
Private Attributes | |
| SAMRAI::tbox::Pointer< CIBStrategy > | d_cib_strategy |
| const unsigned int | d_num_rigid_parts |
| SAMRAI::tbox::Pointer< IBAMR::CIBSaddlePointSolver > | d_sp_solver |
| SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > | d_wide_u_var |
| SAMRAI::tbox::Pointer< SAMRAI::pdat::SideVariable< NDIM, double > > | d_wide_f_var |
| SAMRAI::tbox::Pointer< SAMRAI::hier::VariableContext > | d_wide_ctx |
| int | d_wide_u_idx = IBTK::invalid_index |
| int | d_wide_f_idx = IBTK::invalid_index |
| SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > | d_x_wide |
| SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, double > > | d_b_wide |
| bool | d_is_initialized = false |
| bool | d_reinitializing_solver = false |
Logging functions. | |
| virtual void | setLoggingEnabled (bool enable_logging=true) |
| Enable or disable logging. More... | |
| virtual bool | getLoggingEnabled () const |
| Determine whether logging is enabled or disabled. More... | |
| virtual void | printClassData (std::ostream &stream) |
| Print class data to stream. More... | |
| std::string | d_object_name = "unitialized" |
| bool | d_homogeneous_bc = false |
| double | d_solution_time = std::numeric_limits<double>::quiet_NaN() |
| double | d_current_time = std::numeric_limits<double>::quiet_NaN() |
| double | d_new_time = std::numeric_limits<double>::quiet_NaN() |
| double | d_rel_residual_tol = 0.0 |
| double | d_abs_residual_tol = 0.0 |
| int | d_max_iterations = 100 |
| int | d_current_iterations = 0 |
| double | d_current_residual_norm = std::numeric_limits<double>::quiet_NaN() |
| SAMRAI::tbox::Pointer< HierarchyMathOps > | d_hier_math_ops |
| bool | d_hier_math_ops_external = false |
| bool | d_enable_logging = false |
| void | init (const std::string &object_name, bool homogeneous_bc) |
| virtual void | initSpecialized (const std::string &object_name, bool homogeneous_bc) |
| IBAMR::CIBStaggeredStokesSolver::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 | ||
| ) |
| IBAMR::CIBStaggeredStokesSolver::~CIBStaggeredStokesSolver | ( | ) |
|
privatedelete |
| from | The value to copy to this object. |
|
overridevirtual |
Initialize the solver before solving the system of equations.
Reimplemented from IBTK::GeneralSolver.
|
overridevirtual |
Deallocate the solver when hierarchy changes.
Reimplemented from IBTK::GeneralSolver.
|
overridevirtual |
true if the solver converged to the specified tolerances, false otherwise. Implements IBTK::GeneralSolver.
|
overridevirtual |
Reimplemented from IBAMR::StaggeredStokesSolver.
|
overridevirtual |
| 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.
|
overridevirtual |
Reimplemented from IBAMR::StaggeredStokesSolver.
|
overridevirtual |
Reimplemented from IBTK::GeneralSolver.
|
overridevirtual |
Reimplemented from IBTK::GeneralSolver.
| SAMRAI::tbox::Pointer<IBAMR::CIBSaddlePointSolver> IBAMR::CIBStaggeredStokesSolver::getSaddlePointSolver | ( | ) | const |
|
privatedelete |
| that | The value to assign to this object. |
|
virtualinherited |
|
inherited |
|
virtualinherited |
|
virtualinherited |
Reimplemented in IBTK::NewtonKrylovSolver, IBTK::KrylovLinearSolver, and IBTK::FACPreconditioner.
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
Reimplemented in IBTK::NewtonKrylovSolver, and IBTK::KrylovLinearSolver.
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
Reimplemented in IBTK::PETScPCLSWrapper.
|
virtualinherited |
Reimplemented in IBTK::PETScPCLSWrapper.
|
virtualinherited |
Reimplemented in IBTK::PETScPCLSWrapper.
|
virtualinherited |
Reimplemented in IBTK::PETScPCLSWrapper.
|
virtualinherited |
Reimplemented in IBTK::PETScPCLSWrapper.
|
virtualinherited |
Reimplemented in IBTK::PETScPCLSWrapper, IBTK::BJacobiPreconditioner, and IBTK::BGaussSeidelPreconditioner.
|
virtualinherited |
Reimplemented in IBTK::PETScPCLSWrapper, IBTK::BJacobiPreconditioner, and IBTK::BGaussSeidelPreconditioner.
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
Reimplemented in IBTK::LinearSolver.
|
protectedinherited |
|
protectedvirtualinherited |
Reimplemented in IBTK::PoissonSolver.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |