> > > > 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 > > >