From 1e79fecd9011e74cff04bb278b12a2dcf20112c2 Mon Sep 17 00:00:00 2001 From: Dmitri Naumov <github@naumov.de> Date: Thu, 16 Apr 2020 22:34:50 +0200 Subject: [PATCH] [MaL] Use fwd. decl. of ConfigTree. Saves ca. 35 unneeded includes (out of 260) and 25s of compilation time (out of 149s). --- ChemistryLib/CreateChemicalSolverInterface.cpp | 1 + MathLib/LinAlg/Eigen/EigenLinearSolver.h | 7 ++++++- ...ldIrreversibleDamageOracleBoundaryCondition.cpp | 2 ++ .../Python/PythonBoundaryCondition.cpp | 2 ++ ProcessLib/CentralDifferencesJacobianAssembler.cpp | 4 +++- Tests/MathLib/TestLinearSolver.cpp | 5 +++-- Tests/NumLib/TestSerialLinearSolver.cpp | 14 ++++++-------- 7 files changed, 23 insertions(+), 12 deletions(-) diff --git a/ChemistryLib/CreateChemicalSolverInterface.cpp b/ChemistryLib/CreateChemicalSolverInterface.cpp index 415b69dbd10..bd080a09972 100644 --- a/ChemistryLib/CreateChemicalSolverInterface.cpp +++ b/ChemistryLib/CreateChemicalSolverInterface.cpp @@ -12,6 +12,7 @@ #include <iphreeqc/src/src/phreeqcpp/cxxKinetics.h> +#include "BaseLib/ConfigTree.h" #include "BaseLib/FileTools.h" #include "Common/CreateReactionRate.h" #include "MeshLib/Mesh.h" diff --git a/MathLib/LinAlg/Eigen/EigenLinearSolver.h b/MathLib/LinAlg/Eigen/EigenLinearSolver.h index 6aef020f5ec..ae7305853c3 100644 --- a/MathLib/LinAlg/Eigen/EigenLinearSolver.h +++ b/MathLib/LinAlg/Eigen/EigenLinearSolver.h @@ -10,11 +10,16 @@ #pragma once +#include <memory> #include <vector> -#include "BaseLib/ConfigTree.h" #include "EigenOption.h" +namespace BaseLib +{ +class ConfigTree; +} + namespace MathLib { diff --git a/ProcessLib/BoundaryCondition/PhaseFieldIrreversibleDamageOracleBoundaryCondition.cpp b/ProcessLib/BoundaryCondition/PhaseFieldIrreversibleDamageOracleBoundaryCondition.cpp index 55ee54835ac..decf3acc3ef 100644 --- a/ProcessLib/BoundaryCondition/PhaseFieldIrreversibleDamageOracleBoundaryCondition.cpp +++ b/ProcessLib/BoundaryCondition/PhaseFieldIrreversibleDamageOracleBoundaryCondition.cpp @@ -12,6 +12,8 @@ #include <algorithm> #include <vector> + +#include "BaseLib/ConfigTree.h" #include "BaseLib/Logging.h" namespace ProcessLib diff --git a/ProcessLib/BoundaryCondition/Python/PythonBoundaryCondition.cpp b/ProcessLib/BoundaryCondition/Python/PythonBoundaryCondition.cpp index f3fb6e2fd36..861a79583e3 100644 --- a/ProcessLib/BoundaryCondition/Python/PythonBoundaryCondition.cpp +++ b/ProcessLib/BoundaryCondition/Python/PythonBoundaryCondition.cpp @@ -11,8 +11,10 @@ #include "PythonBoundaryCondition.h" #include <pybind11/pybind11.h> + #include <iostream> +#include "BaseLib/ConfigTree.h" #include "MeshLib/MeshSearch/NodeSearch.h" #include "ProcessLib/Utils/CreateLocalAssemblers.h" #include "PythonBoundaryConditionLocalAssembler.h" diff --git a/ProcessLib/CentralDifferencesJacobianAssembler.cpp b/ProcessLib/CentralDifferencesJacobianAssembler.cpp index 2515e051713..70d72322cb4 100644 --- a/ProcessLib/CentralDifferencesJacobianAssembler.cpp +++ b/ProcessLib/CentralDifferencesJacobianAssembler.cpp @@ -9,9 +9,11 @@ */ #include "CentralDifferencesJacobianAssembler.h" + +#include "BaseLib/ConfigTree.h" #include "BaseLib/Error.h" -#include "MathLib/LinAlg/Eigen/EigenMapTools.h" #include "LocalAssemblerInterface.h" +#include "MathLib/LinAlg/Eigen/EigenMapTools.h" namespace ProcessLib { diff --git a/Tests/MathLib/TestLinearSolver.cpp b/Tests/MathLib/TestLinearSolver.cpp index afa8cb7e66f..417b49f512d 100644 --- a/Tests/MathLib/TestLinearSolver.cpp +++ b/Tests/MathLib/TestLinearSolver.cpp @@ -15,10 +15,11 @@ #include <gtest/gtest.h> -#include "MathLib/LinAlg/LinAlg.h" +#include "BaseLib/ConfigTree.h" +#include "MathLib/LinAlg/ApplyKnownSolution.h" #include "MathLib/LinAlg/Dense/DenseMatrix.h" #include "MathLib/LinAlg/FinalizeMatrixAssembly.h" -#include "MathLib/LinAlg/ApplyKnownSolution.h" +#include "MathLib/LinAlg/LinAlg.h" #ifdef OGS_USE_EIGEN #include "MathLib/LinAlg/Eigen/EigenMatrix.h" diff --git a/Tests/NumLib/TestSerialLinearSolver.cpp b/Tests/NumLib/TestSerialLinearSolver.cpp index bbddc00d37b..ee45fcaea80 100644 --- a/Tests/NumLib/TestSerialLinearSolver.cpp +++ b/Tests/NumLib/TestSerialLinearSolver.cpp @@ -10,31 +10,29 @@ * */ +#include <gtest/gtest.h> + #include <cmath> #include <memory> #include <vector> -#include <gtest/gtest.h> - +#include "BaseLib/ConfigTree.h" #include "MathLib/LinAlg/ApplyKnownSolution.h" +#include "MathLib/LinAlg/FinalizeMatrixAssembly.h" #include "MathLib/LinAlg/GlobalMatrixVectorTypes.h" #include "MathLib/LinAlg/MatrixSpecifications.h" #include "MathLib/LinAlg/MatrixVectorTraits.h" -#include "MathLib/LinAlg/FinalizeMatrixAssembly.h" #include "MathLib/MathTools.h" - #include "MeshLib/Elements/Element.h" #include "MeshLib/Elements/Quad.h" #include "MeshLib/Location.h" #include "MeshLib/Mesh.h" #include "MeshLib/MeshSubset.h" #include "MeshLib/Node.h" - -#include "NumLib/NumericsConfig.h" #include "NumLib/DOF/DOFTableUtil.h" - -#include "Tests/TestTools.h" +#include "NumLib/NumericsConfig.h" #include "SteadyDiffusion2DExample1.h" +#include "Tests/TestTools.h" TEST(NumLibSerialLinearSolver, Steady2DdiffusionQuadElem) { -- GitLab