Thanks for the answer. Finally I generate a submatrix and It worked.
Kind regards. El mar., 18 de feb. de 2020 a la(s) 03:51, Jose E. Roman ([email protected]) escribió: > You put alpha on the diagonal of A and beta on the diagonal of B to get an > eigenvalue lambda=alpha/beta. If you set beta=0 then lambda=Inf. The choice > depends on where your wanted eigenvalues are and how you are solving the > eigenproblem. The choice of lambda=Inf suggested by Jeremy avoids inserting > eigenvalues that may interfere with the problem's eigenvalues, but this is > good for shift-and-invert, not for the case where you solve linear systems > with B. > > Anyway, this kind of manipulation may have an impact on convergence of the > eigensolver or on conditioning of the linear solves. A possibly better > approach is just to get rid of the BC unknowns by creating smaller A, B > matrices, e.g. with MatGetSubMatrix(). > > Jose > > > El 18 feb 2020, a las 0:41, Matthew Knepley <[email protected]> escribió: > > On Mon, Feb 17, 2020 at 4:33 PM Emmanuel Ayala <[email protected]> wrote: > >> Hi, >> >> Thank you for the clarification, now I understand what means change those >> values, and I tried to do that. >> >> But if I put the row i to the identity in A, and zero in B, the solver >> crash: >> > > So if you need to factor B, maybe reverse it? > > Thanks, > > Matt > > >> [0]PETSC ERROR: --------------------- Error Message >> -------------------------------------------------------------- >> [0]PETSC ERROR: Error in external library >> [1]PETSC ERROR: --------------------- Error Message >> -------------------------------------------------------------- >> [1]PETSC ERROR: Error in external library >> [1]PETSC ERROR: Error reported by MUMPS in numerical factorization phase: >> INFOG(1)=-10, INFO(2)=0 >> >> [1]PETSC ERROR: See https://www.mcs.anl.gov/petsc/documentation/faq.html for >> trouble shooting. >> [1]PETSC ERROR: Petsc Release Version 3.12.3, Jan, 03, 2020 >> [1]PETSC ERROR: [2]PETSC ERROR: --------------------- Error Message >> -------------------------------------------------------------- >> [2]PETSC ERROR: Error in external library >> [2]PETSC ERROR: Error reported by MUMPS in numerical factorization phase: >> INFOG(1)=-10, INFO(2)=0 >> >> [2]PETSC ERROR: See https://www.mcs.anl.gov/petsc/documentation/faq.html for >> trouble shooting. >> [2]PETSC ERROR: Petsc Release Version 3.12.3, Jan, 03, 2020 >> [2]PETSC ERROR: ./comp on a arch-linux-c-opt-O2-mumps named ayala by >> ayala Mon Feb 17 15:28:01 2020 >> [3]PETSC ERROR: --------------------- Error Message >> -------------------------------------------------------------- >> [3]PETSC ERROR: Error in external library >> [3]PETSC ERROR: Error reported by MUMPS in numerical factorization phase: >> INFOG(1)=-10, INFO(2)=0 >> >> [3]PETSC ERROR: See https://www.mcs.anl.gov/petsc/documentation/faq.html for >> trouble shooting. >> [3]PETSC ERROR: Petsc Release Version 3.12.3, Jan, 03, 2020 >> [3]PETSC ERROR: ./comp on a arch-linux-c-opt-O2-mumps named ayala by >> ayala Mon Feb 17 15:28:01 2020 >> [3]PETSC ERROR: Configure options --with-debugging=0 COPTFLAGS="-O2 >> -march=native -mtune=native" CXXOPTFLAGS="-O2 -march=native -mtune=native" >> FOPTFLAGS="-O2 -march=native -mtune=native" --download-mpich >> --download-mumps --download-scalapack --download-parmetis --download-metis >> --download-superlu_dist --download-cmake --download-fblaslapack=1 >> --with-cxx-dialect=C++11 >> [3]PETSC ERROR: #1 MatFactorNumeric_MUMPS() line 1365 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/mat/impls/aij/mpi/mumps/mumps.c >> [0]PETSC ERROR: Error reported by MUMPS in numerical factorization phase: >> INFOG(1)=-10, INFO(2)=33 >> >> [0]PETSC ERROR: See https://www.mcs.anl.gov/petsc/documentation/faq.html for >> trouble shooting. >> [0]PETSC ERROR: Petsc Release Version 3.12.3, Jan, 03, 2020 >> [0]PETSC ERROR: ./comp on a arch-linux-c-opt-O2-mumps named ayala by >> ayala Mon Feb 17 15:28:01 2020 >> [0]PETSC ERROR: Configure options --with-debugging=0 COPTFLAGS="-O2 >> -march=native -mtune=native" CXXOPTFLAGS="-O2 -march=native -mtune=native" >> FOPTFLAGS="-O2 -march=native -mtune=native" --download-mpich >> --download-mumps --download-scalapack --download-parmetis --download-metis >> --download-superlu_dist --download-cmake --download-fblaslapack=1 >> --with-cxx-dialect=C++11 >> [0]PETSC ERROR: #1 MatFactorNumeric_MUMPS() line 1365 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/mat/impls/aij/mpi/mumps/mumps.c >> ./comp on a arch-linux-c-opt-O2-mumps named ayala by ayala Mon Feb 17 >> 15:28:01 2020 >> [1]PETSC ERROR: Configure options --with-debugging=0 COPTFLAGS="-O2 >> -march=native -mtune=native" CXXOPTFLAGS="-O2 -march=native -mtune=native" >> FOPTFLAGS="-O2 -march=native -mtune=native" --download-mpich >> --download-mumps --download-scalapack --download-parmetis --download-metis >> --download-superlu_dist --download-cmake --download-fblaslapack=1 >> --with-cxx-dialect=C++11 >> [1]PETSC ERROR: #1 MatFactorNumeric_MUMPS() line 1365 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/mat/impls/aij/mpi/mumps/mumps.c >> [1]PETSC ERROR: #2 MatLUFactorNumeric() line 3057 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/mat/interface/matrix.c >> [2]PETSC ERROR: Configure options --with-debugging=0 COPTFLAGS="-O2 >> -march=native -mtune=native" CXXOPTFLAGS="-O2 -march=native -mtune=native" >> FOPTFLAGS="-O2 -march=native -mtune=native" --download-mpich >> --download-mumps --download-scalapack --download-parmetis --download-metis >> --download-superlu_dist --download-cmake --download-fblaslapack=1 >> --with-cxx-dialect=C++11 >> [2]PETSC ERROR: #1 MatFactorNumeric_MUMPS() line 1365 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/mat/impls/aij/mpi/mumps/mumps.c >> [2]PETSC ERROR: #2 MatLUFactorNumeric() line 3057 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/mat/interface/matrix.c >> [2]PETSC ERROR: [3]PETSC ERROR: #2 MatLUFactorNumeric() line 3057 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/mat/interface/matrix.c >> [3]PETSC ERROR: #3 PCSetUp_LU() line 126 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/ksp/pc/impls/factor/lu/lu.c >> [3]PETSC ERROR: #4 PCSetUp() line 894 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/ksp/pc/interface/precon.c >> [0]PETSC ERROR: #2 MatLUFactorNumeric() line 3057 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/mat/interface/matrix.c >> [0]PETSC ERROR: #3 PCSetUp_LU() line 126 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/ksp/pc/impls/factor/lu/lu.c >> [0]PETSC ERROR: [1]PETSC ERROR: #3 PCSetUp_LU() line 126 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/ksp/pc/impls/factor/lu/lu.c >> [1]PETSC ERROR: #4 PCSetUp() line 894 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/ksp/pc/interface/precon.c >> [1]PETSC ERROR: #3 PCSetUp_LU() line 126 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/ksp/pc/impls/factor/lu/lu.c >> [2]PETSC ERROR: #4 PCSetUp() line 894 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/ksp/pc/interface/precon.c >> [2]PETSC ERROR: #5 KSPSetUp() line 376 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/ksp/ksp/interface/itfunc.c >> [3]PETSC ERROR: #5 KSPSetUp() line 376 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/ksp/ksp/interface/itfunc.c >> [3]PETSC ERROR: #6 STSetUp_Shift() line 120 in >> /home/ayala/Documents/SLEPc/slepc-3.12.2/src/sys/classes/st/impls/shift/shift.c >> #4 PCSetUp() line 894 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/ksp/pc/interface/precon.c >> [0]PETSC ERROR: #5 KSPSetUp() line 376 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/ksp/ksp/interface/itfunc.c >> [0]PETSC ERROR: #6 STSetUp_Shift() line 120 in >> /home/ayala/Documents/SLEPc/slepc-3.12.2/src/sys/classes/st/impls/shift/shift.c >> [0]PETSC ERROR: #5 KSPSetUp() line 376 in >> /home/ayala/Documents/PETSc/petsc-3.12.3/src/ksp/ksp/interface/itfunc.c >> [1]PETSC ERROR: #6 STSetUp_Shift() line 120 in >> /home/ayala/Documents/SLEPc/slepc-3.12.2/src/sys/classes/st/impls/shift/shift.c >> [1]PETSC ERROR: #7 STSetUp() line 271 in >> /home/ayala/Documents/SLEPc/slepc-3.12.2/src/sys/classes/st/interface/stsolve.c >> [1]PETSC ERROR: #8 EPSSetUp() line 273 in >> /home/ayala/Documents/SLEPc/slepc-3.12.2/src/eps/interface/epssetup.c >> [2]PETSC ERROR: #6 STSetUp_Shift() line 120 in >> /home/ayala/Documents/SLEPc/slepc-3.12.2/src/sys/classes/st/impls/shift/shift.c >> [2]PETSC ERROR: #7 STSetUp() line 271 in >> /home/ayala/Documents/SLEPc/slepc-3.12.2/src/sys/classes/st/interface/stsolve.c >> [2]PETSC ERROR: #8 EPSSetUp() line 273 in >> /home/ayala/Documents/SLEPc/slepc-3.12.2/src/eps/interface/epssetup.c >> [2]PETSC ERROR: #9 FourBar_NaturalPulsation() line 3937 in >> /home/ayala/Nextcloud/cpp_projects/2020-02-13-muboto-balancing-v17-mma/ >> Multibody.cc >> >> El lun., 17 de feb. de 2020 a la(s) 13:20, Matthew Knepley ( >> [email protected]) escribió: >> >>> On Mon, Feb 17, 2020 at 1:59 PM Emmanuel Ayala <[email protected]> >>> wrote: >>> >>>> Hi, thanks for the quick answer. >>>> >>>> I just did it, and it does not work. My problem is GNHEP and I use the >>>> default solver (Krylov-Schur). Moreover I run the code with the options: >>>> -st_ksp_type preonly -st_pc_type lu -st_pc_factor_mat_solver_type mumps >>>> >>> >>> I guess a better question is: What do you expect to work? >>> >>> For a linear solve, >>> >>> A x = b >>> >>> if a row i is 0 except for a one on the diagonal, then I get >>> >>> x_i = b_i >>> >>> so hopefully you put the correct boundary value in b_i. For the >>> generalized eigenproblem >>> >>> A x = \lambda B x >>> >>> if you set row i to the identity in A, and zero in B, we get >>> >>> x_i = 0 >>> >>> and you must put the boundary values into x after you have finished the >>> solve. Is this what you did? >>> >>> Thanks, >>> >>> Matt >>> >>> >>>> Any other suggestions? >>>> Kind regards. >>>> >>>> El lun., 17 de feb. de 2020 a la(s) 12:39, Jeremy Theler ( >>>> [email protected]) escribió: >>>> >>>>> The usual trick is to set ones in one matrix and zeros in the other >>>>> one. >>>>> >>>>> >>>>> On Mon, 2020-02-17 at 12:35 -0600, Emmanuel Ayala wrote: >>>>> > Hi everyone, >>>>> > >>>>> > I have an eigenvalue problem where I need to apply BCs to the >>>>> > stiffness and mass matrix. >>>>> > >>>>> > Usually, for KSP solver, it is enough to set to zero the rows and >>>>> > columns related to the boundary conditions. I used to apply it with >>>>> > MatZeroRowsColumns, with a 1s on the diagonal. Then the solver works >>>>> > well. >>>>> > >>>>> > There is something similar to KSP for EPS solver ? >>>>> > >>>>> > I already used MatZeroRowsColumns (for EPS solver), with a 1s on the >>>>> > diagonal, and I got wrong result. >>>>> > >>>>> > Kind regards. >>>>> > >>>>> > >>>>> > >>>>> > >>>>> >>>>> >>> >>> -- >>> 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 >>> >>> https://www.cse.buffalo.edu/~knepley/ >>> <http://www.cse.buffalo.edu/~knepley/> >>> >> > > -- > 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 > > https://www.cse.buffalo.edu/~knepley/ > <http://www.cse.buffalo.edu/~knepley/> > > >
