[petsc-users] Field Split PC for Fully-Coupled 3d stationary incompressible Navier-Stokes Solution Algorithm

Fabian Gabel gabel.fabian at gmail.com
Mon Feb 2 04:10:32 CST 2015


> 
> 
>  
>         The possibility to use PCFIELDSPLIT (Matrix is
>         stored as interlaced) has already been implemented in my
>         solver program,
>         but I am not sure on how to choose the parameters.
> 
> 
> What do you mean? Is your matrix defined to have a block size of 4, or
> have you set the IS's for each split (u,v,w,p)? 

I used

        CALL PCFieldSplitSetIS(PRECON,PETSC_NULL_CHARACTER,ISU,IERR)
	...

The matrix is created as AIJ, but BAIJ with block size of 4 is also
possible (though not used as you can see from the output)


> The options for fieldsplit will be different depending on the answer.
> 
> 
> Before discussion any options for fielldsplit, what is App?
> 
> Is that an approximate pressure Schur complement?

Sorry. A_ij, where i,j \in {u,v,w,p}, refers to the block matrices for
each variable and the respective coupling matrices to the other
variables. E.g.

- A_pp is defined as the matrix resulting from the discretization of the
pressure equation that considers only the pressure related terms.

- A_up is defined as the matrix resulting form the discretization u
momentum balance that considers the u-velocity-to-pressure coupling
(i.e. the discretized x component of the pressure gradient)

Note that the matrix is not stored as this, since I use field
interlacing.
> 
> 
> Cheers,
> 
>   Dave
> 
>  
>         Each field corresponds to one of the variables (u,v,w,p).
>         Considering
>         the corresponding blocks A_.., the non-interlaced matrix would
>         read as
>         
>         [A_uu   0     0   A_up]
>         [0    A_vv    0   A_vp]
>         [0      0   A_ww  A_up]
>         [A_pu A_pv  A_pw  A_pp]
>         
>         where furthermore A_uu = A_vv = A_ww. This might be considered
>         to
>         further improve the efficiency of the solve.
>         
>         You find attached the solver output for an analytical test
>         case with 2e6
>         cells each having 4 degrees of freedom. I used the
>         command-line options:
>         
>         -log_summary
>         -coupledsolve_ksp_view
>         -coupledsolve_ksp_monitor
>         -coupledsolve_ksp_gmres_restart 100
>         -coupledsolve_pc_factor_levels 1
>         -coupledsolve_ksp_gmres_modifiedgramschmidt
>         
>         Regards,
>         Fabian Gabel
>         
> 
> 




More information about the petsc-users mailing list