diff --git a/MathLib/LinAlg/ApplyKnownSolution.h b/MathLib/LinAlg/ApplyKnownSolution.h index 72c28fe3481ca6f54049353154d9cfab8cbbcd4a..c6aca210db84b797f47809295673a1483c9e865f 100644 --- a/MathLib/LinAlg/ApplyKnownSolution.h +++ b/MathLib/LinAlg/ApplyKnownSolution.h @@ -15,7 +15,7 @@ #ifdef OGS_USE_EIGEN #include "MathLib/LinAlg/Eigen/EigenTools.h" -#endif // USE_LIS +#endif // OGS_USE_EIGEN #ifdef USE_LIS #include "MathLib/LinAlg/Lis/LisTools.h" diff --git a/MathLib/LinAlg/Eigen/EigenLinearSolver.cpp b/MathLib/LinAlg/Eigen/EigenLinearSolver.cpp index 8071c650e30f7ce3a8e9e4300a32cfad8ec647c7..d23ae859e5b61a0f44eaca53529fec86adb6598e 100644 --- a/MathLib/LinAlg/Eigen/EigenLinearSolver.cpp +++ b/MathLib/LinAlg/Eigen/EigenLinearSolver.cpp @@ -9,6 +9,7 @@ #include "EigenLinearSolver.h" +#include <boost/property_tree/ptree.hpp> #include <logog/include/logog.hpp> #include <unsupported/Eigen/IterativeSolvers> @@ -36,7 +37,7 @@ public: // Compute the numerical factorization _solver.factorize(A); if(_solver.info()!=Eigen::Success) { - INFO("\t failed"); + ERR("The numerical factorization failed in Eigen"); return; } } diff --git a/MathLib/LinAlg/Eigen/EigenLinearSolver.h b/MathLib/LinAlg/Eigen/EigenLinearSolver.h index d536b157c9ac666d32e8c8f0152e78a24f3194ef..8f7261e3fa13bf100757cb5d61f7345f8b49b904 100644 --- a/MathLib/LinAlg/Eigen/EigenLinearSolver.h +++ b/MathLib/LinAlg/Eigen/EigenLinearSolver.h @@ -12,8 +12,7 @@ #include <vector> -#include <boost/any.hpp> -#include <boost/property_tree/ptree.hpp> +#include <boost/property_tree/ptree_fwd.hpp> #include "EigenVector.h" #include "EigenOption.h" diff --git a/MathLib/LinAlg/Eigen/EigenMatrix.h b/MathLib/LinAlg/Eigen/EigenMatrix.h index fb254a58e0fd2a5e2106e20a54919f0e3161ed05..c6d5c2767753b28d5389394863c130e2ed134b03 100644 --- a/MathLib/LinAlg/Eigen/EigenMatrix.h +++ b/MathLib/LinAlg/Eigen/EigenMatrix.h @@ -11,9 +11,10 @@ #define EIGENMATRIX_H_ #include <cassert> +#ifndef NDEBUG #include <fstream> -#include <iosfwd> #include <string> +#endif #include <Eigen/Sparse> @@ -122,6 +123,7 @@ public: /// return if this matrix is already assembled or not bool isAssembled() const { return true; } +#ifndef NDEBUG /// printout this matrix for debugging void write(const std::string &filename) const { @@ -138,6 +140,7 @@ public: os << it.row() << " " << it.col() << ": " << it.value() << "\n"; os << std::endl; } +#endif RawMatrixType& getRawMatrix() { return _mat; } const RawMatrixType& getRawMatrix() const { return _mat; } diff --git a/MathLib/LinAlg/Eigen/EigenTools.cpp b/MathLib/LinAlg/Eigen/EigenTools.cpp index b820e768c846971c6e8c4160d9f9950c50047d0b..3dd8589d3e86657f01e0fe2aabd7934e6044ed8d 100644 --- a/MathLib/LinAlg/Eigen/EigenTools.cpp +++ b/MathLib/LinAlg/Eigen/EigenTools.cpp @@ -23,7 +23,7 @@ void applyKnownSolution(EigenMatrix &A_, EigenVector &b_, const std::vector<std: typedef EigenMatrix::RawMatrixType SpMat; auto &A = A_.getRawMatrix(); auto &b = b_.getRawVector(); - const size_t n_rows = A.rows(); + const std::size_t n_rows = A.rows(); for (std::size_t ix=0; ix<vec_knownX_id.size(); ix++) { int row_id = vec_knownX_id[ix]; @@ -32,7 +32,7 @@ void applyKnownSolution(EigenMatrix &A_, EigenVector &b_, const std::vector<std: for (SpMat::InnerIterator it(A,row_id); it; ++it) it.valueRef() = .0; //b_i -= A(i,k)*val, i!=k - for (size_t i=0; i<n_rows; i++) + for (std::size_t i=0; i<n_rows; i++) for (SpMat::InnerIterator it(A,i); it; ++it) { if (it.col()!=row_id) continue; @@ -41,7 +41,7 @@ void applyKnownSolution(EigenMatrix &A_, EigenVector &b_, const std::vector<std: //b_k = val b[row_id] = x; //A(i, k) = 0., i!=k - for (size_t i=0; i<n_rows; i++) + for (std::size_t i=0; i<n_rows; i++) for (SpMat::InnerIterator it(A,i); it; ++it) { if (it.col()!=row_id) continue; diff --git a/MathLib/LinAlg/Eigen/EigenVector.h b/MathLib/LinAlg/Eigen/EigenVector.h index edc93f4af2e8e3fc5c82985fff3aa1c7c846dfe9..7308c344333ab3e6f5bbcc26a1a9f024d4da5efd 100644 --- a/MathLib/LinAlg/Eigen/EigenVector.h +++ b/MathLib/LinAlg/Eigen/EigenVector.h @@ -10,9 +10,11 @@ #ifndef EIGENVECTOR_H_ #define EIGENVECTOR_H_ -#include <string> #include <vector> +#ifndef NDEBUG #include <fstream> +#include <string> +#endif #include <Eigen/Eigen> @@ -86,8 +88,10 @@ public: } } +#ifndef NDEBUG /// printout this equation for debugging void write (const std::string &filename) const { std::ofstream os(filename); os << _vec; } +#endif /// return a raw Lis vector object RawVectorType& getRawVector() {return _vec; } diff --git a/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.cpp b/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.cpp index b22543722386e1d7a734923cce01670d84112144..d63d953dc24354d94debcb0f7e5b51050d98b78e 100644 --- a/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.cpp +++ b/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.cpp @@ -9,6 +9,7 @@ #include "EigenLisLinearSolver.h" +#include <boost/property_tree/ptree.hpp> #ifdef _OPENMP #include <omp.h> #endif diff --git a/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.h b/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.h index 796dd8b44bc06b5ed1e58801ad372220213d2927..c503e34ddaa43a18cc7f9303f592541cc621db6e 100644 --- a/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.h +++ b/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.h @@ -12,7 +12,7 @@ #include <vector> -#include <boost/property_tree/ptree.hpp> +#include <boost/property_tree/ptree_fwd.hpp> #include <lis.h> #include "MathLib/LinAlg/Lis/LisOption.h"