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>

Reply via email to