Esempio n. 1
0
def initialize_velocity_block_petsc_options(request):
    petsc_options = p4pyPETSc.Options()
    petsc_options.setValue('ksp_type', 'gmres')
    petsc_options.setValue('ksp_gmres_restart', 100)
    petsc_options.setValue('ksp_pc_side', 'right')
    petsc_options.setValue('ksp_atol', 1e-8)
    petsc_options.setValue('ksp_gmres_modifiedgramschmidt', '')
    petsc_options.setValue('pc_type', 'hypre')
    petsc_options.setValue('pc_type_hypre_type', 'boomeramg')
Esempio n. 2
0
def test_amg_iteration_matrix_1(load_saddle_point_matrix_1):
    mat_A = load_saddle_point_matrix_1
    petsc_options = initialize_velocity_block_petsc_options()
    L_sizes = mat_A.getSizes()
    index_sets = build_amg_index_sets(L_sizes)
    F_ksp = initialize_asm_ksp_obj(
        mat_A.createSubMatrix(index_sets[0], index_sets[0]))
    b, x = create_petsc_vecs(
        mat_A.createSubMatrix(index_sets[0], index_sets[0]))
    #    F_ksp.solve(b,x)
    #    assert F_ksp.its == 58

    p4pyPETSc.Options().setValue('pc_hypre_boomeramg_relax_type_all',
                                 'sequential-Gauss-Seidel')
    F_ksp = initialize_asm_ksp_obj(
        mat_A.createSubMatrix(index_sets[0], index_sets[0]))
    b, x = create_petsc_vecs(
        mat_A.createSubMatrix(index_sets[0], index_sets[0]))

    #    F_ksp.solve(b,x)
    #    assert F_ksp.its == 61

    clear_petsc_options()
    initialize_velocity_block_petsc_options()

    p4pyPETSc.Options().setValue('pc_hypre_boomeramg_coarsen_type', 'PMIS')
    F_ksp = initialize_asm_ksp_obj(
        mat_A.createSubMatrix(index_sets[0], index_sets[0]))
    b, x = create_petsc_vecs(
        mat_A.createSubMatrix(index_sets[0], index_sets[0]))

    #    F_ksp.solve(b,x)
    #    assert F_ksp.its = 105

    clear_petsc_options()
    initialize_velocity_block_petsc_options()

    p4pyPETSc.Options().setValue('pc_hypre_boomeramg_relax_type_all',
                                 'sequential-Gauss-Seidel')
    p4pyPETSc.Options().setValue('pc_hypre_boomeramg_coarsen_type', 'PMIS')
    F_ksp = initialize_asm_ksp_obj(
        mat_A.createSubMatrix(index_sets[0], index_sets[0]))
    b, x = create_petsc_vecs(
        mat_A.createSubMatrix(index_sets[0], index_sets[0]))
Esempio n. 3
0
def initialize_petsc_options(request):
    """Initializes schur complement petsc options. """
    petsc_options = p4pyPETSc.Options()
    petsc_options.setValue('ksp_type', 'gmres')
    petsc_options.setValue('ksp_gmres_restart', 500)
    petsc_options.setValue('ksp_atol', 1e-20)
    petsc_options.setValue('ksp_gmres_modifiedgramschmidt', '')
    petsc_options.setValue('pc_fieldsplit_type', 'schur')
    petsc_options.setValue('pc_fieldsplit_schur_fact_type', 'upper')
    petsc_options.setValue('pc_fieldsplit_schur_precondition', 'user')
    petsc_options.setValue('fieldsplit_velocity_ksp_type', 'preonly')
    petsc_options.setValue('fieldsplit_velocity_pc_type', 'lu')
    petsc_options.setValue('fieldsplit_pressure_ksp_type', 'preonly')
Esempio n. 4
0
 def setup_method(self, method):
     self.petsc_options = p4pyPETSc.Options()
     self._scriptdir = os.path.dirname(__file__)
     self.quad_mass_matrix = np.load(
         os.path.join(self._scriptdir,
                      'import_modules/quad_mass_matrix.npy'))
Esempio n. 5
0
def initialize_velocity_block_petsc_options_2():
    petsc_options = p4pyPETSc.Options()
    petsc_options.setValue('ksp_type', 'gmres')
    petsc_options.setValue('ksp_gmres_restart', 100)
    petsc_options.setValue('ksp_atol', 1e-8)
    petsc_options.setValue('ksp_gmres_modifiedgramschmidt', '')
Esempio n. 6
0
def clear_petsc_options():
    for key in p4pyPETSc.Options().getAll():
        p4pyPETSc.Options().delValue(key)