diff --git a/Solver/eigenSolver.cpp b/Solver/eigenSolver.cpp index 4bc489dde202c7e9e5156c658658d409e2ef6dae..8b5cdf1beb5038aedf176fd31eaca828a1ead229 100644 --- a/Solver/eigenSolver.cpp +++ b/Solver/eigenSolver.cpp @@ -56,8 +56,8 @@ bool eigenSolver::solve(int numEigenValues, std::string which) // set some default options _try(EPSSetDimensions(eps, numEigenValues, PETSC_DECIDE, PETSC_DECIDE)); _try(EPSSetTolerances(eps, 1.e-7, 20));//1.e-7 20 - //_try(EPSSetType(eps, EPSKRYLOVSCHUR)); //default - _try(EPSSetType(eps, EPSARNOLDI)); + _try(EPSSetType(eps, EPSKRYLOVSCHUR)); //default + //_try(EPSSetType(eps, EPSARNOLDI)); //_try(EPSSetType(eps, EPSARPACK)); //_try(EPSSetType(eps, EPSPOWER)); diff --git a/Solver/eigenSolver.h b/Solver/eigenSolver.h index 46c3a3f07a26ed1be89fccc6a55a55f37c683e78..86943741f3441ca6cd24b535f3cd3c87584c5f40 100644 --- a/Solver/eigenSolver.h +++ b/Solver/eigenSolver.h @@ -32,6 +32,13 @@ class eigenSolver{ int getNumEigenValues(){ return _eigenValues.size(); } std::complex<double> getEigenValue(int num){ return _eigenValues[num]; } std::vector<std::complex<double> > &getEigenVector(int num){ return _eigenVectors[num]; } + void clear(){ + _eigenValues.clear(); + _eigenVectors.clear(); + }; + std::complex<double>& getEigenVectorComp(int num, int com){ + return _eigenVectors[num][com]; + }; }; #else @@ -51,6 +58,8 @@ class eigenSolver{ int getNumEigenValues(){ return 0; } std::complex<double> getEigenValue(int num){ return 0.; } std::vector<std::complex<double> > &getEigenVector(int num){ return _dummy; } + void clear(){}; + std::complex<double>& getEigenVectorComp(int num, int com) return 0; }; #endif