Skip to content
Snippets Groups Projects
Commit d658eac5 authored by Van Dung Nguyen's avatar Van Dung Nguyen
Browse files

add func in eigenSolver

parent e1d6fd5b
No related branches found
No related tags found
No related merge requests found
...@@ -183,4 +183,29 @@ bool eigenSolver::solve(int numEigenValues, std::string which) ...@@ -183,4 +183,29 @@ bool eigenSolver::solve(int numEigenValues, std::string which)
} }
void eigenSolver::normalize_mode(){
Msg::Info("Normalize all eigenvectors");
for (unsigned int i=0; i<_eigenVectors.size(); i++){
double norm = 0.;
for (unsigned int j=0; j<_eigenVectors[i].size(); j++){
std::complex<double> val = _eigenVectors[i][j];
double normval = std::abs(val);
if (normval >norm)
norm = normval;
};
if (norm == 0) {
Msg::Error("zero eigenvector");
return;
};
for (unsigned int j=0; j<_eigenVectors[i].size(); j++){
_eigenVectors[i][j] /= norm;
};
};
};
#endif #endif
...@@ -41,6 +41,8 @@ class eigenSolver{ ...@@ -41,6 +41,8 @@ class eigenSolver{
{ {
return _eigenVectors[num][com]; return _eigenVectors[num][com];
}; };
int getNumberEigenvectors() {return _eigenVectors.size();};
void normalize_mode();
}; };
#else #else
...@@ -65,6 +67,8 @@ class eigenSolver{ ...@@ -65,6 +67,8 @@ class eigenSolver{
std::vector<std::complex<double> > &getEigenVector(int num){ return _dummy; } std::vector<std::complex<double> > &getEigenVector(int num){ return _dummy; }
void clear(){} void clear(){}
std::complex<double> getEigenVectorComp(int num, int com) { return 0.; } std::complex<double> getEigenVectorComp(int num, int com) { return 0.; }
int getNumberEigenvectors() {return 0;};
void normalize_mode() {};
}; };
#endif #endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment