Sure, so with gamg (which was my first choice too), I get the following:

[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
[0]PETSC ERROR:
[0]PETSC ERROR: Must call DMShellSetGlobalVector() or DMShellSetCreateGlobalVector() [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting.
[0]PETSC ERROR: Petsc Release Version 3.5.2, Sep, 08, 2014
[0]PETSC ERROR: /home/luc/research/feap_repo/ShearBands/parfeap/feap on a arch-opt named euler by luc Thu Nov 20 16:19:29 2014 [0]PETSC ERROR: Configure options --with-cc=gcc --with-fc=gfortran --with-cxx=g++ --with-debugging=0 --with-shared-libraries=0 --download-fblaslapack --download-mpich --download-parmetis --download-metis --download-ml=yes --download-hypre --download-superlu_dist --download-mumps --download-scalapack [0]PETSC ERROR: #145 DMCreateGlobalVector_Shell() line 245 in /home/luc/research/petsc-3.5.2/src/dm/impls/shell/dmshell.c [0]PETSC ERROR: #146 DMCreateGlobalVector() line 681 in /home/luc/research/petsc-3.5.2/src/dm/interface/dm.c [0]PETSC ERROR: #147 DMGetGlobalVector() line 154 in /home/luc/research/petsc-3.5.2/src/dm/interface/dmget.c [0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
[0]PETSC ERROR:
[0]PETSC ERROR: Must call DMShellSetGlobalVector() or DMShellSetCreateGlobalVector() [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting.
[0]PETSC ERROR: Petsc Release Version 3.5.2, Sep, 08, 2014
[0]PETSC ERROR: /home/luc/research/feap_repo/ShearBands/parfeap/feap on a arch-opt named euler by luc Thu Nov 20 16:19:29 2014 [0]PETSC ERROR: Configure options --with-cc=gcc --with-fc=gfortran --with-cxx=g++ --with-debugging=0 --with-shared-libraries=0 --download-fblaslapack --download-mpich --download-parmetis --download-metis --download-ml=yes --download-hypre --download-superlu_dist --download-mumps --download-scalapack [0]PETSC ERROR: #148 DMCreateGlobalVector_Shell() line 245 in /home/luc/research/petsc-3.5.2/src/dm/impls/shell/dmshell.c [0]PETSC ERROR: #149 DMCreateGlobalVector() line 681 in /home/luc/research/petsc-3.5.2/src/dm/interface/dm.c [0]PETSC ERROR: #150 DMGetGlobalVector() line 154 in /home/luc/research/petsc-3.5.2/src/dm/interface/dmget.c
KSP Object: 1 MPI processes
  type: gmres
GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement
    GMRES: happy breakdown tolerance 1e-30
  maximum iterations=10000, initial guess is zero
  tolerances:  relative=1e-08, absolute=1e-16, divergence=1e+16
  left preconditioning
  using PRECONDITIONED norm type for convergence test
PC Object: 1 MPI processes
  type: fieldsplit
    FieldSplit with Schur preconditioner, factorization FULL
Preconditioner for the Schur complement formed from Sp, an assembled approximation to S, which uses (the lumped) A00's diagonal's inverse
    Split info:
    Split number 0 Defined by IS
    Split number 1 Defined by IS
    KSP solver for A00 block
      KSP Object:      (fieldsplit_0_)       1 MPI processes
        type: preonly
        maximum iterations=10000, initial guess is zero
        tolerances:  relative=1e-05, absolute=1e-50, divergence=10000
        left preconditioning
        using NONE norm type for convergence test
      PC Object:      (fieldsplit_0_)       1 MPI processes
        type: hypre
          HYPRE Euclid preconditioning
          HYPRE Euclid: number of levels 1
        linear system matrix = precond matrix:
        Mat Object:        (fieldsplit_0_)         1 MPI processes
          type: seqaij
          rows=2000, cols=2000
          total: nonzeros=40000, allocated nonzeros=40000
          total number of mallocs used during MatSetValues calls =0
            using I-node routines: found 400 nodes, limit used is 5
    KSP solver for S = A11 - A10 inv(A00) A01
      KSP Object:      (fieldsplit_1_)       1 MPI processes
        type: gmres
GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement
          GMRES: happy breakdown tolerance 1e-30
        maximum iterations=10000, initial guess is zero
        tolerances:  relative=1e-05, absolute=1e-50, divergence=10000
        left preconditioning
        using PRECONDITIONED norm type for convergence test
      PC Object:      (fieldsplit_1_)       1 MPI processes
        type: gamg
          MG: type is MULTIPLICATIVE, levels=2 cycles=v
            Cycles per PCApply=1
            Using Galerkin computed coarse grid matrices
        Coarse grid solver -- level -------------------------------
          KSP Object: (fieldsplit_1_mg_coarse_)           1 MPI processes
            type: preonly
            maximum iterations=1, initial guess is zero
            tolerances:  relative=1e-05, absolute=1e-50, divergence=10000
            left preconditioning
            using NONE norm type for convergence test
          PC Object: (fieldsplit_1_mg_coarse_)           1 MPI processes
            type: bjacobi
              block Jacobi: number of blocks = 1
Local solve is same for all blocks, in the following KSP and PC objects: KSP Object: (fieldsplit_1_mg_coarse_sub_) 1 MPI processes
                type: preonly
                maximum iterations=1, initial guess is zero
tolerances: relative=1e-05, absolute=1e-50, divergence=10000
                left preconditioning
                using NONE norm type for convergence test
PC Object: (fieldsplit_1_mg_coarse_sub_) 1 MPI processes
                type: lu
                  LU: out-of-place factorization
                  tolerance for zero pivot 2.22045e-14
using diagonal shift on blocks to prevent zero pivot [INBLOCKS]
                  matrix ordering: nd
                  factor fill ratio given 5, needed 1.22785
                    Factored matrix follows:
                      Mat Object:                       1 MPI processes
                        type: seqaij
                        rows=13, cols=13
                        package used to perform factorization: petsc
                        total: nonzeros=97, allocated nonzeros=97
total number of mallocs used during MatSetValues calls =0 using I-node routines: found 10 nodes, limit used is 5
                linear system matrix = precond matrix:
                Mat Object:                 1 MPI processes
                  type: seqaij
                  rows=13, cols=13
                  total: nonzeros=79, allocated nonzeros=79
                  total number of mallocs used during MatSetValues calls =0
                    not using I-node routines
            linear system matrix = precond matrix:
            Mat Object:             1 MPI processes
              type: seqaij
              rows=13, cols=13
              total: nonzeros=79, allocated nonzeros=79
              total number of mallocs used during MatSetValues calls =0
                not using I-node routines
Down solver (pre-smoother) on level 1 -------------------------------
          KSP Object: (fieldsplit_1_mg_levels_1_)           1 MPI processes
            type: chebyshev
Chebyshev: eigenvalue estimates: min = 0.0979919, max = 2.05783
            maximum iterations=2
            tolerances:  relative=1e-05, absolute=1e-50, divergence=10000
            left preconditioning
            using nonzero initial guess
            using NONE norm type for convergence test
          PC Object: (fieldsplit_1_mg_levels_1_)           1 MPI processes
            type: sor
SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1
            linear system matrix followed by preconditioner matrix:
Mat Object: (fieldsplit_1_) 1 MPI processes
              type: schurcomplement
              rows=330, cols=330
                Schur complement A11 - A10 inv(A00) A01
                A11
Mat Object: (fieldsplit_1_) 1 MPI processes
                    type: seqaij
                    rows=330, cols=330
                    total: nonzeros=7642, allocated nonzeros=7642
total number of mallocs used during MatSetValues calls =0 using I-node routines: found 121 nodes, limit used is 5
                A10
                  Mat Object:                   1 MPI processes
                    type: seqaij
                    rows=330, cols=2000
                    total: nonzeros=22800, allocated nonzeros=22800
total number of mallocs used during MatSetValues calls =0 using I-node routines: found 121 nodes, limit used is 5
                KSP of A00
KSP Object: (fieldsplit_0_) 1 MPI processes
                    type: preonly
                    maximum iterations=10000, initial guess is zero
tolerances: relative=1e-05, absolute=1e-50, divergence=10000
                    left preconditioning
                    using NONE norm type for convergence test
PC Object: (fieldsplit_0_) 1 MPI processes
                    type: hypre
                      HYPRE Euclid preconditioning
                      HYPRE Euclid: number of levels 1
                    linear system matrix = precond matrix:
Mat Object: (fieldsplit_0_) 1 MPI processes
                      type: seqaij
                      rows=2000, cols=2000
                      total: nonzeros=40000, allocated nonzeros=40000
total number of mallocs used during MatSetValues calls =0 using I-node routines: found 400 nodes, limit used is 5
                A01
                  Mat Object:                   1 MPI processes
                    type: seqaij
                    rows=2000, cols=330
                    total: nonzeros=22800, allocated nonzeros=22800
total number of mallocs used during MatSetValues calls =0 using I-node routines: found 400 nodes, limit used is 5
            Mat Object:             1 MPI processes
              type: seqaij
              rows=330, cols=330
              total: nonzeros=7642, allocated nonzeros=7642
              total number of mallocs used during MatSetValues calls =0
                using I-node routines: found 121 nodes, limit used is 5
        Up solver (post-smoother) same as down solver (pre-smoother)
        linear system matrix followed by preconditioner matrix:
        Mat Object:        (fieldsplit_1_)         1 MPI processes
          type: schurcomplement
          rows=330, cols=330
            Schur complement A11 - A10 inv(A00) A01
            A11
              Mat Object: (fieldsplit_1_)               1 MPI processes
                type: seqaij
                rows=330, cols=330
                total: nonzeros=7642, allocated nonzeros=7642
                total number of mallocs used during MatSetValues calls =0
                  using I-node routines: found 121 nodes, limit used is 5
            A10
              Mat Object:               1 MPI processes
                type: seqaij
                rows=330, cols=2000
                total: nonzeros=22800, allocated nonzeros=22800
                total number of mallocs used during MatSetValues calls =0
                  using I-node routines: found 121 nodes, limit used is 5
            KSP of A00
              KSP Object: (fieldsplit_0_)               1 MPI processes
                type: preonly
                maximum iterations=10000, initial guess is zero
tolerances: relative=1e-05, absolute=1e-50, divergence=10000
                left preconditioning
                using NONE norm type for convergence test
              PC Object: (fieldsplit_0_)               1 MPI processes
                type: hypre
                  HYPRE Euclid preconditioning
                  HYPRE Euclid: number of levels 1
                linear system matrix = precond matrix:
                Mat Object: (fieldsplit_0_)                 1 MPI processes
                  type: seqaij
                  rows=2000, cols=2000
                  total: nonzeros=40000, allocated nonzeros=40000
                  total number of mallocs used during MatSetValues calls =0
                    using I-node routines: found 400 nodes, limit used is 5
            A01
              Mat Object:               1 MPI processes
                type: seqaij
                rows=2000, cols=330
                total: nonzeros=22800, allocated nonzeros=22800
                total number of mallocs used during MatSetValues calls =0
                  using I-node routines: found 400 nodes, limit used is 5
        Mat Object:         1 MPI processes
          type: seqaij
          rows=330, cols=330
          total: nonzeros=7642, allocated nonzeros=7642
          total number of mallocs used during MatSetValues calls =0
            using I-node routines: found 121 nodes, limit used is 5
  linear system matrix = precond matrix:
  Mat Object:   1 MPI processes
    type: seqaij
    rows=2330, cols=2330
    total: nonzeros=93242, allocated nonzeros=93242
    total number of mallocs used during MatSetValues calls =0
      using I-node routines: found 521 nodes, limit used is 5

I am still missing the same call to DMShellSetCreateGlobalVector()/DMShellSetGlobalVector(), the only difference is that I get this error message twice : )

FYI this how I set my DMShell, KSP and PC:

c Set up the number of fields, the section dofs and the fields sections dofs
      call PetscSectionCreate(PETSC_COMM_WORLD, FSSection, ierr)
      call PetscSectionSetNumFields(FSSection, numFields, ierr)
      call PetscSectionSetChart(FSSection, 1, numpeq+1, ierr)
      call PetscSectionGetChart(FSSection, NF, NE, ierr)

      do some loop over nodes and dofs
                     call PetscSectionSetDof(FSSection, kk, 1, ierr)
call PetscSectionSetFieldDof(FSSection, kk, jj-1,1, ierr)
      enddo

      call PetscSectionSetUp(FSSection, ierr)
c     Create the DM and set the default section
      if(DM_flg) then
         call DMShellCreate(PETSC_COMM_WORLD,FSDM, ierr)
         call DMSetDefaultSection(FSDM, FSSection, ierr)
         call DMSetUp(FSDM, ierr)
      endif

      call KSPCreate        (PETSC_COMM_WORLD, kspsol   ,ierr)

      call PetscOptionsGetString(PETSC_NULL_CHARACTER,'-pc_type',
     &           pctype,chk,ierr)
c     Check for fieldsplit preconditioner to assign a DM to the KSP
      if (chk .eqv. PETSC_TRUE) then
         if(pctype.eq.'fieldsplit') then
            call KSPSetDM(kspsol, FSDM, ierr)
            call KSPSetDMActive(kspsol, PETSC_FALSE, ierr)
         endif
      endif
c       call KSPSetOperators  (kspsol, Kmat, Kmat,
c     &                             DIFFERENT_NONZERO_PATTERN ,ierr)
      call KSPSetOperators(kspsol, Kmat, Kmat, ierr)

c           Options from command line

      call KSPSetFromOptions(kspsol,ierr)

      call KSPGetPC             (kspsol, pc ,      ierr)
      call PCSetCoordinates(pc,ndm,numpn,hr(np(43)),ierr)

Best,
Luc

On 11/21/2014 11:14 AM, Matthew Knepley wrote:
On Fri, Nov 21, 2014 at 9:55 AM, Luc Berger-Vergiat <[email protected] <mailto:[email protected]>> wrote:

    Hi all,
    I am using a DMShell to create to use a fieldsplit preconditioner.
    I would like to try some of petsc's multigrid options: mg and gamg.


Lets start with gamg, since that does not need anything else from the user. If you want to use mg, then you will need to supply the interpolation/restriction operators since we cannot calculate them
without an idea of the discretization.

  Thanks,

     Matt

    When I call my preconditioner:

        -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 hypre
        -fieldsplit_0_pc_hypre_type euclid -fieldsplit_1_ksp_type
        gmres -fieldsplit_1_pc_type mg -malloc_log mlog -log_summary
        time.log -ksp_view

    it returns me the following error message and ksp_view:

    [0]PETSC ERROR: --------------------- Error Message
    --------------------------------------------------------------
    [0]PETSC ERROR:
    [0]PETSC ERROR: Must call DMShellSetGlobalVector() or
    DMShellSetCreateGlobalVector()
    [0]PETSC ERROR: See
    http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble
    shooting.
    [0]PETSC ERROR: Petsc Release Version 3.5.2, Sep, 08, 2014
    [0]PETSC ERROR:
    /home/luc/research/feap_repo/ShearBands/parfeap/feap on a arch-opt
    named euler by luc Fri Nov 21 10:12:53 2014
    [0]PETSC ERROR: Configure options --with-cc=gcc --with-fc=gfortran
    --with-cxx=g++ --with-debugging=0 --with-shared-libraries=0
    --download-fblaslapack --download-mpich --download-parmetis
    --download-metis --download-ml=yes --download-hypre
    --download-superlu_dist --download-mumps --download-scalapack
    [0]PETSC ERROR: #259 DMCreateGlobalVector_Shell() line 245 in
    /home/luc/research/petsc-3.5.2/src/dm/impls/shell/dmshell.c
    [0]PETSC ERROR: #260 DMCreateGlobalVector() line 681 in
    /home/luc/research/petsc-3.5.2/src/dm/interface/dm.c
    [0]PETSC ERROR: #261 DMGetGlobalVector() line 154 in
    /home/luc/research/petsc-3.5.2/src/dm/interface/dmget.c
    KSP Object: 1 MPI processes
      type: gmres
        GMRES: restart=30, using Classical (unmodified) Gram-Schmidt
    Orthogonalization with no iterative refinement
        GMRES: happy breakdown tolerance 1e-30
      maximum iterations=10000, initial guess is zero
      tolerances:  relative=1e-08, absolute=1e-16, divergence=1e+16
      left preconditioning
      using PRECONDITIONED norm type for convergence test
    PC Object: 1 MPI processes
      type: fieldsplit
        FieldSplit with Schur preconditioner, factorization FULL
        Preconditioner for the Schur complement formed from Sp, an
    assembled approximation to S, which uses (the lumped) A00's
    diagonal's inverse
        Split info:
        Split number 0 Defined by IS
        Split number 1 Defined by IS
        KSP solver for A00 block
          KSP Object:      (fieldsplit_0_)       1 MPI processes
            type: preonly
            maximum iterations=10000, initial guess is zero
            tolerances:  relative=1e-05, absolute=1e-50, divergence=10000
            left preconditioning
            using NONE norm type for convergence test
          PC Object:      (fieldsplit_0_)       1 MPI processes
            type: hypre
              HYPRE Euclid preconditioning
              HYPRE Euclid: number of levels 1
            linear system matrix = precond matrix:
            Mat Object:        (fieldsplit_0_)         1 MPI processes
              type: seqaij
              rows=2000, cols=2000
              total: nonzeros=40000, allocated nonzeros=40000
              total number of mallocs used during MatSetValues calls =0
                using I-node routines: found 400 nodes, limit used is 5
        KSP solver for S = A11 - A10 inv(A00) A01
          KSP Object:      (fieldsplit_1_)       1 MPI processes
            type: gmres
              GMRES: restart=30, using Classical (unmodified)
    Gram-Schmidt Orthogonalization with no iterative refinement
              GMRES: happy breakdown tolerance 1e-30
            maximum iterations=10000, initial guess is zero
            tolerances:  relative=1e-05, absolute=1e-50, divergence=10000
            left preconditioning
            using PRECONDITIONED norm type for convergence test
          PC Object:      (fieldsplit_1_)       1 MPI processes
            type: mg
              MG: type is MULTIPLICATIVE, levels=1 cycles=v
                Cycles per PCApply=1
                Not using Galerkin computed coarse grid matrices
            Coarse grid solver -- level -------------------------------
              KSP Object: (fieldsplit_1_mg_levels_0_)           1 MPI
    processes
                type: chebyshev
                  Chebyshev: eigenvalue estimates:  min = 1.70057, max
    = 18.7063
                  Chebyshev: estimated using:  [0 0.1; 0 1.1]
                  KSP Object:
    (fieldsplit_1_mg_levels_0_est_)               1 MPI processes
                    type: gmres
                      GMRES: restart=30, using Classical (unmodified)
    Gram-Schmidt Orthogonalization with no iterative refinement
                      GMRES: happy breakdown tolerance 1e-30
                    maximum iterations=10, initial guess is zero
                    tolerances:  relative=1e-05, absolute=1e-50,
    divergence=10000
                    left preconditioning
                    using NONE norm type for convergence test
PC Object: (fieldsplit_1_mg_levels_0_) 1 MPI processes
                    type: sor
                      SOR: type = local_symmetric, iterations = 1,
    local iterations = 1, omega = 1
                    linear system matrix followed by preconditioner
    matrix:
                    Mat Object: (fieldsplit_1_)                 1 MPI
    processes
                      type: schurcomplement
                      rows=330, cols=330
                        Schur complement A11 - A10 inv(A00) A01
                        A11
                          Mat Object:
    (fieldsplit_1_)                       1 MPI processes
                            type: seqaij
                            rows=330, cols=330
                            total: nonzeros=7642, allocated nonzeros=7642
                            total number of mallocs used during
    MatSetValues calls =0
                              using I-node routines: found 121 nodes,
    limit used is 5
                        A10
                          Mat Object:                       1 MPI
    processes
                            type: seqaij
                            rows=330, cols=2000
                            total: nonzeros=22800, allocated
    nonzeros=22800
                            total number of mallocs used during
    MatSetValues calls =0
                              using I-node routines: found 121 nodes,
    limit used is 5
                        KSP of A00
                          KSP Object:
    (fieldsplit_0_)                       1 MPI processes
                            type: preonly
                            maximum iterations=10000, initial guess is
    zero
                            tolerances:  relative=1e-05,
    absolute=1e-50, divergence=10000
                            left preconditioning
                            using NONE norm type for convergence test
                          PC Object:
    (fieldsplit_0_)                       1 MPI processes
                            type: hypre
                              HYPRE Euclid preconditioning
                              HYPRE Euclid: number of levels 1
                            linear system matrix = precond matrix:
                            Mat Object:
    (fieldsplit_0_)                         1 MPI processes
                              type: seqaij
                              rows=2000, cols=2000
                              total: nonzeros=40000, allocated
    nonzeros=40000
                              total number of mallocs used during
    MatSetValues calls =0
                                using I-node routines: found 400
    nodes, limit used is 5
                        A01
                          Mat Object:                       1 MPI
    processes
                            type: seqaij
                            rows=2000, cols=330
                            total: nonzeros=22800, allocated
    nonzeros=22800
                            total number of mallocs used during
    MatSetValues calls =0
                              using I-node routines: found 400 nodes,
    limit used is 5
                    Mat Object:                 1 MPI processes
                      type: seqaij
                      rows=330, cols=330
                      total: nonzeros=7642, allocated nonzeros=7642
                      total number of mallocs used during MatSetValues
    calls =0
                        using I-node routines: found 121 nodes, limit
    used is 5
                maximum iterations=1, initial guess is zero
                tolerances:  relative=1e-05, absolute=1e-50,
    divergence=10000
                left preconditioning
                using NONE norm type for convergence test
              PC Object: (fieldsplit_1_mg_levels_0_)           1 MPI
    processes
                type: sor
                  SOR: type = local_symmetric, iterations = 1, local
    iterations = 1, omega = 1
                linear system matrix followed by preconditioner matrix:
                Mat Object: (fieldsplit_1_)             1 MPI processes
                  type: schurcomplement
                  rows=330, cols=330
                    Schur complement A11 - A10 inv(A00) A01
                    A11
                      Mat Object: (fieldsplit_1_)                   1
    MPI processes
                        type: seqaij
                        rows=330, cols=330
                        total: nonzeros=7642, allocated nonzeros=7642
                        total number of mallocs used during
    MatSetValues calls =0
                          using I-node routines: found 121 nodes,
    limit used is 5
                    A10
                      Mat Object:                   1 MPI processes
                        type: seqaij
                        rows=330, cols=2000
                        total: nonzeros=22800, allocated nonzeros=22800
                        total number of mallocs used during
    MatSetValues calls =0
                          using I-node routines: found 121 nodes,
    limit used is 5
                    KSP of A00
                      KSP Object: (fieldsplit_0_)                   1
    MPI processes
                        type: preonly
                        maximum iterations=10000, initial guess is zero
                        tolerances:  relative=1e-05, absolute=1e-50,
    divergence=10000
                        left preconditioning
                        using NONE norm type for convergence test
                      PC Object: (fieldsplit_0_)                   1
    MPI processes
                        type: hypre
                          HYPRE Euclid preconditioning
                          HYPRE Euclid: number of levels 1
                        linear system matrix = precond matrix:
                        Mat Object:
    (fieldsplit_0_)                     1 MPI processes
                          type: seqaij
                          rows=2000, cols=2000
                          total: nonzeros=40000, allocated nonzeros=40000
                          total number of mallocs used during
    MatSetValues calls =0
                            using I-node routines: found 400 nodes,
    limit used is 5
                    A01
                      Mat Object:                   1 MPI processes
                        type: seqaij
                        rows=2000, cols=330
                        total: nonzeros=22800, allocated nonzeros=22800
                        total number of mallocs used during
    MatSetValues calls =0
                          using I-node routines: found 400 nodes,
    limit used is 5
                Mat Object:             1 MPI processes
                  type: seqaij
                  rows=330, cols=330
                  total: nonzeros=7642, allocated nonzeros=7642
                  total number of mallocs used during MatSetValues
    calls =0
                    using I-node routines: found 121 nodes, limit used
    is 5
            linear system matrix followed by preconditioner matrix:
            Mat Object:        (fieldsplit_1_)         1 MPI processes
              type: schurcomplement
              rows=330, cols=330
                Schur complement A11 - A10 inv(A00) A01
                A11
                  Mat Object: (fieldsplit_1_)               1 MPI
    processes
                    type: seqaij
                    rows=330, cols=330
                    total: nonzeros=7642, allocated nonzeros=7642
                    total number of mallocs used during MatSetValues
    calls =0
                      using I-node routines: found 121 nodes, limit
    used is 5
                A10
                  Mat Object:               1 MPI processes
                    type: seqaij
                    rows=330, cols=2000
                    total: nonzeros=22800, allocated nonzeros=22800
                    total number of mallocs used during MatSetValues
    calls =0
                      using I-node routines: found 121 nodes, limit
    used is 5
                KSP of A00
                  KSP Object: (fieldsplit_0_)               1 MPI
    processes
                    type: preonly
                    maximum iterations=10000, initial guess is zero
                    tolerances:  relative=1e-05, absolute=1e-50,
    divergence=10000
                    left preconditioning
                    using NONE norm type for convergence test
                  PC Object: (fieldsplit_0_)               1 MPI processes
                    type: hypre
                      HYPRE Euclid preconditioning
                      HYPRE Euclid: number of levels 1
                    linear system matrix = precond matrix:
                    Mat Object: (fieldsplit_0_)                 1 MPI
    processes
                      type: seqaij
                      rows=2000, cols=2000
                      total: nonzeros=40000, allocated nonzeros=40000
                      total number of mallocs used during MatSetValues
    calls =0
                        using I-node routines: found 400 nodes, limit
    used is 5
                A01
                  Mat Object:               1 MPI processes
                    type: seqaij
                    rows=2000, cols=330
                    total: nonzeros=22800, allocated nonzeros=22800
                    total number of mallocs used during MatSetValues
    calls =0
                      using I-node routines: found 400 nodes, limit
    used is 5
            Mat Object:         1 MPI processes
              type: seqaij
              rows=330, cols=330
              total: nonzeros=7642, allocated nonzeros=7642
              total number of mallocs used during MatSetValues calls =0
                using I-node routines: found 121 nodes, limit used is 5
      linear system matrix = precond matrix:
      Mat Object:   1 MPI processes
        type: seqaij
        rows=2330, cols=2330
        total: nonzeros=93242, allocated nonzeros=93242
        total number of mallocs used during MatSetValues calls =0
          using I-node routines: found 521 nodes, limit used is 5

    I am not completely surprised by this since the multigrid
    algorithm might want to know the structure of my vector in order
    to do a good job at restrictions and prolongations, etc... I am
    just not sure when I should call: DMShellSetGlobalVector() or
    DMShellSetCreateGlobalVector().
    If I call DMShellSetGlobalVector() I assume that I need to
    generate my vector somehow before hand but I don't know what is
    required to make it a valid "template" vector?
    If I call DMShellSetCreateGlobalVector() I need to pass it a
    functions that computes a vector but what kind of vector? A
    residual or a "template"? This is not very clear to me...

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

Reply via email to