| 377 | } // solveMobilitySystem |
| 378 | |
| 379 | bool |
| 380 | CIBMobilitySolver::solveBodyMobilitySystem(Vec x, Vec b) |
| 381 | { |
| 382 | IBAMR_TIMER_START(t_solve_body_mobility_system); |
| 383 | |
| 384 | // Initialize the solver, when necessary. |
| 385 | const bool deallocate_after_solve = !d_is_initialized; |
| 386 | if (deallocate_after_solve) initializeSolverState(x, b); |
| 387 | |
| 388 | // Solve for x. |
| 389 | bool converged = d_krylov_freebody_mob_solver->solveSystem(x, b); |
| 390 | |
| 391 | // Deallocate the solver, when necessary. |
| 392 | if (deallocate_after_solve) deallocateSolverState(); |
| 393 | |
| 394 | IBAMR_TIMER_STOP(t_solve_body_mobility_system); |
| 395 | |
| 396 | return converged; |
| 397 | } // solveBodyMobilitySystem |
| 398 | |
| 399 | ////////////////////////////// PRIVATE /////////////////////////////////////// |
| 400 |
no test coverage detected