From: David X. <dx...@my...> - 2006-03-04 19:33:03
|
Hi Steffen, I looked at Slepc online example 6 (http://www.grycap.upv.es/slepc/handson/handson6.html) and tried to use Lanczos solver with EPS_SMALLEST_REAL option. So I added these 2 lines in my libmesh code: eigen_system.eigen_solver->set_eigensolver_type(LANCZOS); eigen_system.eigen_solver->set_position_of_spectrum(SMALLEST_REAL); This gave the following error: [0]PETSC ERROR: EPSSolve_LANCZOS() line 411 in src/eps/impls/lanczos/lanczo= s.c [0]PETSC ERROR: No support for this operation for this object type! [0]PETSC ERROR: DSTEVR - Lapack routine is unavailable.! [0]PETSC ERROR: EPSSolve() line 58 in src/eps/interface/solve.c [0]PETSC ERROR: User provided function() line 280 in unknowndirectory/src/numerics/slepc_eigen_solver.C If I try eigen_system.eigen_solver->set_position_of_spectrum(EPS_SMALLEST_R= EAL); The error is: ex17.C: In function =E2int main(int, char**)=E2: ex17.C:147: error: =E2EPS_SMALLEST_REAL=E2 was not declared in this scope My question is how to enable Lanczos in my code to compute the smallest eigenvalues. I know you said it was unstable sometimes, but I'd like to try it on my 1D code so that I can verify my 1D code is correct when comparing the results against analytical ones. Thanks, David |
From: Steffen P. <ste...@tu...> - 2006-03-05 12:32:48
|
Hello David, I have not seen this error before, but is seems that there might be a problem with the lapack installation on your system. If your problem is of small size you can also try the LAPACK eigen solver (in case you LAPACK installation works fine) to verify your code: eigen_system.eigen_solver->set_eigensolver_type(LAPACK); eigen_system.eigen_solver->set_position_of_spectrum(SMALLEST_REAL); Steffen David Xu schrieb: > Hi Steffen, >=20 > I looked at Slepc online example 6 > (http://www.grycap.upv.es/slepc/handson/handson6.html) and tried to > use Lanczos solver with EPS_SMALLEST_REAL option. So I added these 2 > lines in my libmesh code: >=20 > eigen_system.eigen_solver->set_eigensolver_type(LANCZOS); > eigen_system.eigen_solver->set_position_of_spectrum(SMALLEST_REAL); >=20 > This gave the following error: >=20 > [0]PETSC ERROR: EPSSolve_LANCZOS() line 411 in src/eps/impls/lanczos/la= nczos.c > [0]PETSC ERROR: No support for this operation for this object type! > [0]PETSC ERROR: DSTEVR - Lapack routine is unavailable.! > [0]PETSC ERROR: EPSSolve() line 58 in src/eps/interface/solve.c > [0]PETSC ERROR: User provided function() line 280 in > unknowndirectory/src/numerics/slepc_eigen_solver.C >=20 > If I try eigen_system.eigen_solver->set_position_of_spectrum(EPS_SMALLE= ST_REAL); > The error is: > ex17.C: In function =E2int main(int, char**)=E2: > ex17.C:147: error: =E2EPS_SMALLEST_REAL=E2 was not declared in this sco= pe >=20 > My question is how to enable Lanczos in my code to compute the > smallest eigenvalues. I know you said it was unstable sometimes, but > I'd like to try it on my 1D code so that I can verify my 1D code is > correct when comparing the results against analytical ones. >=20 > Thanks, >=20 > David |
From: David X. <dx...@my...> - 2006-03-05 19:35:59
|
Steffen, I just tried LAPACK option and got a error: ** On entry to DSYEVD parameter number 8 had an illegal value So, should I try recompile Petsc and Slepc with ARPACK? Could you give me some details on how to do and use ARPACK in libmesh code? Thanks! David On 3/5/06, Steffen Petersen <ste...@tu...> wrote: > Hello David, > > I have not seen this error before, but is seems > that there might be a problem with the lapack > installation on your system. > > If your problem is of small size you can also > try the LAPACK eigen solver (in case you LAPACK installation > works fine) to verify your code: > > eigen_system.eigen_solver->set_eigensolver_type(LAPACK); > eigen_system.eigen_solver->set_position_of_spectrum(SMALLEST_REAL); > > > Steffen > > > David Xu schrieb: > > Hi Steffen, > > > > I looked at Slepc online example 6 > > (http://www.grycap.upv.es/slepc/handson/handson6.html) and tried to > > use Lanczos solver with EPS_SMALLEST_REAL option. So I added these 2 > > lines in my libmesh code: > > > > eigen_system.eigen_solver->set_eigensolver_type(LANCZOS); > > eigen_system.eigen_solver->set_position_of_spectrum(SMALLEST_REAL); > > > > This gave the following error: > > > > [0]PETSC ERROR: EPSSolve_LANCZOS() line 411 in src/eps/impls/lanczos/la= nczos.c > > [0]PETSC ERROR: No support for this operation for this object type! > > [0]PETSC ERROR: DSTEVR - Lapack routine is unavailable.! > > [0]PETSC ERROR: EPSSolve() line 58 in src/eps/interface/solve.c > > [0]PETSC ERROR: User provided function() line 280 in > > unknowndirectory/src/numerics/slepc_eigen_solver.C > > > > If I try eigen_system.eigen_solver->set_position_of_spectrum(EPS_SMALLE= ST_REAL); > > The error is: > > ex17.C: In function =E2int main(int, char**)=E2: > > ex17.C:147: error: =E2EPS_SMALLEST_REAL=E2 was not declared in this sco= pe > > > > My question is how to enable Lanczos in my code to compute the > > smallest eigenvalues. I know you said it was unstable sometimes, but > > I'd like to try it on my 1D code so that I can verify my 1D code is > > correct when comparing the results against analytical ones. > > > > Thanks, > > > > David > > |