[petsc-users] Fieldsplit schur applied on A00 of a fieldsplit schur
Luc
luc.berger.vergiat at gmail.com
Sun Mar 2 16:39:51 CST 2014
Hi Matt,
I just got your answer. Thanks for confirming my diagnostic.
I will look at the code and do my best : )
I'll keep you posted on my progresses and issues.
Best,
Luc
On 03/02/2014 02:33 PM, Matthew Knepley wrote:
> On Fri, Feb 28, 2014 at 8:18 PM, Luc Berger-Vergiat
> <luc.berger.vergiat at gmail.com <mailto:luc.berger.vergiat at gmail.com>>
> wrote:
>
> Hi all,
> sorry for the cryptic title but this is a little complex.
> Here is what I am doing:
> I created a DMShell that gets four fields passed from a PetscSection.
> Now I am doing this because I want to apply a schur complement to
> my problem.
> In order to do so I pass the following arguments to my code:
>
> -ksp_type gmres
> -pc_type fieldsplit
> -pc_fieldsplit_type schur
> -pc_fieldsplit_schur_factorization_type full
> -pc_fieldsplit_0_fields 2,3 <--- This define
> A00 for my schur
> -pc_fieldsplit_1_fields 0,1
>
> Up to here everything works fine and as expected (I actually do a
> -ksp_view to make sure that everything makes sense).
> Now things get tricky, I would like to compute A00^-1 using
> another schur decomposition so here are the commands I issue:
>
> -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_0_fields 2
> -fieldsplit_0_pc_fieldsplit_1_fields 3
>
> I am almost sure that the 4 first commands are correct, I am not
> however sure that the last two are understood by PETSc.
> Actually I am worried that the DMShell that I created for the
> first level schur is not passed on the second level schur.
> Here is the error message I get when I run my code:
>
>
> Sorry, I am really bogged down at the moment. Can you try this:
>
> 1) You do not need to specify 2,3 for the inner fields since it will
> use them automatically
>
> 2) Can you try changing src/dm/impls/shell/dmshell.c:664 to include
> DMSetUp(*subdm); ?
>
> Thanks,
>
> Matt
>
> [0]PETSC ERROR: --------------------- Error Message
> ------------------------------------
> [0]PETSC ERROR: Object is in wrong state!
> [0]PETSC ERROR: Decomposition defined only after DMSetUp!
> [0]PETSC ERROR:
> ------------------------------------------------------------------------
> [0]PETSC ERROR: Petsc Development GIT revision:
> v3.4.3-4597-g3edecfd GIT Date: 2014-02-20 20:43:18 -0600
> [0]PETSC ERROR: See docs/changes/index.html for recent updates.
> [0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.
> [0]PETSC ERROR: See docs/index.html for manual pages.
> [0]PETSC ERROR:
> ------------------------------------------------------------------------
> [0]PETSC ERROR:
> /home/luc/research/feap_repo/ShearBands/parfeap-petsc34/feap on a
> arch-linux2-c-opt named euler by luc Fri Feb 28 20:07:18 2014
> [0]PETSC ERROR: Libraries linked from
> /home/luc/research/petsc/arch-linux2-c-opt/lib
> [0]PETSC ERROR: Configure run at Fri Feb 21 17:31:31 2014
> [0]PETSC ERROR: Configure options --download-cmake
> --download-hypre --download-metis --download-mpich
> --download-parmetis --with-debugging=0 --with-share-libraries=0
> [0]PETSC ERROR:
> ------------------------------------------------------------------------
> [0]PETSC ERROR: DMCreateFieldDecomposition() line 1262 in
> /home/luc/research/petsc/src/dm/interface/dm.c
> [0]PETSC ERROR: PCFieldSplitSetDefaults() line 336 in
> /home/luc/research/petsc/src/ksp/pc/impls/fieldsplit/fieldsplit.c
> [0]PETSC ERROR: PCSetUp_FieldSplit() line 485 in
> /home/luc/research/petsc/src/ksp/pc/impls/fieldsplit/fieldsplit.c
> [0]PETSC ERROR: PCSetUp() line 888 in
> /home/luc/research/petsc/src/ksp/pc/interface/precon.c
> [0]PETSC ERROR: KSPSetUp() line 278 in
> /home/luc/research/petsc/src/ksp/ksp/interface/itfunc.c
> [0]PETSC ERROR: KSPSolve() line 390 in
> /home/luc/research/petsc/src/ksp/ksp/interface/itfunc.c
> [0]PETSC ERROR: PCApply_FieldSplit_Schur() line 859 in
> /home/luc/research/petsc/src/ksp/pc/impls/fieldsplit/fieldsplit.c
> [0]PETSC ERROR: PCApply() line 440 in
> /home/luc/research/petsc/src/ksp/pc/interface/precon.c
> [0]PETSC ERROR: KSP_PCApply() line 227 in
> /home/luc/research/petsc/include/petsc-private/kspimpl.h
> [0]PETSC ERROR: KSPInitialResidual() line 64 in
> /home/luc/research/petsc/src/ksp/ksp/interface/itres.c
> [0]PETSC ERROR: KSPSolve_GMRES() line 234 in
> /home/luc/research/petsc/src/ksp/ksp/impls/gmres/gmres.c
> [0]PETSC ERROR: KSPSolve() line 432 in
> /home/luc/research/petsc/src/ksp/ksp/interface/itfunc.c
>
> Let me know if I'm doing something wrong or misunderstood something.
>
> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140302/14e48d54/attachment.html>
More information about the petsc-users
mailing list