diff --git a/GeoLib/AnalyticalGeometry.cpp b/GeoLib/AnalyticalGeometry.cpp
index 024e15ba8229b11560ce5bda2268f0a49e7021c0..6d7d621627f15db57786cf2dc7fde355d6bd449a 100644
--- a/GeoLib/AnalyticalGeometry.cpp
+++ b/GeoLib/AnalyticalGeometry.cpp
@@ -14,7 +14,7 @@
 
 #include "AnalyticalGeometry.h"
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <algorithm>
 #include <cmath>
 #include <limits>
diff --git a/GeoLib/Triangle.cpp b/GeoLib/Triangle.cpp
index 104a37b1d08d1907a5f4554bc49ed6b6a332a43f..d5228aec338a00ca3747bc2e4d6d2c41c07650fe 100644
--- a/GeoLib/Triangle.cpp
+++ b/GeoLib/Triangle.cpp
@@ -9,7 +9,7 @@
 
 #include "Triangle.h"
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 
 #include "AnalyticalGeometry.h"
 #include "MathLib/GeometricBasics.h"
diff --git a/MaterialLib/FractureModels/CohesiveZoneModeI.h b/MaterialLib/FractureModels/CohesiveZoneModeI.h
index e0443adb28f4371d4ea88aceb672297d74d8e576..25a7cab6bd515da2c8a5cf71ac4c18a6ed5f6f84 100644
--- a/MaterialLib/FractureModels/CohesiveZoneModeI.h
+++ b/MaterialLib/FractureModels/CohesiveZoneModeI.h
@@ -12,9 +12,8 @@
 #include <Eigen/Eigen>
 #include <utility>
 
-#include "ParameterLib/Parameter.h"
-
 #include "FractureModelBase.h"
+#include "ParameterLib/Parameter.h"
 
 namespace MaterialLib
 {
diff --git a/MaterialLib/FractureModels/Coulomb.h b/MaterialLib/FractureModels/Coulomb.h
index a36aa8c15f4f1461ae5ea967cf5ce8fc43de18f6..8f7cd48bf67455a2026c1a542c174888e237d29f 100644
--- a/MaterialLib/FractureModels/Coulomb.h
+++ b/MaterialLib/FractureModels/Coulomb.h
@@ -12,11 +12,10 @@
 #include <Eigen/Eigen>
 #include <utility>
 
+#include "FractureModelBase.h"
 #include "NumLib/NewtonRaphson.h"
 #include "ParameterLib/Parameter.h"
 
-#include "FractureModelBase.h"
-
 namespace MaterialLib
 {
 namespace Fracture
diff --git a/MaterialLib/FractureModels/LinearElasticIsotropic.h b/MaterialLib/FractureModels/LinearElasticIsotropic.h
index 57013bf1abf1297b5ff933a4538802a6c68e92ba..ceac0a355778905c438a544cd620ba253e6bdbfb 100644
--- a/MaterialLib/FractureModels/LinearElasticIsotropic.h
+++ b/MaterialLib/FractureModels/LinearElasticIsotropic.h
@@ -12,9 +12,8 @@
 #include <Eigen/Eigen>
 #include <utility>
 
-#include "ParameterLib/Parameter.h"
-
 #include "FractureModelBase.h"
+#include "ParameterLib/Parameter.h"
 
 namespace MaterialLib
 {
diff --git a/MaterialLib/MPL/Property.h b/MaterialLib/MPL/Property.h
index ea2c6c145a83a9592e38861e9be52501e7a3f00c..ee532508728c6ec81d2ebf493223231752430ec6 100644
--- a/MaterialLib/MPL/Property.h
+++ b/MaterialLib/MPL/Property.h
@@ -11,7 +11,7 @@
  */
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <array>
 #include <string>
 #include <typeinfo>
diff --git a/MaterialLib/MPL/Utils/FormEffectiveThermalConductivity.h b/MaterialLib/MPL/Utils/FormEffectiveThermalConductivity.h
index 7a21e3998694caeb63a85763648fef317bc3e26f..db4d82da396095285312bf7d7547b24bda02340a 100644
--- a/MaterialLib/MPL/Utils/FormEffectiveThermalConductivity.h
+++ b/MaterialLib/MPL/Utils/FormEffectiveThermalConductivity.h
@@ -11,7 +11,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 
 #include "MaterialLib/MPL/Property.h"
 
diff --git a/MaterialLib/MPL/Utils/FormEigenTensor.h b/MaterialLib/MPL/Utils/FormEigenTensor.h
index c1f786ff95d251187261d7d18205e074362e9316..d8599512ff62a91ea5baed3bb8c3cb7c077486b2 100644
--- a/MaterialLib/MPL/Utils/FormEigenTensor.h
+++ b/MaterialLib/MPL/Utils/FormEigenTensor.h
@@ -11,7 +11,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 
 #include "MaterialLib/MPL/Property.h"
 
diff --git a/MaterialLib/MPL/Utils/FormEigenVector.h b/MaterialLib/MPL/Utils/FormEigenVector.h
index 2a53ebb3f0abd497ea75c6d53df088f3badf658e..86aa1082d756f14a7e808e5d5791939bcbf61764 100644
--- a/MaterialLib/MPL/Utils/FormEigenVector.h
+++ b/MaterialLib/MPL/Utils/FormEigenVector.h
@@ -11,7 +11,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 
 #include "MaterialLib/MPL/Property.h"
 
diff --git a/MaterialLib/MPL/Utils/FormKelvinVectorFromThermalExpansivity.h b/MaterialLib/MPL/Utils/FormKelvinVectorFromThermalExpansivity.h
index 18a4061dea68e72229f69d17a4cfa90312e393da..d883a0caa351db724e2985edd24baeb1cc8c7678 100644
--- a/MaterialLib/MPL/Utils/FormKelvinVectorFromThermalExpansivity.h
+++ b/MaterialLib/MPL/Utils/FormKelvinVectorFromThermalExpansivity.h
@@ -11,7 +11,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <variant>
 
 #include "MaterialLib/MPL/Property.h"
diff --git a/MaterialLib/MPL/Utils/GetSymmetricTensor.h b/MaterialLib/MPL/Utils/GetSymmetricTensor.h
index 5c3c296acd3db97a00c5d3a342c86e3d9056aadb..a234b482108541e89a4708a2b52a9935da67005d 100644
--- a/MaterialLib/MPL/Utils/GetSymmetricTensor.h
+++ b/MaterialLib/MPL/Utils/GetSymmetricTensor.h
@@ -11,7 +11,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 
 #include "MaterialLib/MPL/Property.h"
 #include "MathLib/KelvinVector.h"
diff --git a/MaterialLib/MPL/VariableType.h b/MaterialLib/MPL/VariableType.h
index 7fdd121b10738b6230004faa6061f3e1299b96d3..c42d95031735a6e23b5db606339328d3fea51f47 100644
--- a/MaterialLib/MPL/VariableType.h
+++ b/MaterialLib/MPL/VariableType.h
@@ -14,7 +14,7 @@
 
 #include <BaseLib/Error.h>
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <array>
 #include <string>
 #include <variant>
diff --git a/MaterialLib/PorousMedium/Permeability/DupuitPermeability.h b/MaterialLib/PorousMedium/Permeability/DupuitPermeability.h
index ba774a1eac7799224a49a4f97a6e1dbb203c36f4..e3a34c5bcccb211f2578853900514c0eca61917a 100644
--- a/MaterialLib/PorousMedium/Permeability/DupuitPermeability.h
+++ b/MaterialLib/PorousMedium/Permeability/DupuitPermeability.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 
 #include "MaterialLib/PorousMedium/Permeability/Permeability.h"
 #include "ParameterLib/Parameter.h"
diff --git a/MaterialLib/PorousMedium/Permeability/Permeability.h b/MaterialLib/PorousMedium/Permeability/Permeability.h
index 8de836a8ef62b5ef24f299417ec31771ed3fb354..970b6b48a41fdbc387e78cc824628190ed3f9333 100644
--- a/MaterialLib/PorousMedium/Permeability/Permeability.h
+++ b/MaterialLib/PorousMedium/Permeability/Permeability.h
@@ -9,7 +9,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 
 #include "BaseLib/Error.h"
 #include "ParameterLib/Parameter.h"
diff --git a/MaterialLib/PorousMedium/PorousMediaProperties.h b/MaterialLib/PorousMedium/PorousMediaProperties.h
index 39e96e6ea57d7d79b208f635275a3280a1aedd67..51a154cf160d87287a169753c4e602aaabbfecbb 100644
--- a/MaterialLib/PorousMedium/PorousMediaProperties.h
+++ b/MaterialLib/PorousMedium/PorousMediaProperties.h
@@ -10,16 +10,15 @@
 
 #pragma once
 
+#include <Eigen/Core>
 #include <memory>
 #include <vector>
-#include <Eigen/Dense>
 
+#include "ParameterLib/SpatialPosition.h"
 #include "Permeability/Permeability.h"
 #include "Porosity/Porosity.h"
 #include "Storage/Storage.h"
 
-#include "ParameterLib/SpatialPosition.h"
-
 namespace MaterialLib
 {
 namespace PorousMedium
diff --git a/MathLib/GeometricBasics.cpp b/MathLib/GeometricBasics.cpp
index d6cc807d2cbe2771e430ec1a6b23efa7c335f45c..9d203e5ec0ee3963be69f198361737ebc2531fbb 100644
--- a/MathLib/GeometricBasics.cpp
+++ b/MathLib/GeometricBasics.cpp
@@ -9,7 +9,7 @@
 
 #include "GeometricBasics.h"
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 
 #include "BaseLib/Logging.h"
 #include "Point3d.h"
diff --git a/MathLib/KelvinVector.h b/MathLib/KelvinVector.h
index d5297994171fe6319e1928c1710de29badd4a730..5925bcbc5b23fa23219f71df0a076b5283791bfe 100644
--- a/MathLib/KelvinVector.h
+++ b/MathLib/KelvinVector.h
@@ -9,7 +9,8 @@
  */
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
+
 #include "BaseLib/Error.h"
 
 namespace MathLib
diff --git a/MathLib/MathTools.cpp b/MathLib/MathTools.cpp
index 63b78854b209dd45206eed4982052cff23c1829b..b3bfd7f9a1ccf3dc4b5c0b001cdf1b5afb4b0e68 100644
--- a/MathLib/MathTools.cpp
+++ b/MathLib/MathTools.cpp
@@ -9,7 +9,7 @@
 
 #include "MathTools.h"
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <cmath>
 
 #include "Point3d.h"
diff --git a/MathLib/Point3d.h b/MathLib/Point3d.h
index 62580794272a762ac661bfec3028790c90939808..616f081dac4b3b74e1db957582bc89c0d6ad34fd 100644
--- a/MathLib/Point3d.h
+++ b/MathLib/Point3d.h
@@ -12,8 +12,8 @@
 
 #pragma once
 
+#include <Eigen/Core>
 #include <limits>
-#include <Eigen/Dense>
 
 #include "mathlib_export.h"
 
diff --git a/MeshLib/ElementCoordinatesMappingLocal.h b/MeshLib/ElementCoordinatesMappingLocal.h
index d31050c7670183450b841effaa9adb34534fc602..3fca9fa61f0ea733674b9d123d6cfb4b49c962d7 100644
--- a/MeshLib/ElementCoordinatesMappingLocal.h
+++ b/MeshLib/ElementCoordinatesMappingLocal.h
@@ -9,8 +9,9 @@
 
 #pragma once
 
-#include <vector>
 #include <Eigen/Eigen>
+#include <vector>
+
 #include "MathLib/Point3d.h"
 
 namespace MeshLib
diff --git a/MeshLib/MeshSurfaceExtraction.h b/MeshLib/MeshSurfaceExtraction.h
index 0ae8275303dba24a7269ec5048fa70da58bb04b7..a10acb681fcccf1978ede62f3e4a89fbdf90f5d1 100644
--- a/MeshLib/MeshSurfaceExtraction.h
+++ b/MeshLib/MeshSurfaceExtraction.h
@@ -14,11 +14,10 @@
 
 #pragma once
 
+#include <Eigen/Eigen>
 #include <cstddef>
 #include <vector>
 
-#include <Eigen/Eigen>
-
 #include "MeshLib/Mesh.h"
 #include "MeshLib/Properties.h"
 
diff --git a/MeshLib/Utils/GetElementRotationMatrices.h b/MeshLib/Utils/GetElementRotationMatrices.h
index ea74ae7622fbb8e40945a219f7e6497c96d8a881..3d436d395468590d9bd9d39bc13ebb8df17a13b8 100644
--- a/MeshLib/Utils/GetElementRotationMatrices.h
+++ b/MeshLib/Utils/GetElementRotationMatrices.h
@@ -11,7 +11,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <vector>
 
 namespace MeshLib
diff --git a/NumLib/DOF/LocalToGlobalIndexMap.h b/NumLib/DOF/LocalToGlobalIndexMap.h
index 00e4c8110372defd336bbddd9f2a506032c4be63..a7f41ae0fc762667320cf515d50166ade3f3351a 100644
--- a/NumLib/DOF/LocalToGlobalIndexMap.h
+++ b/NumLib/DOF/LocalToGlobalIndexMap.h
@@ -14,7 +14,7 @@
 #include <iosfwd>
 #endif  // NDEBUG
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <vector>
 
 #include "MathLib/LinAlg/RowColumnIndices.h"
diff --git a/NumLib/Fem/ShapeMatrixPolicy.h b/NumLib/Fem/ShapeMatrixPolicy.h
index a307508c67f4480400cd5f5965d977bf756a7bea..c8dcd1ce6a00dbc060ccb39a3a827b59f0c60bd3 100644
--- a/NumLib/Fem/ShapeMatrixPolicy.h
+++ b/NumLib/Fem/ShapeMatrixPolicy.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 
 #include "NumLib/Fem/CoordinatesMapping/ShapeMatrices.h"
 
diff --git a/NumLib/NewtonRaphson.h b/NumLib/NewtonRaphson.h
index 4e9a3edc8d06ae5415d77aa1a164a84bf8e300b1..b37dc2d59cd8a2eeb6654f69eb780ce5f9897d5d 100644
--- a/NumLib/NewtonRaphson.h
+++ b/NumLib/NewtonRaphson.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <optional>
 
 #include "BaseLib/Logging.h"
diff --git a/ParameterLib/CoordinateSystem.h b/ParameterLib/CoordinateSystem.h
index 05bc868ace0dfb30422024ac06ba8505b6d57476..2dbfb511b9d30e23d8efa8501acb76b22fdec6cd 100644
--- a/ParameterLib/CoordinateSystem.h
+++ b/ParameterLib/CoordinateSystem.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <array>
 #include <vector>
 
diff --git a/ParameterLib/Parameter.h b/ParameterLib/Parameter.h
index 28d9f52820f3b5b0f4631b46797d4b4cdff76549..9ca0e938004d0af625660005972d5e12c7ff86d9 100644
--- a/ParameterLib/Parameter.h
+++ b/ParameterLib/Parameter.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <map>
 #include <memory>
 #include <optional>
diff --git a/ProcessLib/AbstractJacobianAssembler.h b/ProcessLib/AbstractJacobianAssembler.h
index 486dbaf69609f007bc5058bbf752ad947444d1d7..97f0de9d39247398eb717bcb394e187f020344b0 100644
--- a/ProcessLib/AbstractJacobianAssembler.h
+++ b/ProcessLib/AbstractJacobianAssembler.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <vector>
 
 #include "BaseLib/Error.h"
diff --git a/ProcessLib/ComponentTransport/ComponentTransportFEM.h b/ProcessLib/ComponentTransport/ComponentTransportFEM.h
index e449fe278eefcb456dfeff6581b8fc14186a4201..e5d9e676a0635b59a8cfece7a7300712c384d98d 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportFEM.h
+++ b/ProcessLib/ComponentTransport/ComponentTransportFEM.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <Eigen/Sparse>
 #include <numeric>
 #include <vector>
diff --git a/ProcessLib/CreateDeactivatedSubdomain.cpp b/ProcessLib/CreateDeactivatedSubdomain.cpp
index dc42503fc9d175c4532563eeb693837e4a97fa2a..6684e1e7dd05e33046477c723475e19a531bd6bc 100644
--- a/ProcessLib/CreateDeactivatedSubdomain.cpp
+++ b/ProcessLib/CreateDeactivatedSubdomain.cpp
@@ -8,7 +8,7 @@
  */
 #include "CreateDeactivatedSubdomain.h"
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <range/v3/algorithm/all_of.hpp>
 #include <range/v3/algorithm/copy_if.hpp>
 #include <range/v3/algorithm/partition_copy.hpp>
diff --git a/ProcessLib/DeactivatedSubdomain.h b/ProcessLib/DeactivatedSubdomain.h
index 3ae67d75015eb8e04503ca237fee64939264763f..6f65ccfb2dc29ba7da16c099e36c725b15d8b85b 100644
--- a/ProcessLib/DeactivatedSubdomain.h
+++ b/ProcessLib/DeactivatedSubdomain.h
@@ -12,7 +12,7 @@
  */
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <memory>
 #include <optional>
 #include <string>
diff --git a/ProcessLib/HT/HTFEM.h b/ProcessLib/HT/HTFEM.h
index 788ab691f74e226f879dce5561fb0eb98740a61d..64d748157ea25ad75cf40a7fb39f56b86de38182 100644
--- a/ProcessLib/HT/HTFEM.h
+++ b/ProcessLib/HT/HTFEM.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <vector>
 
 #include "HTLocalAssemblerInterface.h"
diff --git a/ProcessLib/HT/MonolithicHTFEM.h b/ProcessLib/HT/MonolithicHTFEM.h
index d85507a012fa82f3df694c0a534d892a1abeea00..3ed48ba88bb617d4ff070474bd735bd0a19cd0dd 100644
--- a/ProcessLib/HT/MonolithicHTFEM.h
+++ b/ProcessLib/HT/MonolithicHTFEM.h
@@ -11,7 +11,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <typeinfo>
 #include <vector>
 
diff --git a/ProcessLib/HT/StaggeredHTFEM.h b/ProcessLib/HT/StaggeredHTFEM.h
index d9147d34addcffbfa16ea1ac67a081a1a2545b7e..a7680ab3ba4c5bef4b73a5d27867353ba6424cc5 100644
--- a/ProcessLib/HT/StaggeredHTFEM.h
+++ b/ProcessLib/HT/StaggeredHTFEM.h
@@ -11,7 +11,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <vector>
 
 #include "HTFEM.h"
diff --git a/ProcessLib/HeatTransportBHE/BHE/BHECommonCoaxial.h b/ProcessLib/HeatTransportBHE/BHE/BHECommonCoaxial.h
index c2e8090fdd52622927ca2049c0fc249408f7ebcf..39cefef95b6caf3ee23d24ae2e99a14379989470 100644
--- a/ProcessLib/HeatTransportBHE/BHE/BHECommonCoaxial.h
+++ b/ProcessLib/HeatTransportBHE/BHE/BHECommonCoaxial.h
@@ -11,6 +11,7 @@
 
 #include <Eigen/Eigen>
 #include <optional>
+
 #include "BHECommon.h"
 #include "FlowAndTemperatureControl.h"
 #include "PipeConfigurationCoaxial.h"
diff --git a/ProcessLib/HeatTransportBHE/BHE/BHECommonUType.h b/ProcessLib/HeatTransportBHE/BHE/BHECommonUType.h
index 208bd77f7cc500523409b03539c45bcb26613a37..d2b24d81395b658c5ddf8208b3684b401bae5b7a 100644
--- a/ProcessLib/HeatTransportBHE/BHE/BHECommonUType.h
+++ b/ProcessLib/HeatTransportBHE/BHE/BHECommonUType.h
@@ -10,6 +10,7 @@
 #pragma once
 
 #include <Eigen/Eigen>
+
 #include "BHECommon.h"
 #include "FlowAndTemperatureControl.h"
 #include "PipeConfigurationUType.h"
diff --git a/ProcessLib/HeatTransportBHE/BHE/BHE_1P.h b/ProcessLib/HeatTransportBHE/BHE/BHE_1P.h
index 237cf072cb90b3e1caefb5210d4c8aeb88ca5702..3878b7fc2075edf1d387042c4c9333a0a6c008c7 100644
--- a/ProcessLib/HeatTransportBHE/BHE/BHE_1P.h
+++ b/ProcessLib/HeatTransportBHE/BHE/BHE_1P.h
@@ -13,9 +13,8 @@
 #include <Eigen/Eigen>
 #include <optional>
 
-#include "BaseLib/Error.h"
-
 #include "BHECommon.h"
+#include "BaseLib/Error.h"
 #include "FlowAndTemperatureControl.h"
 #include "PipeConfiguration1PType.h"
 
diff --git a/ProcessLib/HeatTransportBHE/BHE/BHE_1U.h b/ProcessLib/HeatTransportBHE/BHE/BHE_1U.h
index 5e38eb0ead9efe01746dc9d43961b1d9e6ee6725..4a00a7bb70106359343d2455b72ab0595e00b961 100644
--- a/ProcessLib/HeatTransportBHE/BHE/BHE_1U.h
+++ b/ProcessLib/HeatTransportBHE/BHE/BHE_1U.h
@@ -13,10 +13,9 @@
 #include <Eigen/Eigen>
 #include <optional>
 
-#include "BaseLib/Error.h"
-
 #include "BHECommon.h"
 #include "BHECommonUType.h"
+#include "BaseLib/Error.h"
 #include "FlowAndTemperatureControl.h"
 #include "PipeConfigurationUType.h"
 
diff --git a/ProcessLib/HeatTransportBHE/BHE/BHE_2U.h b/ProcessLib/HeatTransportBHE/BHE/BHE_2U.h
index cf43667bc1846f000268a3a87753859c13da665d..2d10b77330d4b62159f1ad4031a6651e79d33034 100644
--- a/ProcessLib/HeatTransportBHE/BHE/BHE_2U.h
+++ b/ProcessLib/HeatTransportBHE/BHE/BHE_2U.h
@@ -11,12 +11,11 @@
 #pragma once
 
 #include <Eigen/Eigen>
-
 #include <optional>
-#include "BaseLib/Error.h"
 
 #include "BHECommon.h"
 #include "BHECommonUType.h"
+#include "BaseLib/Error.h"
 #include "FlowAndTemperatureControl.h"
 #include "PipeConfigurationUType.h"
 
diff --git a/ProcessLib/HeatTransportBHE/BHE/BHE_CXA.h b/ProcessLib/HeatTransportBHE/BHE/BHE_CXA.h
index fc6e555e9e5e80dc7d8974780b64e1335b2e609f..47d8801c682508da36170193b9f9cb2b7ee30213 100644
--- a/ProcessLib/HeatTransportBHE/BHE/BHE_CXA.h
+++ b/ProcessLib/HeatTransportBHE/BHE/BHE_CXA.h
@@ -12,9 +12,8 @@
 
 #include <Eigen/Eigen>
 
-#include "BaseLib/Error.h"
-
 #include "BHECommonCoaxial.h"
+#include "BaseLib/Error.h"
 
 namespace ProcessLib
 {
diff --git a/ProcessLib/HeatTransportBHE/LocalAssemblers/SecondaryData.h b/ProcessLib/HeatTransportBHE/LocalAssemblers/SecondaryData.h
index eb83b8b91937144c670d4926ca09e914dafa22fb..c2283e232b2471ec2a55f6fcbd04642caae05adc 100644
--- a/ProcessLib/HeatTransportBHE/LocalAssemblers/SecondaryData.h
+++ b/ProcessLib/HeatTransportBHE/LocalAssemblers/SecondaryData.h
@@ -10,9 +10,8 @@
 
 #pragma once
 
-#include <vector>
-
 #include <Eigen/Eigen>
+#include <vector>
 
 #include "NumLib/Fem/CoordinatesMapping/ShapeMatrices.h"
 
diff --git a/ProcessLib/HydroMechanics/HydroMechanicsProcessData.h b/ProcessLib/HydroMechanics/HydroMechanicsProcessData.h
index d0b10719e66e1a91d0ae847de224514cbcd73b3a..e7fca00fc212db30a8615b30920c92d11bb8bbe0 100644
--- a/ProcessLib/HydroMechanics/HydroMechanicsProcessData.h
+++ b/ProcessLib/HydroMechanics/HydroMechanicsProcessData.h
@@ -10,14 +10,12 @@
 
 #pragma once
 
-#include "ParameterLib/Parameter.h"
-
+#include <Eigen/Core>
 #include <memory>
 #include <utility>
 
-#include <Eigen/Dense>
-
 #include "MaterialLib/MPL/MaterialSpatialDistributionMap.h"
+#include "ParameterLib/Parameter.h"
 
 namespace MaterialLib
 {
diff --git a/ProcessLib/LIE/Common/LevelSetFunction.h b/ProcessLib/LIE/Common/LevelSetFunction.h
index c73ff320a7416ad484eec24a554a9d8a19682268..5fd25fdcdaea167943415c30d69992ec1ec2fe95 100644
--- a/ProcessLib/LIE/Common/LevelSetFunction.h
+++ b/ProcessLib/LIE/Common/LevelSetFunction.h
@@ -9,11 +9,10 @@
 
 #pragma once
 
+#include <Eigen/Eigen>
 #include <unordered_map>
 #include <vector>
 
-#include <Eigen/Eigen>
-
 namespace ProcessLib
 {
 namespace LIE
diff --git a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcessData.h b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcessData.h
index 3f16b8a82830d97ecc9f578e98d799ad1af16f92..6ece07fb4fab93e7fe3ea522e8f2f5dacafefc75 100644
--- a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcessData.h
+++ b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcessData.h
@@ -10,16 +10,14 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <memory>
 #include <utility>
 
-#include "MeshLib/ElementStatus.h"
-#include "MeshLib/PropertyVector.h"
-
 #include "MaterialLib/FractureModels/FractureModelBase.h"
 #include "MaterialLib/SolidModels/MechanicsBase.h"
-
+#include "MeshLib/ElementStatus.h"
+#include "MeshLib/PropertyVector.h"
 #include "ProcessLib/LIE/Common/FractureProperty.h"
 
 namespace MeshLib
diff --git a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SecondaryData.h b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SecondaryData.h
index 33991e4738aa15243964e9ca04c030e1161968c0..37627127d8c8c9212a368c2da6bc87269c154714 100644
--- a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SecondaryData.h
+++ b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SecondaryData.h
@@ -10,9 +10,8 @@
 
 #pragma once
 
-#include <vector>
-
 #include <Eigen/Eigen>
+#include <vector>
 
 #include "NumLib/Fem/CoordinatesMapping/ShapeMatrices.h"
 
diff --git a/ProcessLib/LiquidFlow/LiquidFlowData.h b/ProcessLib/LiquidFlow/LiquidFlowData.h
index f5b8ae34800328b497cf01cebe51937d9b635e7a..ebb234f356995653eac93fc1dbd1e2766bde8dbc 100644
--- a/ProcessLib/LiquidFlow/LiquidFlowData.h
+++ b/ProcessLib/LiquidFlow/LiquidFlowData.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <memory>
 
 #include "ParameterLib/Parameter.h"
diff --git a/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler.h b/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler.h
index 14adc74bbf5684aca1b389ce7ef43fb9ca43aaad..42185fb4e038bf689f647437262e8aaa4e75a4ed 100644
--- a/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler.h
+++ b/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler.h
@@ -12,7 +12,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <vector>
 
 #include "LiquidFlowData.h"
diff --git a/ProcessLib/LocalAssemblerInterface.h b/ProcessLib/LocalAssemblerInterface.h
index d19f6dd5adb787d25f3c0ccec592dd880a4c0ab6..9583f947da5ccc4cfa793094a4cdf7368e334b4b 100644
--- a/ProcessLib/LocalAssemblerInterface.h
+++ b/ProcessLib/LocalAssemblerInterface.h
@@ -10,10 +10,10 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 
-#include "NumLib/NumericsConfig.h"
 #include "MathLib/Point3d.h"
+#include "NumLib/NumericsConfig.h"
 
 namespace NumLib
 {
diff --git a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportFEM.h b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportFEM.h
index 2cdc6650c2a74f726778aac352de7ee5657cf6c6..779eec1b3b8640e7a2c931cfa012ec677eec4298 100644
--- a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportFEM.h
+++ b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportFEM.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <vector>
 
 #include "MathLib/LinAlg/Eigen/EigenMapTools.h"
diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsProcessData.h b/ProcessLib/RichardsMechanics/RichardsMechanicsProcessData.h
index 53117cbfc3b44f2e56865a3b6a9994e644d0acf6..43b912517f01e58640f85ff8924c1ac4e545ff92 100644
--- a/ProcessLib/RichardsMechanics/RichardsMechanicsProcessData.h
+++ b/ProcessLib/RichardsMechanics/RichardsMechanicsProcessData.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <memory>
 #include <utility>
 
diff --git a/ProcessLib/SmallDeformation/SmallDeformationProcessData.h b/ProcessLib/SmallDeformation/SmallDeformationProcessData.h
index aac77a7ae1638fed1b888cfc5dd5ecabfd8ef8bd..b38d08809a9f2b7fee396f923ac33cc6ab777eb8 100644
--- a/ProcessLib/SmallDeformation/SmallDeformationProcessData.h
+++ b/ProcessLib/SmallDeformation/SmallDeformationProcessData.h
@@ -10,11 +10,10 @@
 
 #pragma once
 
+#include <Eigen/Eigen>
 #include <memory>
 #include <utility>
 
-#include <Eigen/Eigen>
-
 #include "ParameterLib/Parameter.h"
 
 namespace MaterialLib
diff --git a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcessData.h b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcessData.h
index de7050dcf5640635cf052b5d51bd3665bc111d3f..b66574d985246b435997bc0c3227b995866ec606 100644
--- a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcessData.h
+++ b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcessData.h
@@ -10,11 +10,10 @@
 
 #pragma once
 
+#include <Eigen/Eigen>
 #include <memory>
 #include <utility>
 
-#include <Eigen/Eigen>
-
 namespace MaterialLib
 {
 namespace Solids
diff --git a/ProcessLib/StokesFlow/StokesFlowFEM.h b/ProcessLib/StokesFlow/StokesFlowFEM.h
index a5a01349cce15415780ec13d5c2792e76552af70..45f44f483ac947201ce111a7d7c4df5ed56460d2 100644
--- a/ProcessLib/StokesFlow/StokesFlowFEM.h
+++ b/ProcessLib/StokesFlow/StokesFlowFEM.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <vector>
 
 #include "IntegrationPointData.h"
diff --git a/ProcessLib/TES/TESAssemblyParams.h b/ProcessLib/TES/TESAssemblyParams.h
index 6986774aa2b769a7bfe896eab6485b092846c952..b949485de56b46f3ad1707cf3ccee1affa87953c 100644
--- a/ProcessLib/TES/TESAssemblyParams.h
+++ b/ProcessLib/TES/TESAssemblyParams.h
@@ -13,9 +13,8 @@
 #include <Eigen/Eigen>
 #include <Eigen/Sparse>
 
-#include "MaterialLib/PhysicalConstant.h"
 #include "MaterialLib/Adsorption/Reaction.h"
-
+#include "MaterialLib/PhysicalConstant.h"
 #include "ProcessLib/VariableTransformation.h"
 
 namespace ProcessLib
diff --git a/ProcessLib/TH2M/TH2MProcessData.h b/ProcessLib/TH2M/TH2MProcessData.h
index 8f723fabc8f65320b18e4f351490f931d2c49a49..cbe87bd22c46065f7cd4c909202fd1582134540a 100644
--- a/ProcessLib/TH2M/TH2MProcessData.h
+++ b/ProcessLib/TH2M/TH2MProcessData.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <memory>
 #include <utility>
 
diff --git a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcessData.h b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcessData.h
index bf93f5399a81dc5292fef67bb0100e202db8e3c2..74f77a19200c9d4ec34512e7fd341ebf7b3a3de7 100644
--- a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcessData.h
+++ b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcessData.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <memory>
 #include <utility>
 
diff --git a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcessData.h b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcessData.h
index 5b18c7e256972af97a1f084f4fe1bf62fdc928a9..9a9a77a9d0dbe0c4a5b0ebcb4712865bfda09983 100644
--- a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcessData.h
+++ b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcessData.h
@@ -11,7 +11,6 @@
 #pragma once
 
 #include <Eigen/Eigen>
-
 #include <memory>
 #include <utility>
 
diff --git a/ProcessLib/ThermoRichardsFlow/CreateSimplifiedElasticityModel.cpp b/ProcessLib/ThermoRichardsFlow/CreateSimplifiedElasticityModel.cpp
index ba31194cad669eeea55fb3568539ea9dad3d599b..b0e4972e13f7c3a1a7664c7c5bbd61537c0928c6 100644
--- a/ProcessLib/ThermoRichardsFlow/CreateSimplifiedElasticityModel.cpp
+++ b/ProcessLib/ThermoRichardsFlow/CreateSimplifiedElasticityModel.cpp
@@ -10,7 +10,7 @@
 
 #include "CreateSimplifiedElasticityModel.h"
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 
 #include "BaseLib/ConfigTree.h"
 #include "BaseLib/Logging.h"
diff --git a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcessData.h b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcessData.h
index 36adcbf5a7fe16e47a1a28cd5406d61ccf731457..eeaa5be4bc605f7b8a31ba18300fddc814fe8a29 100644
--- a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcessData.h
+++ b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcessData.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <memory>
 
 namespace ProcessLib
diff --git a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcessData.h b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcessData.h
index 0f6cfeb1cc9b51ad4c316c5d437f2249f14327b9..05ee17611fa363a24f6c1e7831bad29da344648e 100644
--- a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcessData.h
+++ b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcessData.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <memory>
 #include <utility>
 
diff --git a/Tests/AutoCheckTools.h b/Tests/AutoCheckTools.h
index ff55cdfe617b54f18a115d0d58aef46e79ae832d..4fb88106f3d4b55d9f5a88a6f49fe2119ddd82aa 100644
--- a/Tests/AutoCheckTools.h
+++ b/Tests/AutoCheckTools.h
@@ -9,7 +9,7 @@
 
 #pragma once
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <autocheck/autocheck.hpp>
 
 #include "MathLib/Point3d.h"
diff --git a/Tests/MeshLib/TestMapBulkElementPoint.cpp b/Tests/MeshLib/TestMapBulkElementPoint.cpp
index f00e72052a93773ebdbf75d1c545a1f2f739d0b2..ee09e00336648ba787da226480d0589ba111048a 100644
--- a/Tests/MeshLib/TestMapBulkElementPoint.cpp
+++ b/Tests/MeshLib/TestMapBulkElementPoint.cpp
@@ -8,7 +8,7 @@
  *
  */
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <array>
 
 #include "MeshLib/Elements/Elements.h"
diff --git a/Tests/MeshLib/TestSurfaceNormals.cpp b/Tests/MeshLib/TestSurfaceNormals.cpp
index ed3a3fcd0e55f86e6db4b8dd28fd31e2b444ea88..d3986586dacb23d2c59027f47c2e9ea5fe01be59 100644
--- a/Tests/MeshLib/TestSurfaceNormals.cpp
+++ b/Tests/MeshLib/TestSurfaceNormals.cpp
@@ -8,7 +8,7 @@
  *
  */
 
-#include <Eigen/Dense>
+#include <Eigen/Core>
 #include <array>
 
 #include "MeshLib/Elements/Elements.h"
diff --git a/Tests/NumLib/SteadyDiffusion2DExample1.h b/Tests/NumLib/SteadyDiffusion2DExample1.h
index eb82f0f8875c74ff250cb69371121ea87f2b5591..7e56b83e83907ef8b0e3f83f7964176a19bbcbe6 100644
--- a/Tests/NumLib/SteadyDiffusion2DExample1.h
+++ b/Tests/NumLib/SteadyDiffusion2DExample1.h
@@ -12,11 +12,10 @@
 
 #pragma once
 
+#include <Eigen/Core>
 #include <cmath>
 #include <vector>
 
-#include <Eigen/Dense>
-
 #include "MeshLib/Elements/Element.h"
 #include "MeshLib/Mesh.h"
 #include "MeshLib/MeshGenerators/MeshGenerator.h"