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
Пример #2
0
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
Пример #3
0
NewtonKrylovSolverManager::NewtonKrylovSolverManager() : d_solver_maker_map()
{
    registerSolverFactoryFunction(DEFAULT, PETScNewtonKrylovSolver::allocate_solver);
    registerSolverFactoryFunction(PETSC, PETScNewtonKrylovSolver::allocate_solver);
    return;
} // NewtonKrylovSolverManager