|
| | CIBMobilitySolver (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) |
| | The only constructor of this class. More...
|
| |
| virtual | ~CIBMobilitySolver () |
| | Destructor for this class. More...
|
| |
| void | setSolutionTime (const double solution_time) |
| | Set the time at which the solution is to be evaluated. More...
|
| |
| void | setTimeInterval (const double current_time, const double new_time) |
| | Set the time interval of integration. More...
|
| |
| void | setInterpScale (const double interp_scale) |
| | Set scale for interp operator. More...
|
| |
| void | setSpreadScale (const double spread_scale) |
| | Set scale for spread operator. More...
|
| |
| void | setRegularizeMobilityScale (const double reg_mob_scale) |
| | Set scale for regularizing mobility matrix. More...
|
| |
| void | setNormalizeSpreadForce (const bool normalize_force) |
| | Set if the mean of the Lagrangian force is to be subtracted from the Eulerian force variable. More...
|
| |
| void | setVelocityPoissonSpecifications (const SAMRAI::solv::PoissonSpecifications &u_problem_coefs) |
| | Set the PoissonSpecifications object used to specify the coefficients for the momentum equation in the incompressible Stokes operator. More...
|
| |
| void | setPhysicalBcCoefs (const std::vector< SAMRAI::solv::RobinBcCoefStrategy< NDIM > * > &u_bc_coefs, SAMRAI::solv::RobinBcCoefStrategy< NDIM > *p_bc_coef) |
| | Set the SAMRAI::solv::RobinBcCoefStrategy objects used to specify physical boundary conditions. More...
|
| |
| void | setPhysicalBoundaryHelper (SAMRAI::tbox::Pointer< IBAMR::StaggeredStokesPhysicalBoundaryHelper > bc_helper) |
| | Set the StokesSpecifications object and timestep size used to specify the coefficients for the time-dependent incompressible Stokes operator. More...
|
| |
| bool | solveMobilitySystem (Vec x, Vec b) |
| | Solves the mobility problem. More...
|
| |
| bool | solveBodyMobilitySystem (Vec x, Vec b) |
| | Solves the mobility problem. More...
|
| |
| void | initializeSolverState (Vec x, Vec b) |
| | Initialize the mobility solver. More...
|
| |
| void | deallocateSolverState () |
| | Deallocate the mobility solver. More...
|
| |
| void | getMobilitySolvers (IBAMR::KrylovMobilitySolver **km_solver=nullptr, IBAMR::DirectMobilitySolver **dm_solver=nullptr, IBAMR::KrylovFreeBodyMobilitySolver **fbm_solver=nullptr) |
| | Get access to mobility solvers. More...
|
| |
\begin{eqnarray*} \beta J L^{-1} S \gamma \vec{\lambda} &=& M \vec{\lambda} = \vec{w} \\ T M T^* \vec{U} &=& \vec{F}. \end{eqnarray*}
Here, \( J \) is the interpolation operator, \( S \) is the spreading operator, \( L \) is the incompressible Stokes operator, \( T \) is the rigid body operator, \( \vec{w} \) is the desired velocity at the nodes of the structure(s), and \( \vec{F} \) is the net external force and torque on the body.
This class employs direct solver for the approximate mobility and body-mobility sub-problems. The approximate mobility matrix is intended to be used in the preconditioning step of the overall constraint solver. The overall preconditioner is implemented in
- See also
- IBAMR::CIBSaddlePointSolver class. The class also supports Krylov body mobility solver for bodies moving under external force and torque.