It made some progress :-) It would be quickest if you just sent me your code (you can use [email protected] <mailto:[email protected]> if you don't want it public).
> Somehow I thought that setting ComputeOperators and ComputeRHS will be > enough.. I think it is failing because though you provide code to fill up the matrices you never provide the matrices; it may be implicit in the use of KSPSetComputeOperators that you provide a DM that can create the matrices for each of the levels automatically inside the PCSetUp_MG. Barry > On Sep 12, 2022, at 1:26 PM, Oleg Shatrov <[email protected]> wrote: > > Unfortunately it still failed. > > [0]PETSC ERROR: --------------------- Error Message > -------------------------------------------------------------- > [0]PETSC ERROR: Must call DMShellSetGlobalVector() or > DMShellSetCreateGlobalVector() > [0]PETSC ERROR: See https://petsc.org/release/faq/ > <https://petsc.org/release/faq/> for trouble shooting. > [0]PETSC ERROR: Petsc Development GIT revision: v3.17.3-770-gceb9926454c GIT > Date: 2022-07-15 21:35:25 +0000 > [0]PETSC ERROR: ./a.out on a named MacBook-Pro-Oleg.local by olegshatrov Mon > Sep 12 19:59:34 2022 > [0]PETSC ERROR: Configure options --prefix=/usr/local CFLAGS="-m64 -O0 -g" > CXXFLAGS="-m64 -O0 -g" FCFLAGS="-m64 -O0 -g -ffree-line-length-none" > --with-mem-debug=1 --with-debugging=1 --with-mpi-dir=/usr/local/ > --with-moab=true > [0]PETSC ERROR: #1 DMCreateGlobalVector_Shell() at > /Users/olegshatrov/Documents/GitHub/petsc/src/dm/impls/shell/dmshell.c:206 > [0]PETSC ERROR: #2 DMCreateGlobalVector() at > /Users/olegshatrov/Documents/GitHub/petsc/src/dm/interface/dm.c:998 > [0]PETSC ERROR: #3 DMGetGlobalVector() at > /Users/olegshatrov/Documents/GitHub/petsc/src/dm/interface/dmget.c:161 > [0]PETSC ERROR: #4 KSPCreateVecs() at > /Users/olegshatrov/Documents/GitHub/petsc/src/ksp/ksp/interface/iterativ.c:1616 > [0]PETSC ERROR: #5 KSPSetWorkVecs() at > /Users/olegshatrov/Documents/GitHub/petsc/src/ksp/ksp/interface/iterativ.c:1684 > [0]PETSC ERROR: #6 KSPSetUp_Chebyshev() at > /Users/olegshatrov/Documents/GitHub/petsc/src/ksp/ksp/impls/cheby/cheby.c:46 > [0]PETSC ERROR: #7 KSPSetUp() at > /Users/olegshatrov/Documents/GitHub/petsc/src/ksp/ksp/interface/itfunc.c:362 > [0]PETSC ERROR: #8 PCSetUp_MG() at > /Users/olegshatrov/Documents/GitHub/petsc/src/ksp/pc/impls/mg/mg.c:1189 > [0]PETSC ERROR: #9 PCSetUp() at > /Users/olegshatrov/Documents/GitHub/petsc/src/ksp/pc/interface/precon.c:991 > [0]PETSC ERROR: #10 KSPSetUp() at > /Users/olegshatrov/Documents/GitHub/petsc/src/ksp/ksp/interface/itfunc.c:401 > [0]PETSC ERROR: #11 main() at ex28.c:67 > [0]PETSC ERROR: No PETSc Option Table entries > [0]PETSC ERROR: ----------------End of Error Message -------send entire error > message to [email protected] > -------------------------------------------------------------------------- > > Somehow I thought that setting ComputeOperators and ComputeRHS will be > enough.. > > Oleg. > > > пн, 12 сент. 2022 г. в 19:23, Barry Smith <[email protected] > <mailto:[email protected]>>: > > In PCSetUp_MG() it is creating needed vectors for each level. In order to > create the vectors it needs to have a "template" of the vectors. It tries > several ways to get such a template. > > If you have provided an vector for each level with PCMGSetRhs() it uses > VecDuplicate for the needed vectors. > > If you provided a matrix for each level with PCMGSetOperators() it uses the > MatCreateVectors() using that matrix > > If you have not provided either of those it tries DMCreateGlobalVector() for > the DM associated with that level, if there is no DM it defaults to DMShell > and then errors. > > Since it errors this seems to indicate you did not provide an operator for > each level, nor a right hand side vector. > > Please find attached a patch that may resolve the issue for. > > In the petsc directory do > patch -p1 < mg.patch > make libs > > then rerun your example. Please let us know if it resolves the problem and if > not send the complete error message > > Barry > > > > >> On Sep 12, 2022, at 11:02 AM, Oleg Shatrov <[email protected] >> <mailto:[email protected]>> wrote: >> >> Hello! >> >> Can somebody explain to me what I am doing wrong here? >> I took tutorial 28 from KSP folder and modified it a little in order to >> create manual DM interpolations and set them to PC. >> When i run the application I receive an error: >> >> [0]PETSC ERROR: --------------------- Error Message >> -------------------------------------------------------------- >> [0]PETSC ERROR: Must call DMShellSetGlobalVector() or >> DMShellSetCreateGlobalVector() >> [0]PETSC ERROR: See https://petsc.org/release/faq/ >> <https://petsc.org/release/faq/> for trouble shooting. >> [0]PETSC ERROR: Petsc Development GIT revision: v3.17.3-770-gceb9926454c >> GIT Date: 2022-07-15 21:35:25 +0000 >> [0]PETSC ERROR: ./a.out on a named MacBook-Pro-Oleg.local by olegshatrov >> Mon Sep 12 17:53:13 2022 >> [0]PETSC ERROR: Configure options --prefix=/usr/local CFLAGS="-m64 -O0 -g" >> CXXFLAGS="-m64 -O0 -g" FCFLAGS="-m64 -O0 -g -ffree-line-length-none" >> --with-mem-debug=1 --with-debugging=1 --with-mpi-dir=/usr/local/ >> --with-moab=true >> [0]PETSC ERROR: #1 DMCreateGlobalVector_Shell() at >> /Users/olegshatrov/Documents/GitHub/petsc/src/dm/impls/shell/dmshell.c:206 >> [0]PETSC ERROR: #2 DMCreateGlobalVector() at >> /Users/olegshatrov/Documents/GitHub/petsc/src/dm/interface/dm.c:998 >> [0]PETSC ERROR: #3 DMGetGlobalVector() at >> /Users/olegshatrov/Documents/GitHub/petsc/src/dm/interface/dmget.c:161 >> [0]PETSC ERROR: #4 KSPCreateVecs() at >> /Users/olegshatrov/Documents/GitHub/petsc/src/ksp/ksp/interface/iterativ.c:1616 >> [0]PETSC ERROR: #5 PCSetUp_MG() at >> /Users/olegshatrov/Documents/GitHub/petsc/src/ksp/pc/impls/mg/mg.c:1129 >> [0]PETSC ERROR: #6 PCSetUp() at >> /Users/olegshatrov/Documents/GitHub/petsc/src/ksp/pc/interface/precon.c:991 >> [0]PETSC ERROR: #7 KSPSetUp() at >> /Users/olegshatrov/Documents/GitHub/petsc/src/ksp/ksp/interface/itfunc.c:401 >> [0]PETSC ERROR: #8 main() at ex28.c:67 >> [0]PETSC ERROR: No PETSc Option Table entries >> [0]PETSC ERROR: ----------------End of Error Message -------send entire >> error message to [email protected] >> <mailto:[email protected]>---------- >> -------------------------------------------------------------------------- >> >> And this is strange, since I did not provide any Shell DM. >> When i comment out lines with setting interpolation matrix to PCMG >> everything works fine: >> <image.png> >> >> I am testing on MacOS 12.3. >> MPI: Open MPI: 4.1.4 >> gcc version 12.1.0 >> Program is compiled with mpicc ex28.c -I /usr/local/include/ -L >> /usr/local/lib -lpetsc >> >> >> Thanks in advance, >> Oleg >> <ex28.c> >
