Hi Jose, Thanks for your reply.
I have tried PetscCall(MatConvert(slepc_A_mf,MATDENSE,MAT_INITIAL_MATRIX,&Adense)); and If I do MatView(Adense,viewer), All I see was NAN. Have I missed anything here? Thanks, Feng ________________________________ From: Jose E. Roman <jro...@dsic.upv.es> Sent: 24 August 2022 16:23 To: feng wang <snails...@hotmail.com> Cc: petsc-users <petsc-users@mcs.anl.gov> Subject: Re: [petsc-users] Slepc Question, shell-matrix > El 24 ago 2022, a las 17:03, feng wang <snails...@hotmail.com> escribió: > > Hi Jose, > > Thanks for your reply. > > I have tried -eps_view_mat0 binary:amatrix.bin to save my shell matrix. It > seems not saving the shell matrix and just created an empty file. Oops, I thought the shell matrix would be converted automatically. Try converting it yourself: PetscCall(MatConvert(slepc_A_mf,MATDENSE,MAT_INITIAL_MATRIX,&Adense)); Then use Adense in EPSSetOperators(). Or save it to disk and send it to me so that I can give it a try. > > Besides, I am trying to understand the output of slepc. I can set -eps_tol > to a low value, but the final relative residual norm is still high , what > does this tell me? I don't know. It should not happen. Jose > > Best regards, > Feng > > From: Jose E. Roman <jro...@dsic.upv.es> > Sent: 23 August 2022 11:06 > To: feng wang <snails...@hotmail.com> > Cc: petsc-users <petsc-users@mcs.anl.gov> > Subject: Re: [petsc-users] Slepc Question, shell-matrix > > You can try the following. Save your shell matrix to disk with the option > -eps_view_mat0 binary:amatrix.bin > then repeat the computation with ex4.c loading this file. > > Note that this should be done for a small problem size, because the > conversion from a shell matrix implies a matrix-vector product per each > column. > > Jose > > > El 23 ago 2022, a las 12:57, feng wang <snails...@hotmail.com> escribió: > > > > Hi Jose, > > > > Thanks for your reply. > > > > It represents a linear operator. In my shell matrix, I am computing the > > non-linear residuals twice with perturbed flow variables. The matrix-vector > > product is computed as: > > > > A*v = (R(q+eps*v) - R(q-eps*v))/(2*eps) > > > > R is the non-linear residual. q is my flow variable and it does not change. > > eps is the perturbation. A is my Jacobian matrix. Besides, for some > > background, I am computing a steady RANS flow with finite volume method and > > trying to do a global stability analysis by looking at the Jacobian matrix. > > > > Thanks, > > Feng > > > > From: Jose E. Roman <jro...@dsic.upv.es> > > Sent: 23 August 2022 10:32 > > To: feng wang <snails...@hotmail.com> > > Cc: petsc-users <petsc-users@mcs.anl.gov> > > Subject: Re: [petsc-users] Slepc Question, shell-matrix > > > > The relative residual norms that are printed at the end are too large. For > > NHEP problems, they should be below the tolerance. Don't know what is > > happening. Does your shell matrix represent a linear (constant) operator? > > Or does it change slightly depending on the input vector? > > > > > El 23 ago 2022, a las 12:14, feng wang <snails...@hotmail.com> escribió: > > > > > > Hi Jose, > > > > > > I think the previous problem comes from my side. I have some > > > uninitialized values in my part of code to compute the non-linear > > > residuals. so, it produces a NAN when it tries to compute the > > > matrix-vector product using finite difference. This might make the > > > slepc/pestc do unexpected things. > > > > > > Now It seems I've got slepc running. eps_nev is set to 3 and I am trying > > > to compute the ones with the largest amplitudes. Below is the slepc > > > output. > > > > > > 14 EPS converged value (error) #0 -0.000164282 (5.36813206e-09) > > > 16 EPS converged value (error) #1 -0.000160691+2.17113e-05i > > > (3.37429620e-09) > > > 16 EPS converged value (error) #2 -0.000160691-2.17113e-05i > > > (3.37429620e-09) > > > Solution method: krylovschur > > > > > > Number of requested eigenvalues: 2 > > > Linear eigensolve converged (3 eigenpairs) due to CONVERGED_TOL; > > > iterations 16 > > > ---------------------- -------------------- > > > k ||Ax-kx||/||kx|| > > > ---------------------- -------------------- > > > -0.000164 0.0613788 > > > -0.000161+0.000022i 0.0773339 > > > -0.000161-0.000022i 0.0774536 > > > ---------------------- -------------------- > > > > > > The values in the brackets are the absolute error (I believe) and they > > > seem very low. The relative error seems quite large. Could you please > > > comment on this? > > > > > > > > > Best regards, > > > Feng > > > > > > From: Jose E. Roman <jro...@dsic.upv.es> > > > Sent: 23 August 2022 5:24 > > > To: feng wang <snails...@hotmail.com> > > > Cc: petsc-users <petsc-users@mcs.anl.gov> > > > Subject: Re: [petsc-users] Slepc Question, shell-matrix > > > > > > Please always respond to the list, otherwise the thread appears as > > > unresolved in the archives of the mailing list. > > > > > > > > > > El 22 ago 2022, a las 22:45, feng wang <snails...@hotmail.com> escribió: > > > > > > > > Hi Jose, > > > > > > > > I think I might have solved my problem. I have some uninitialized > > > > values in my part of code to compute the right hand side. so it > > > > produces a NAN when it tries to compute the matrix-vector product. > > > > > > > > Many thanks for your help! > > > > > > > > Best regards, > > > > Feng > > > > From: Jose E. Roman <jro...@dsic.upv.es> > > > > Sent: 22 August 2022 19:32 > > > > To: feng wang <snails...@hotmail.com> > > > > Cc: petsc-users@mcs.anl.gov <petsc-users@mcs.anl.gov> > > > > Subject: Re: [petsc-users] Slepc Question, shell-matrix > > > > > > > > This is very strange. This error appears when the solver employs the > > > > B-inner product, but in your case you don't have a B matrix, so you > > > > should never see that error. Try running under valgrind to see if it > > > > gives more hints. > > > > > > > > Jose > > > > > > > > > > > > > El 22 ago 2022, a las 20:45, feng wang <snails...@hotmail.com> > > > > > escribió: > > > > > > > > > > Hello, > > > > > > > > > > I am new to Slepc and trying to work out the eigenvalues and > > > > > eigenvectors of my Jacobian matrix. I am using a shell matrix to work > > > > > out the matrix-vector product and I am using the default Krylov-schur > > > > > method. > > > > > > > > > > My first attempt was not successful and I got the following errors: > > > > > > > > > > [0]PETSC ERROR: --------------------- Error Message > > > > > -------------------------------------------------------------- > > > > > [0]PETSC ERROR: Missing or incorrect user input > > > > > [0]PETSC ERROR: The inner product is not well defined: indefinite > > > > > matrix > > > > > [0]PETSC ERROR: See https://petsc.org/release/faq/ for trouble > > > > > shooting. > > > > > [0]PETSC ERROR: Petsc Release Version 3.17.4, unknown > > > > > [0]PETSC ERROR: cfdtest on a arch-debug named ming by feng Mon Aug 22 > > > > > 19:21:41 2022 > > > > > [0]PETSC ERROR: Configure options --with-cc=mpicc --with-cxx=mpicxx > > > > > --with-fc=0 PETSC_ARCH=arch-debug > > > > > [0]PETSC ERROR: #1 BV_SafeSqrt() at > > > > > /home/feng/cfd/slepc-3.17.1/include/slepc/private/bvimpl.h:130 > > > > > [0]PETSC ERROR: #2 BV_SquareRoot_Default() at > > > > > /home/feng/cfd/slepc-3.17.1/include/slepc/private/bvimpl.h:365 > > > > > [0]PETSC ERROR: #3 BVOrthogonalizeCGS1() at > > > > > /home/feng/cfd/slepc-3.17.1/src/sys/classes/bv/interface/bvorthog.c:101 > > > > > [0]PETSC ERROR: #4 BVOrthogonalizeGS() at > > > > > /home/feng/cfd/slepc-3.17.1/src/sys/classes/bv/interface/bvorthog.c:177 > > > > > [0]PETSC ERROR: #5 BVOrthonormalizeColumn() at > > > > > /home/feng/cfd/slepc-3.17.1/src/sys/classes/bv/interface/bvorthog.c:402 > > > > > [0]PETSC ERROR: #6 BVMatArnoldi() at > > > > > /home/feng/cfd/slepc-3.17.1/src/sys/classes/bv/interface/bvkrylov.c:91 > > > > > [0]PETSC ERROR: #7 EPSSolve_KrylovSchur_Default() at > > > > > /home/feng/cfd/slepc-3.17.1/src/eps/impls/krylov/krylovschur/krylovschur.c:261 > > > > > [0]PETSC ERROR: #8 EPSSolve() at > > > > > /home/feng/cfd/slepc-3.17.1/src/eps/interface/epssolve.c:147 > > > > > [0]PETSC ERROR: #9 slepc_eigen_comp() at > > > > > domain/cfd/slepc_eigen_solve.cpp:77 > > > > > > > > > > Could someone please shine some light on this? I have also attached > > > > > my code. The code is part of my big library and I cannot attach the > > > > > whole code, sorry about this. but I am happy to provide more > > > > > information. The attached code has some arrangements for halo > > > > > exchange, but for the moment, it assumes it is a serial run. > > > > > > > > > > Many thanks, > > > > > Feng > > > > > <slepc_eigen_solve.cpp>