From 30b50c0084a9f045920e6669c9bc0375ba70e4e4 Mon Sep 17 00:00:00 2001 From: qaumann Date: Thu, 30 Apr 2020 16:51:50 +0200 Subject: [PATCH] style review comments --- .../custom_solvers/feast_eigensystem_solver.h | 37 +++++++++---------- kratos/python_scripts/eigen_solver_factory.py | 20 ++-------- 2 files changed, 22 insertions(+), 35 deletions(-) diff --git a/applications/EigenSolversApplication/custom_solvers/feast_eigensystem_solver.h b/applications/EigenSolversApplication/custom_solvers/feast_eigensystem_solver.h index 75763fe69764..bdc5b4f0fd85 100644 --- a/applications/EigenSolversApplication/custom_solvers/feast_eigensystem_solver.h +++ b/applications/EigenSolversApplication/custom_solvers/feast_eigensystem_solver.h @@ -104,21 +104,21 @@ namespace { // helpers namespace KRATOS_WARNING_IF("FeastEigensystemSolver", mOrder == "si") << "Attempting to sort by imaginary value. Falling back on \"sr\"" << std::endl; KRATOS_WARNING_IF("FeastEigensystemSolver", mOrder == "li") << "Attempting to sort by imaginary value. Falling back on \"lr\"" << std::endl; - std::vector idx(rEigenvalues.size()); + std::vector idx(rEigenvalues.size()); std::iota(idx.begin(), idx.end(), 0); if( mOrder == "sr" || mOrder == "si" ) { std::stable_sort(idx.begin(), idx.end(), - [&rEigenvalues](size_t i1, size_t i2) {return rEigenvalues[i1] < rEigenvalues[i2];}); + [&rEigenvalues](std::size_t i1, std::size_t i2) {return rEigenvalues[i1] < rEigenvalues[i2];}); } else if( mOrder == "sm") { std::stable_sort(idx.begin(), idx.end(), - [&rEigenvalues](size_t i1, size_t i2) {return std::abs(rEigenvalues[i1]) < std::abs(rEigenvalues[i2]);}); + [&rEigenvalues](std::size_t i1, std::size_t i2) {return std::abs(rEigenvalues[i1]) < std::abs(rEigenvalues[i2]);}); } else if( mOrder == "lr" || mOrder == "li" ) { std::stable_sort(idx.begin(), idx.end(), - [&rEigenvalues](size_t i1, size_t i2) {return rEigenvalues[i1] > rEigenvalues[i2];}); + [&rEigenvalues](std::size_t i1, std::size_t i2) {return rEigenvalues[i1] > rEigenvalues[i2];}); } else if( mOrder == "lm") { std::stable_sort(idx.begin(), idx.end(), - [&rEigenvalues](size_t i1, size_t i2) {return std::abs(rEigenvalues[i1]) > std::abs(rEigenvalues[i2]);}); + [&rEigenvalues](std::size_t i1, std::size_t i2) {return std::abs(rEigenvalues[i1]) > std::abs(rEigenvalues[i2]);}); } else { KRATOS_ERROR << "Invalid sort type. Allowed are sr, sm, si, lr, lm, li" << std::endl; } @@ -126,7 +126,7 @@ namespace { // helpers namespace VectorType tmp_eigenvalues(rEigenvalues.size()); MatrixType tmp_eigenvectors(rEigenvectors.size1(), rEigenvectors.size2()); - for( size_t i=0; i template void SortingHelper>::SortEigenvalues(VectorType &rEigenvalues, MatrixType &rEigenvectors) { - std::vector idx(rEigenvalues.size()); + std::vector idx(rEigenvalues.size()); std::iota(idx.begin(), idx.end(), 0); - // const std::string t = mParam["sort_order"].GetString(); if( mOrder == "sr" ) { std::stable_sort(idx.begin(), idx.end(), - [&rEigenvalues](size_t i1, size_t i2) {return std::real(rEigenvalues[i1]) < std::real(rEigenvalues[i2]);}); + [&rEigenvalues](std::size_t i1, std::size_t i2) {return std::real(rEigenvalues[i1]) < std::real(rEigenvalues[i2]);}); } else if( mOrder == "sm") { std::stable_sort(idx.begin(), idx.end(), - [&rEigenvalues](size_t i1, size_t i2) {return std::abs(rEigenvalues[i1]) < std::abs(rEigenvalues[i2]);}); + [&rEigenvalues](std::size_t i1, std::size_t i2) {return std::abs(rEigenvalues[i1]) < std::abs(rEigenvalues[i2]);}); } else if( mOrder == "si") { std::stable_sort(idx.begin(), idx.end(), - [&rEigenvalues](size_t i1, size_t i2) {return std::imag(rEigenvalues[i1]) < std::imag(rEigenvalues[i2]);}); + [&rEigenvalues](std::size_t i1, std::size_t i2) {return std::imag(rEigenvalues[i1]) < std::imag(rEigenvalues[i2]);}); } else if( mOrder == "lr" ) { std::stable_sort(idx.begin(), idx.end(), - [&rEigenvalues](size_t i1, size_t i2) {return std::real(rEigenvalues[i1]) > std::real(rEigenvalues[i2]);}); + [&rEigenvalues](std::size_t i1, std::size_t i2) {return std::real(rEigenvalues[i1]) > std::real(rEigenvalues[i2]);}); } else if( mOrder == "lm") { std::stable_sort(idx.begin(), idx.end(), - [&rEigenvalues](size_t i1, size_t i2) {return std::abs(rEigenvalues[i1]) > std::abs(rEigenvalues[i2]);}); + [&rEigenvalues](std::size_t i1, std::size_t i2) {return std::abs(rEigenvalues[i1]) > std::abs(rEigenvalues[i2]);}); } else if( mOrder == "li") { std::stable_sort(idx.begin(), idx.end(), - [&rEigenvalues](size_t i1, size_t i2) {return std::imag(rEigenvalues[i1]) > std::imag(rEigenvalues[i2]);}); + [&rEigenvalues](std::size_t i1, std::size_t i2) {return std::imag(rEigenvalues[i1]) > std::imag(rEigenvalues[i2]);}); } else { KRATOS_ERROR << "Invalid sort type. Allowed are sr, sm, si, lr, lm, li" << std::endl; } @@ -166,7 +165,7 @@ namespace { // helpers namespace VectorType tmp_eigenvalues(rEigenvalues.size()); MatrixType tmp_eigenvectors(rEigenvectors.size1(), rEigenvectors.size2()); - for( size_t i=0; i(mParam["number_of_eigenvalues"].GetInt()); + subspace_size = 2 * static_cast(mParam["number_of_eigenvalues"].GetInt()); } else if( mParam["subspace_size"].GetInt() == 0 ) { - subspace_size = 1.5 * static_cast(mParam["number_of_eigenvalues"].GetInt()); + subspace_size = 1.5 * static_cast(mParam["number_of_eigenvalues"].GetInt()); } else { - subspace_size = static_cast(mParam["subspace_size"].GetInt()); + subspace_size = static_cast(mParam["subspace_size"].GetInt()); } // create column based matrix for the fortran routine diff --git a/kratos/python_scripts/eigen_solver_factory.py b/kratos/python_scripts/eigen_solver_factory.py index e5b9c70ddbcd..d6d17df9e977 100644 --- a/kratos/python_scripts/eigen_solver_factory.py +++ b/kratos/python_scripts/eigen_solver_factory.py @@ -23,14 +23,8 @@ def ConstructSolver(settings): if kratos_utils.CheckIfApplicationsAvailable("EigenSolversApplication"): import KratosMultiphysics.EigenSolversApplication as EiSA if EiSA.HasFEAST(): - if settings.Has("symmetric"): - is_symmetric = settings["symmetric"].GetBool() - else: - is_symmetric = True - if is_symmetric: - eigen_solver = EiSA.FEASTSymmetricEigensystemSolver(settings) - else: - eigen_solver = EiSA.FEASTGeneralEigensystemSolver(settings) + is_symmetric = settings["symmetric"].GetBool() if settings.Has("symmetric") else True + eigen_solver = EiSA.FEASTSymmetricEigensystemSolver(settings) if is_symmetric else EiSA.FEASTGeneralEigensystemSolver(settings) return eigen_solver else: raise Exception("FEAST not available in EigenSolversApplication") @@ -40,14 +34,8 @@ def ConstructSolver(settings): if kratos_utils.CheckIfApplicationsAvailable("EigenSolversApplication"): import KratosMultiphysics.EigenSolversApplication as EiSA if EiSA.HasFEAST(): - if settings.Has("symmetric"): - is_symmetric = settings["symmetric"].GetBool() - else: - is_symmetric = True - if is_symmetric: - eigen_solver = EiSA.ComplexFEASTSymmetricEigensystemSolver(settings) - else: - eigen_solver = EiSA.ComplexFEASTGeneralEigensystemSolver(settings) + is_symmetric = settings["symmetric"].GetBool() if settings.Has("symmetric") else True + eigen_solver = EiSA.ComplexFEASTSymmetricEigensystemSolver(settings) if is_symmetric else EiSA.ComplexFEASTGeneralEigensystemSolver(settings) return eigen_solver else: raise Exception("FEAST not available in EigenSolversApplication")