下面显示了一段代码来解决线性系统。
ierr = KSPCreate(PETSC_COMM_WORLD,&ksp); CHKERRQ(ierr);
ierr = KSPSetOperators(ksp,A,A,DIFFERENT_NONZERO_PATTERN); CHKERRQ(ierr);
KSPSetType(ksp,KSPBCGS);
ierr = KSPSetTolerances(ksp,1.e-2/((m+1)*(n+1)),1.e-50,PETSC_DEFAULT, PETSC_DEFAULT); CHKERRQ(ierr);
ierr = KSPSetFromOptions(ksp);CHKERRQ(ierr);
ierr = PCSetType(pc,PCSOR);CHKERRQ(ierr);
ierr = KSPSolve(ksp,b,x);CHKERRQ(ierr);
根据 PETSC 手册,PETSC 使用带有 ILU(0) 预处理器的 GMRES 来求解 SLE。我想修改代码以使用带有 SSOR 预处理器的 BiCGStab 方法来解决系统问题。
有人可以帮忙吗?