[petsc-dev] getting parts of a field split PC at setup time

Matthew Knepley knepley at gmail.com
Sun Sep 1 20:25:49 CDT 2013


On Sun, Sep 1, 2013 at 6:31 PM, Mark F. Adams <mfadams at lbl.gov> wrote:

> I have a code that has several concurrent solves (with their own
> communicators) and I want to turn off monitors for all but one.  My setup
> code looks something like this:
>
>   call DMSetFromOptions(solver%dalam,ierr)
>   call DMCompositeAddDM(solver%da,solver%dalam,ierr)
>   call DMSetFromOptions(solver%da,ierr)
>   call DMSetUp(solver%da,ierr)
>   call SNESCreate(comm,solver%snes,ierr)
>   call SNESSetDM(solver%snes,solver%da,ierr)
>   call SNESSetFromOptions(solver%snes,ierr)
>
>   if (sml_mype/sml_pe_per_plane .gt. 0) then ! not first, no monitor
>      call SNESMonitorCancel(solver%snes,ierr)
>      CHKERRQ(ierr)
>      call SNESGetKSP(solver%snes,ksp,ierr)
>      CHKERRQ(ierr)
>      call KSPMonitorCancel(ksp,ierr)
>      CHKERRQ(ierr)
>   endif
>
> First, a quick question: do I want to call DMSetFromOptions here (first
> line)?
>

Almost certainly.


>
> I want to get the two KSP solvers inside of what I know is a fieldsplit PC
> but when I get the PC in the above code and try to get the KSPs I get a
> segv.  I thought I might call


Why not just give different options prefixes and do it from the command
line?

   MAtt


> SNESSetUp to get the KSPs created, etc, but got this error:
>
>
> [33]PETSC ERROR: --------------------- Error Message
> ------------------------------------
> [33]PETSC ERROR: Argument aliasing not permitted!
> [33]PETSC ERROR: Solution vector cannot be right hand side vector!
> [33]PETSC ERROR:
> ------------------------------------------------------------------------
> [33]PETSC ERROR: Petsc Development GIT revision:
> d40a587a06aadd7edf3aa830331a2de63b9eb164  GIT Date: 2013-08-31 15:18:06
> -0500
> [33]PETSC ERROR: See docs/changes/index.html for recent updates.
> [33]PETSC ERROR: See docs/faq.html for hints about trouble shooting.
> [33]PETSC ERROR: See docs/index.html for manual pages.
> [33]PETSC ERROR:
> ------------------------------------------------------------------------
> [33]PETSC ERROR: ../xgc2 on a arch-sith-opt named sith2 by adams Sun Sep
>  1 19:12:19 2013
> [33]PETSC ERROR: Libraries linked from
> /autofs/na3_home1/adams/petsc/arch-sith-opt/lib
> [33]PETSC ERROR: Configure run at Sun Sep  1 18:04:43 2013
> [33]PETSC ERROR: Configure options --known-level1-dcache-size=65536
> --known-level1-dcache-linesize=64 --known-level1-dcache-assoc=2
> --known-memcmp-ok=1 --known-sizeof-size_t=8 --known-bits-per-byte=8
> --known-sizeof-MPI_Comm=8 --known-sizeof-MPI_Fint=4
> --known-mpi-long-double=1 --known-mpi-c-double-complex=0 --with-batch=1
> --with-shared-libraries=0 --with-memcmp-ok --with-debugging=0
> --known-sizeof-char=1 --known-sizeof-void-p=8 --known-sizeof-short=2
> --known-sizeof-int=4 --known-sizeof-long=8 --known-sizeof-long-long=8
> --known-sizeof-float=4 --known-sizeof-double=8 --known-sizeof-size-t=8
> --bits-per-byte=8 --known-sizeof-MPI-Comm=8 --known-sizeof-MPI-Fint=4
> --have-mpi-long-double=1 --with-x=0
> --with-mpi-dir=/sw/redhat6/openmpi/1.6.3/rhel6_pgi12.8/ --with-mpi-shared=1
> --known-mpi-shared-libraries=1 --download-blacs --download-hypre
> --download-metis=1 --download-parmetis --download-f-blas-lapack
> PETSC_ARCH=arch-sith-opt
> [33]PETSC ERROR:
> ------------------------------------------------------------------------
> [33]PETSC ERROR: SNESSetUp() line 2580 in src/snes/interface/snes.c
>
>
> Any ideas?
>
>


-- 
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-dev/attachments/20130901/48ad9e36/attachment.html>


More information about the petsc-dev mailing list