From ad55a66fadb30d08409106d4c9069aba2c484ef7 Mon Sep 17 00:00:00 2001 From: Van Dung Nguyen <vandung.nguyen@ulg.ac.be> Date: Fri, 7 Feb 2014 17:04:50 +0000 Subject: [PATCH] change --- Solver/eigenSolver.cpp | 14 +++++++------- Solver/eigenSolver.h | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Solver/eigenSolver.cpp b/Solver/eigenSolver.cpp index e2591937fe..291a9c8f1a 100644 --- a/Solver/eigenSolver.cpp +++ b/Solver/eigenSolver.cpp @@ -184,28 +184,28 @@ bool eigenSolver::solve(int numEigenValues, std::string which) } -void eigenSolver::normalize_mode(){ +void eigenSolver::normalize_mode(double scale){ 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) + 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; + _eigenVectors[i][j] *= (scale/norm); }; - }; + }; }; #endif diff --git a/Solver/eigenSolver.h b/Solver/eigenSolver.h index d8d8ef2c8f..57c7b6b20e 100644 --- a/Solver/eigenSolver.h +++ b/Solver/eigenSolver.h @@ -42,7 +42,7 @@ class eigenSolver{ return _eigenVectors[num][com]; }; int getNumberEigenvectors() {return _eigenVectors.size();}; - void normalize_mode(); + void normalize_mode(double scale=1.); }; #else @@ -68,7 +68,7 @@ class eigenSolver{ void clear(){} std::complex<double> getEigenVectorComp(int num, int com) { return 0.; } int getNumberEigenvectors() {return 0;}; - void normalize_mode() {}; + void normalize_mode(double scale=1.) {}; }; #endif -- GitLab