[petsc-dev] FieldSplit and PCLSC

domenico.borzacchiello at univ-st-etienne.fr domenico.borzacchiello at univ-st-etienne.fr
Thu May 5 10:24:18 CDT 2011


> Given the nullspace, I'd modify your options slightly
> 1)
>   -fieldsplit_pressure_lsc_pc_type cholesky
> or for something iterative
> 2)
> -fieldsplit_pressure_lsc_pc_type icc
> -fieldsplit_pressure_lsc_ksp_max_it 10
>
> Kick out the mumps option.
> You should not have to perform a direct solve on this system to obtain
> good results.
>
> Cheers,
>   Dave
>

Hi,
I'm applying open boundary conditions for my problem thus the Poisson
operator A(1,0)*A(0,0) for the pressure has Dirichlet-like BCs on one of
the domain sides. I've exported the matrix in Matlab and checked that it
is full rank and with void nullspace. However I've noticed that the
implementation of the open boundary condition in the form -mu*(dw/dn)+p=0
gave out a few negative eigenvalues for the pressure Poisson operator so I
changed the sign of the corresponding equations and the resulting operator
is now SPD. LSC+fgmres is now converging in a reasonable amount of
iterations but it only performes slightly better than the unpreconditioned
fgmres if the solution for A(0,0) and A(1,0)*A(0,0) is very accurate which
makes it much slower anyway.

Could the problem be in submatrix A(0,0) non-symmetry and non-diagonally
dominance (due to the mixed partial derivatives)?
this operator also includes all of the Dirichlet BCs and equations for
ghost cells (identities).

here's the convergence history for unpreconditioned fmgres

0 SNES Function norm 5.552068649152e+01
    0 KSP Residual norm 33.5368
      Residual norms for fieldsplit_pressure_ solve.
      0 KSP Residual norm 2.260727468363e-01
      1 KSP Residual norm 1.407587947922e-01
      2 KSP Residual norm 7.691064671589e-02
      3 KSP Residual norm 2.620967692589e-02
      4 KSP Residual norm 6.867450504417e-03
      5 KSP Residual norm 1.491785522453e-03
      6 KSP Residual norm 8.586455334547e-04
      7 KSP Residual norm 3.688526337359e-04
      8 KSP Residual norm 1.135323240972e-04
      9 KSP Residual norm 3.146476882852e-05
     10 KSP Residual norm 7.615325746311e-06
     11 KSP Residual norm 1.706503591539e-06
    1 KSP Residual norm 0.000116156
      Residual norms for fieldsplit_pressure_ solve.
      0 KSP Residual norm 1.165484054929e+00
      1 KSP Residual norm 6.590157118625e-01
      2 KSP Residual norm 4.439674013114e-01
      3 KSP Residual norm 2.693170582098e-01
      4 KSP Residual norm 1.467216099603e-01
      5 KSP Residual norm 5.885073697864e-02
      6 KSP Residual norm 2.184725415069e-02
      7 KSP Residual norm 9.118477230458e-03
      8 KSP Residual norm 4.174750164927e-03
      9 KSP Residual norm 2.471255884330e-03
     10 KSP Residual norm 1.786239268491e-03
     11 KSP Residual norm 6.174773725068e-04
     12 KSP Residual norm 1.673876011079e-04
     13 KSP Residual norm 4.048547022971e-05
     14 KSP Residual norm 1.253942247213e-05
     15 KSP Residual norm 4.394812546199e-06
    2 KSP Residual norm 1.8912e-09
  Linear solve converged due to CONVERGED_RTOL iterations 2


and here with LSC

 0 SNES Function norm 5.552068649152e+01
    0 KSP Residual norm 33.5368
      Residual norms for fieldsplit_pressure_ solve.
      0 KSP Residual norm 2.260727468363e-01
      1 KSP Residual norm 1.274522534007e-01
      2 KSP Residual norm 5.175118852759e-02
      3 KSP Residual norm 1.583701829560e-02
      4 KSP Residual norm 4.937538980070e-03
      5 KSP Residual norm 1.221214573286e-03
      6 KSP Residual norm 2.620695934942e-04
      7 KSP Residual norm 7.233438832488e-05
      8 KSP Residual norm 2.707174368691e-05
      9 KSP Residual norm 1.313428228459e-05
     10 KSP Residual norm 4.539844460039e-06
     11 KSP Residual norm 1.365724734215e-06
    1 KSP Residual norm 0.000124646
      Residual norms for fieldsplit_pressure_ solve.
      0 KSP Residual norm 9.775028504703e-01
      1 KSP Residual norm 4.444788947801e-01
      2 KSP Residual norm 2.344961492297e-01
      3 KSP Residual norm 1.132919589396e-01
      4 KSP Residual norm 4.513655532131e-02
      5 KSP Residual norm 1.462626893800e-02
      6 KSP Residual norm 4.249388629751e-03
      7 KSP Residual norm 1.323894292814e-03
      8 KSP Residual norm 4.817581128184e-04
      9 KSP Residual norm 1.968317565973e-04
     10 KSP Residual norm 4.689392742747e-05
     11 KSP Residual norm 1.305880842199e-05
     12 KSP Residual norm 3.973697848967e-06
    2 KSP Residual norm 5.567e-10


I'm running the following options

-ksp_type fgmres \
                -ksp_rtol 1.0e-10 \
                -ksp_max_it 4000 \
                -ksp_diagonal_scale \
                -pc_type fieldsplit \
	        -pc_fieldsplit_type SCHUR \
		-pc_fieldsplit_schur_factorization_type FULL \
                -fieldsplit_velocity_ksp_type fgmres\
                -fieldsplit_velocity_pc_type bjacobi \
                -fieldsplit_velocity_sub_pc_type ilu \
                -fieldsplit_velocity_ksp_rtol 1.0e-6 \
                -fieldsplit_pressure_ksp_type fgmres \
                -fieldsplit_pressure_ksp_max_it 100 \
                -fieldsplit_pressure_ksp_monitor \
                -fieldsplit_pressure_ksp_rtol 1.0e-5 \
		-fieldsplit_pressure_pc_type lsc\
		-fieldsplit_pressure_lsc_ksp_type cg \
		-fieldsplit_pressure_lsc_ksp_max_it 100 \
		-fieldsplit_pressure_lsc_pc_type bjacobi \
		-fieldsplit_pressure_lsc_sub_pc_type icc \
		-fieldsplit_pressure_lsc_ksp_rtol 1.0e-6 \




More information about the petsc-dev mailing list