diff --git a/Solver/dofManager.h b/Solver/dofManager.h index 99d1d6a41707b950332edee9071e2bb6c225adc6..895a2dc0790ddb6c5ba0a6c477bc127e44adaac3 100644 --- a/Solver/dofManager.h +++ b/Solver/dofManager.h @@ -513,7 +513,7 @@ class dofManager{ throw; } } - linearSystem<dataMat> *getLinearSystem(std::string &name) + virtual linearSystem<dataMat> *getLinearSystem(std::string &name) { typename std::map<const std::string, linearSystem<dataMat>*>::iterator it = _linearSystems.find(name); diff --git a/Solver/eigenSolver.cpp b/Solver/eigenSolver.cpp index 4204fd25a8d026c0816b7c18d701c6e8f6ebddfc..8305f9bddb1ee43d21a6b3db991122dc44a634f5 100644 --- a/Solver/eigenSolver.cpp +++ b/Solver/eigenSolver.cpp @@ -11,7 +11,7 @@ #include <slepceps.h> eigenSolver::eigenSolver(dofManager<double> *manager, std::string A, - std::string B, bool hermitian) + std::string B, bool hermitian) : _A(0), _B(0), _hermitian(hermitian) { if(A.size()){ @@ -55,7 +55,7 @@ bool eigenSolver::solve(int numEigenValues, std::string which) _try(EPSSetDimensions(eps, numEigenValues, PETSC_DECIDE, PETSC_DECIDE)); _try(EPSSetTolerances(eps, 1.e-7, 20));//1.e-6 50 //_try(EPSSetType(eps, EPSKRYLOVSCHUR)); //default - _try(EPSSetType(eps, EPSARNOLDI)); + _try(EPSSetType(eps, EPSARNOLDI)); //_try(EPSSetType(eps, EPSARPACK)); //_try(EPSSetType(eps, EPSPOWER));