<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>Hi. Indeed creating a vec like in DMCreateInterpolationScale does
      the job.</p>
    <p>Thank you!</p>
    <p>Matteo & Samuele<br>
    </p>
    <p>On 10/12/2024 17:27, Barry Smith wrote:</p>
    <blockquote type="cite" cite="mid:6310733B-AECC-40AF-B63F-95ADBC9A8DA3@petsc.dev">
      
      <div><br>
      </div>
         Beats me :-) Just set it to whatever the DMDA sets it too 
      <div><br>
      </div>
      <div>  Barry</div>
      <div><br id="lineBreakAtBeginningOfMessage">
        <div><br>
          <blockquote type="cite">
            <div>On Dec 10, 2024, at 11:20 AM, Matteo Semplice
              <a class="moz-txt-link-rfc2396E" href="mailto:matteo.semplice@uninsubria.it"><matteo.semplice@uninsubria.it></a> wrote:</div>
            <br class="Apple-interchange-newline">
            <div>
              <div>
                <p>Thanks, Barry.<br>
                </p>
                <p>Just to be sure, one should refer to the help of <a class="moz-txt-link-freetext" href="https://urldefense.us/v3/__https://petsc.org/release/manualpages/DM/DMCreateInterpolationScale/__;!!G_uCfscf7eWS!ZIJKHA2S0bAQI-Aea29FNqC4ZzzTaTqYr_2n6i3DkrdUoub4yRrIlmdsYpESo1wSqyGMK4FAk1NBt_WyJvQANYWMxdSgl5M7s1pT4w$" moz-do-not-send="true">https://petsc.org/release/manualpages/DM/DMCreateInterpolationScale/</a>
                  and the vec should be set to the point-wise inverse of
                  (INTERPOLATION)*(vector of ones)  ?</p>
                <div class="moz-cite-prefix">Matteo</div>
                <div class="moz-cite-prefix"><br>
                </div>
                <div class="moz-cite-prefix">On 10/12/2024 16:38, Barry
                  Smith wrote:<br>
                </div>
                <blockquote type="cite" cite="mid:97C19201-BA91-4661-9E03-0CD1817AA663@petsc.dev">
                  <div><br>
                  </div>
                     It appears you are completely ignoring the vec
                  argument? Take a look at, for
                  example, DMCreateInterpolation_DA() you will see you
                  need to provide an appropriate vec in the same way you
                  need (and do) provide an appropriate mat.
                  <div><br>
                  </div>
                  <div>   Barry</div>
                  <div><br id="lineBreakAtBeginningOfMessage">
                    <div><br>
                      <blockquote type="cite">
                        <div>On Dec 10, 2024, at 7:02 AM, Matteo
                          Semplice via petsc-users <a class="moz-txt-link-rfc2396E" href="mailto:petsc-users@mcs.anl.gov" moz-do-not-send="true"><petsc-users@mcs.anl.gov></a>
                          wrote:</div>
                        <br class="Apple-interchange-newline">
                        <div>
                          <div>
                            <p>Dear petsc-users,</p>
                            <p>    I am trying with a student to modify
                              the MG example 65 to use mat-shells
                              instead of assembled matrices. Our use
                              case is for a method that will use custom
                              shell operators and shell
                              interpolation/restrictions.</p>
                            <p>To start we have modified ex65 and tried
                              to replace the standard
                              restriction/interpolation with a shell
                              matrix that performs the same operations
                              on the DMDA grids.<br>
                            </p>
                            <p>I attach our modifications to ex65.</p>
                            <p>The problem is that the code sometimes
                              completes execution and sometimes errors
                              out like<br>
                            </p>
                            <p><span style="font-family:monospace"><span style="background-color: rgb(255, 255, 255);">$ ./ex65shell -ksp_monitor
                                  -pc_type mg -da_refine 2 -ksp_rtol
                                  1e-1  </span><br>
                                >> Created DMshell 0x55bbc83c91a0
                                (0x55bbc8390a80) <br>
                                Calling KSPSolve from main <br>
                                computeRHS on grid 513 <br>
                                computeMatrix on grid 513 <br>
                                Inside Coarsen <br>
                                >> Created DMshell 0x55bbc84c5270
                                (0x55bbc84b2ff0) <br>
                                Inside Coarsen <br>
                                >> Created DMshell 0x55bbc84e0a30
                                (0x55bbc84bdb60) <br>
                                >> Create interpolation from
                                0x55bbc84c5270(0x55bbc84b2ff0) to
                                0x55bbc83c91a0(0x55bbc8390a80) <br>
                                <span style="font-weight:bold;color:#ff5454;background-color:#ffffff;">[0]PETSC
                                  ERROR: --------------------- Error
                                  Message
                                  --------------------------------------------------------------</span><span style="background-color: rgb(255, 255, 255);"> </span><br>
                                [0]PETSC ERROR: Invalid pointer <br>
                                [0]PETSC ERROR: Invalid Pointer to
                                PetscObject: Argument 'obj' (parameter #
                                1) <br>
                                [0]PETSC ERROR: See <a class="moz-txt-link-freetext" href="https://urldefense.us/v3/__https://petsc.org/release/faq/__;!!G_uCfscf7eWS!Y29qRoOD71oxcd-BQFTUohkIToMJNW3puZ3CerpZ6pBnecqhBQ8TBwhSnikLt4BYQTmsBgtKvoCFi-JuLXQAE_Oe_a_d2XOL8KvOmw$" moz-do-not-send="true">https://petsc.org/release/faq/</a>
                                for trouble shooting. <br>
                                [0]PETSC ERROR: Petsc Release Version
                                3.22.0, unknown  <br>
                                [0]PETSC ERROR: ./ex65shell with 1 MPI
                                process(es) and PETSC_ARCH  on
                                signalkuppe by matteo Tue Dec 10
                                12:55:12 2024 <br>
                                [0]PETSC ERROR: Configure options:
                                --prefix=/home/matteo/software/petscsaved/3.22-opt/
                                PETSC_DIR=/home/matteo/software/petsc
                                --PETSC_ARCH=dbg --with-debugging=1
                                --with-st<br>
                                rict-petscerrorcode --download-hdf5
                                --download-ml --with-metis
                                --with-parmetis --with-gmsh
                                --with-triangle --with-zlib
                                --with-p4est-dir=~/software/p4est/local/
                                <br>
                                [0]PETSC ERROR: #1
                                PetscObjectReference() at
                                /home/matteo/software/petsc/src/sys/objects/inherit.c:620
                                <br>
                                [0]PETSC ERROR: #2 PCMGSetRScale() at
                                /home/matteo/software/petsc/src/ksp/pc/impls/mg/mgfunc.c:394
                                <br>
                                [0]PETSC ERROR: #3 PCSetUp_MG() at
                                /home/matteo/software/petsc/src/ksp/pc/impls/mg/mg.c:998
                                <br>
                                [0]PETSC ERROR: #4 PCSetUp() at
                                /home/matteo/software/petsc/src/ksp/pc/interface/precon.c:1071
                                <br>
                                [0]PETSC ERROR: #5 KSPSetUp() at
                                /home/matteo/software/petsc/src/ksp/ksp/interface/itfunc.c:415
                                <br>
                                [0]PETSC ERROR: #6 KSPSolve_Private() at
/home/matteo/software/petsc/src/ksp/ksp/interface/itfunc.c:826 <br>
                                [0]PETSC ERROR: #7 KSPSolve() at
                                /home/matteo/software/petsc/src/ksp/ksp/interface/itfunc.c:1075
                                <br>
                                [0]PETSC ERROR: #8 main() at
                                ../src/ex65shell.c:79 <br>
                                [0]PETSC ERROR: PETSc Option Table
                                entries: <br>
                                [0]PETSC ERROR: -da_refine 2 (source:
                                command line) <br>
                                [0]PETSC ERROR: -ksp_monitor (source:
                                command line) <br>
                                [0]PETSC ERROR: -ksp_rtol 1e-1 (source:
                                command line) <br>
                                [0]PETSC ERROR: -pc_type mg (source:
                                command line) <br>
                                <span style="font-weight:bold;color:#ff5454;background-color:#ffffff;">[0]PETSC
                                  ERROR: ----------------End of Error
                                  Message -------send entire error
                                  message to <a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:petsc-maint@mcs.anl.gov" moz-do-not-send="true">petsc-maint@mcs.anl.gov</a>----------</span><br>
                              </span></p>
                            <p>In all cases valgrind complains like<br>
                            </p>
                            <p><span style="font-family:monospace"><span style="background-color: rgb(255, 255, 255);">$ valgrind ./ex65shell
                                  -ksp_monitor -pc_type mg -da_refine 2
                                  -ksp_rtol 1e-1 -int_view
                                  ascii::ascii_info </span><br>
                                ==2130767== Memcheck, a memory error
                                detector <br>
                                ==2130767== Copyright (C) 2002-2022, and
                                GNU GPL'd, by Julian Seward et al. <br>
                                ==2130767== Using Valgrind-3.19.0 and
                                LibVEX; rerun with -h for copyright info
                                <br>
                                ==2130767== Command: ./ex65shell
                                -ksp_monitor -pc_type mg -da_refine 2
                                -ksp_rtol 1e-1 -int_view
                                ascii::ascii_info <br>
                                ==2130767==  <br>
                                hwloc x86 backend cannot work under
                                Valgrind, disabling. <br>
                                May be reenabled by dumping CPUIDs with
                                hwloc-gather-cpuid <br>
                                and reloading them under Valgrind with
                                HWLOC_CPUID_PATH. <br>
                                >> Created DMshell 0xfbf50f0
                                (0xfb49480) <br>
                                Calling KSPSolve from main <br>
                                computeRHS on grid 513 <br>
                                computeMatrix on grid 513 <br>
                                Inside Coarsen <br>
                                >> Created DMshell 0xff404a0
                                (0xff062d0) <br>
                                Inside Coarsen <br>
                                >> Created DMshell 0xff78ca0
                                (0xff4a530) <br>
                                >> Create interpolation from
                                0xff404a0(0xff062d0) to
                                0xfbf50f0(0xfb49480) <br>
                                Mat Object: 1 MPI process <br>
                                 type: shell <br>
                                 rows=513, cols=257 <br>
                                ==2130767== Conditional jump or move
                                depends on uninitialised value(s) <br>
                                ==2130767==    at 0x83FDAAE: PCSetUp_MG
                                (mg.c:998) <br>
                                ==2130767==    by 0x8620C04: PCSetUp
                                (precon.c:1071) <br>
                                ==2130767==    by 0x7DA78D5: KSPSetUp
                                (itfunc.c:415) <br>
                                ==2130767==    by 0x7DB2093:
                                KSPSolve_Private (itfunc.c:826) <br>
                                ==2130767==    by 0x7DB7A53: KSPSolve
                                (itfunc.c:1075) <br>
                                ==2130767==    by 0x10D2F7: main
                                (ex65shell.c:79) <br>
                                ==2130767==  <br>
                                ==2130767== Conditional jump or move
                                depends on uninitialised value(s) <br>
                                ==2130767==    at 0x5794061: VecDestroy
                                (vector.c:570) <br>
                                ==2130767==    by 0x83FDC36: PCSetUp_MG
                                (mg.c:999) <br>
                                ==2130767==    by 0x8620C04: PCSetUp
                                (precon.c:1071) <br>
                                ==2130767==    by 0x7DA78D5: KSPSetUp
                                (itfunc.c:415) <br>
                                ==2130767==    by 0x7DB2093:
                                KSPSolve_Private (itfunc.c:826) <br>
                                ==2130767==    by 0x7DB7A53: KSPSolve
                                (itfunc.c:1075) <br>
                                ==2130767==    by 0x10D2F7: main
                                (ex65shell.c:79) <br>
                                ==2130767== <br>
                              </span></p>
                            <p>We are clearly doing something wrong
                              since PCSetUp_MG (mg.c:998)  is an area of
                              code where I wouldn't expect we would
                              enter.</p>
                            <p>Can you advise on the proper way to
                              achieve our goal?<br>
                            </p>
                            <p>Best regards</p>
                            <p>    Matteo<br>
                            </p>
                          </div>
                          <span id="cid:2ED6A6D4-97BD-49C4-B25B-EC46C444CE4F"><ex65.patch></span></div>
                      </blockquote>
                    </div>
                    <br>
                  </div>
                </blockquote>
                <pre class="moz-signature" cols="72">-- 
Prof. Matteo Semplice
Università degli Studi dell’Insubria
Dipartimento di Scienza e Alta Tecnologia – DiSAT
Professore Associato
Via Valleggio, 11 – 22100 Como (CO) – Italia
tel.: +39 031 2386316</pre>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
Prof. Matteo Semplice
Università degli Studi dell’Insubria
Dipartimento di Scienza e Alta Tecnologia – DiSAT
Professore Associato
Via Valleggio, 11 – 22100 Como (CO) – Italia
tel.: +39 031 2386316</pre>
  </body>
</html>