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')
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]))
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')
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'))
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', '')
def clear_petsc_options(): for key in p4pyPETSc.Options().getAll(): p4pyPETSc.Options().delValue(key)