StaggeredStokesSolverManager::StaggeredStokesSolverManager() : d_solver_maker_map() { registerSolverFactoryFunction(DEFAULT_KRYLOV_SOLVER, allocate_petsc_krylov_solver); registerSolverFactoryFunction(PETSC_KRYLOV_SOLVER, allocate_petsc_krylov_solver); registerSolverFactoryFunction(DEFAULT_BLOCK_PRECONDITIONER, StaggeredStokesProjectionPreconditioner::allocate_solver); registerSolverFactoryFunction( BLOCK_FACTORIZATION_PRECONDITIONER, StaggeredStokesBlockFactorizationPreconditioner::allocate_solver); registerSolverFactoryFunction(PROJECTION_PRECONDITIONER, StaggeredStokesProjectionPreconditioner::allocate_solver); registerSolverFactoryFunction(DEFAULT_FAC_PRECONDITIONER, allocate_box_relaxation_fac_preconditioner); registerSolverFactoryFunction(BOX_RELAXATION_FAC_PRECONDITIONER, allocate_box_relaxation_fac_preconditioner); registerSolverFactoryFunction(DEFAULT_LEVEL_SOLVER, StaggeredStokesPETScLevelSolver::allocate_solver); registerSolverFactoryFunction(PETSC_LEVEL_SOLVER, StaggeredStokesPETScLevelSolver::allocate_solver); return; } // StaggeredStokesSolverManager
SCPoissonSolverManager::SCPoissonSolverManager() : d_solver_maker_map() { registerSolverFactoryFunction(DEFAULT_KRYLOV_SOLVER, allocate_petsc_krylov_solver); registerSolverFactoryFunction(PETSC_KRYLOV_SOLVER, allocate_petsc_krylov_solver); registerSolverFactoryFunction(DEFAULT_FAC_PRECONDITIONER, SCPoissonPointRelaxationFACOperator::allocate_solver); registerSolverFactoryFunction(POINT_RELAXATION_FAC_PRECONDITIONER, SCPoissonPointRelaxationFACOperator::allocate_solver); registerSolverFactoryFunction(DEFAULT_LEVEL_SOLVER, SCPoissonHypreLevelSolver::allocate_solver); registerSolverFactoryFunction(HYPRE_LEVEL_SOLVER, SCPoissonHypreLevelSolver::allocate_solver); registerSolverFactoryFunction(PETSC_LEVEL_SOLVER, SCPoissonPETScLevelSolver::allocate_solver); return; } // SCPoissonSolverManager
NewtonKrylovSolverManager::NewtonKrylovSolverManager() : d_solver_maker_map() { registerSolverFactoryFunction(DEFAULT, PETScNewtonKrylovSolver::allocate_solver); registerSolverFactoryFunction(PETSC, PETScNewtonKrylovSolver::allocate_solver); return; } // NewtonKrylovSolverManager