-
Notifications
You must be signed in to change notification settings - Fork 194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Eigen problem #116
Comments
You should not use the
You can run this program using, for example,
|
Hi, |
Hi,
the problem is an arpack,
you can to compute all eigen value
I think you can only n-2 eigen value no more.
… Le 12 nov. 2019 à 09:08, Pmollo ***@***.***> a écrit :
Hi,
I have to solve eigen value problems, so I first try to solve a validation example... But it does not work.
** Expected behavior **
I take a diagonal matrix (4x4) with 4 distinct integers on diagonal, then I use the "EigenValue" function following the help page (https://doc.freefem.org/models/eigen-value-problems.html <https://doc.freefem.org/models/eigen-value-problems.html>).
So I expect to find 4 eigen values/vectors, but the function only returns the 3 highest ones.
I try to grow in dimension, but the function always returns the (n-1) highest eigen values.
The code for the example :
`matrix A =
[ [4, 0, 0, 0],
[0, 3 ,0 ,0],
[0, 0, 2, 0],
[0, 0, 0, 5] ];
set(A, solver=UMFPACK);
cout << A << endl;
matrix B =
[ [1, 0, 0, 0],
[0, 1 ,0 ,0],
[0, 0, 1, 0],
[0, 0, 0, 1] ];
set(B, solver=UMFPACK);
// Solve
int Nev = 4 ;
real[int] ev(Nev); //to store eigen values
real[int,int] Vec(Nev,Nev); //to store eigen vectors
int k = EigenValue(A, B, sym=true, value=ev, rawvector=Vec, nev=Nev, maxit=0, ncv=0);
cout << k ;
cout << " vp : " << ev << endl;
cout << " Vp : " << Vec << endl;
`
I try multiple parameters, but I still don't know why it is not working.
** Desktop : **
OS: Ubuntu 18.04
Freefem version : v4.4.2
Thank you for your help,
Pierre.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub <#116?email_source=notifications&email_token=ABLPNDB3H6CH4NKRXZLQZYDQTJP65A5CNFSM4JL7XS3KYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HYTZRVQ>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/ABLPNDEXF5HQWEEOSU4WJK3QTJP65ANCNFSM4JL7XS3A>.
|
Hi again,
Thank you for your help |
What is the problem with SLEPc install? You can also call LAPACK directly from SLEPc. Here is what I get with
|
C compiler you provided with -with-cc= does not work. Makefile:245: recipe for target 'petsc-3.12.0/tag-conf-real' failed
" 4 4 times: compile 0.002496s, execution 0.000117s, mpirank:0 And with "mpirun -np 1 FreeFem++-mpi test.edp -eps_view_vectors ::ascii_matlab -eps_type lapack -ne": 4 4 times: compile 0.00245s, execution 0.00011s, mpirank:0 The code is : load "lapack" |
FreeFEM configure does not find any MPI wrapper. Do you have MPI installed on your machine? Could you share your configure.log, please? |
Here my config.log file : |
Could you please follow this procedure and let me know if things still don't work out?
You are missing a couple of flags in your initial ./configure, so this may explain this issue. All this is detailed here, I've added the --prefix option because it is a bad idea to have to use sudo for installing FreeFEM. |
Ok, I think that something went wrong during my first attempt, but I tried in a VM and it's working. Thank you again for your time & help |
Hi,
I have to solve eigen value problems, so I first try to solve a validation example... But it does not work.
** Expected behavior **
I take a diagonal matrix (4x4) with 4 distinct integers on diagonal, then I use the "EigenValue" function following the help page (https://doc.freefem.org/models/eigen-value-problems.html).
So I expect to find 4 eigen values/vectors, but the function only returns the 3 highest ones.
I try to grow in dimension, but the function always returns the (n-1) highest eigen values.
The code for the example :
`matrix A =
[ [4, 0, 0, 0],
[0, 3 ,0 ,0],
[0, 0, 2, 0],
[0, 0, 0, 5] ];
set(A, solver=UMFPACK);
cout << A << endl;
matrix B =
[ [1, 0, 0, 0],
[0, 1 ,0 ,0],
[0, 0, 1, 0],
[0, 0, 0, 1] ];
set(B, solver=UMFPACK);
// Solve
int Nev = 4 ;
real[int] ev(Nev); //to store eigen values
real[int,int] Vec(Nev,Nev); //to store eigen vectors
int k = EigenValue(A, B, sym=true, value=ev, rawvector=Vec, nev=Nev, maxit=0, ncv=0);
cout << k ;
cout << " vp : " << ev << endl;
cout << " Vp : " << Vec << endl;
`
I try multiple parameters, but I still don't know why it is not working.
** Desktop : **
Thank you for your help,
Pierre.
The text was updated successfully, but these errors were encountered: