On Fri, Mar 21, 2014 at 9:37 AM, Luc Berger-Vergiat <lb2...@columbia.edu>wrote:
> Is there a way to now what the new numbering is? > I am assuming that in y example since there are two fields only the > numbers associated with them are 0 and 1 hence I tried: > > -fieldsplit_0_fieldsplit_Field_2_fields 1 > -fieldsplit_0_fieldsplit_Field_3_fields 0 > > If its an inner fieldsplit, the numbering for options starts over again -fieldsplit_0_fieldsplit_Field_0_fields 1 -fieldsplit_0_fieldsplit_Field_1_fields 0 Thanks, Matt > which did not work. As mentioned earlier, the following does not work > either: > > -fieldsplit_0_fieldsplit_Field_2_fields 3 > -fieldsplit_0_fieldsplit_Field_3_fields 2 > > and without too much expectation I also passed the following > > -fieldsplit_0_fieldsplit_Field_2_fields Field_3 > -fieldsplit_0_fieldsplit_Field_3_fields Field_2 > > to no avail. > > By the way I attached the output from -ksp_view in case I might be doing > something wrong? > > Best, > Luc > > On 03/20/2014 09:01 PM, Matthew Knepley wrote: > > On Thu, Mar 20, 2014 at 6:20 PM, Luc Berger-Vergiat > <lb2...@columbia.edu>wrote: > >> Hi all, >> I am solving a four field problem using two Schur complements. Here are >> the arguments that I usually pass to PETSc to do it: >> >> -ksp_type gmres -pc_type fieldsplit -pc_fieldsplit_type schur >> -pc_fieldsplit_schur_factorization_type full >> -pc_fieldsplit_schur_precondition selfp -pc_fieldsplit_0_fields 2,3 >> -pc_fieldsplit_1_fields 0,1 -fieldsplit_0_ksp_type preonly >> -fieldsplit_0_pc_type fieldsplit -fieldsplit_0_pc_fieldsplit_type schur >> -fieldsplit_0_pc_fieldsplit_schur_factorization_type full >> -fieldsplit_0_pc_fieldsplit_schur_precondition selfp >> -fieldsplit_0_fieldsplit_Field_2_fields 2 >> -fieldsplit_0_fieldsplit_Field_3_fields 3 >> -fieldsplit_0_fieldsplit_Field_2_ksp_type preonly >> -fieldsplit_0_fieldsplit_Field_2_pc_type ilu >> -fieldsplit_0_fieldsplit_Field_3_ksp_type preonly >> -fieldsplit_0_fieldsplit_Field_3_pc_type jacobi -fieldsplit_1_ksp_type >> preonly -fieldsplit_1_pc_type lu -malloc_log mlog -log_summary time.log >> >> One issue with this is that when I change >> -fieldsplit_0_fieldsplit_Field_2_fields 2 to >> -fieldsplit_0_fieldsplit_Field_2_fields 3 it is ineffective, as if PETSc >> automatically assign IS 2 to Field 2 even though it is not what I want. >> Is there a way to pass the arguments correctly so that PETSc goes about >> switching the IS set of -fieldsplit_0_fieldsplit_Field_2 and >> -fieldsplit_0_fieldsplit_Field_3? >> This is crucial to me since I am using the selfp option and the matrix >> associated to IS 3 is diagonal. By assigning the fields correctly I can get >> an exact Schur preconditioner and hence very fast convergence. Right now my >> convergence is not optimal because of this. >> > > I believe the inner Schur field statements should not be using the > original numbering, but the inner numbering, after they have been reordered. > > Matt > > >> Thanks! >> >> Best, >> Luc >> > > > > -- > What most experimenters take for granted before they begin their > experiments is infinitely more interesting than any results to which their > experiments lead. > -- Norbert Wiener > > > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener