diff --git a/Applications/ApplicationsLib/ProjectData.h b/Applications/ApplicationsLib/ProjectData.h
index 3382051ecdc680d7f2c825bcabc9b691df7e52f2..47b57e4922457a6373bbfd9255ee5053cbd9291b 100644
--- a/Applications/ApplicationsLib/ProjectData.h
+++ b/Applications/ApplicationsLib/ProjectData.h
@@ -12,16 +12,15 @@
 
 #pragma once
 
-#include <boost/optional/optional.hpp>
 #include <map>
 #include <memory>
+#include <optional>
 #include <string>
 
 #include "BaseLib/ConfigTree.h"
+#include "ChemistryLib/ChemicalSolverInterface.h"
 #include "MaterialLib/MPL/Medium.h"
 #include "MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.h"
-
-#include "ChemistryLib/ChemicalSolverInterface.h"
 #include "ParameterLib/CoordinateSystem.h"
 #include "ParameterLib/Parameter.h"
 #include "ProcessLib/Process.h"
diff --git a/Applications/FileIO/AsciiRasterInterface.cpp b/Applications/FileIO/AsciiRasterInterface.cpp
index ea001828e8cefa598d1ec8bccf5d61b20bd5ceb8..2c54be6a105cb6ec6f8dee3142c38e4aa97c5f15 100644
--- a/Applications/FileIO/AsciiRasterInterface.cpp
+++ b/Applications/FileIO/AsciiRasterInterface.cpp
@@ -13,12 +13,11 @@
 
 #include "AsciiRasterInterface.h"
 
-#include <boost/optional.hpp>
-#include "BaseLib/Logging.h"
+#include <optional>
 
 #include "BaseLib/FileTools.h"
+#include "BaseLib/Logging.h"
 #include "BaseLib/StringTools.h"
-
 #include "GeoLib/Raster.h"
 
 namespace FileIO
diff --git a/Applications/FileIO/AsciiRasterInterface.h b/Applications/FileIO/AsciiRasterInterface.h
index 4420d88c894ba5ba3f5427112f32ea2055d1e33a..e9fc471eb5513bda1ad617caf9a1024cf5451c56 100644
--- a/Applications/FileIO/AsciiRasterInterface.h
+++ b/Applications/FileIO/AsciiRasterInterface.h
@@ -14,9 +14,9 @@
 #pragma once
 
 #include <fstream>
-#include <vector>
+#include <optional>
 #include <string>
-#include <boost/optional.hpp>
+#include <vector>
 
 #include "GeoLib/Raster.h"
 
diff --git a/BaseLib/Algorithm.h b/BaseLib/Algorithm.h
index 861dda11917fd0b991170d9ba3519335761b2139..b7ebba8c49ed7b5c69a42c060756bbaecef29c48 100644
--- a/BaseLib/Algorithm.h
+++ b/BaseLib/Algorithm.h
@@ -11,8 +11,8 @@
 #pragma once
 
 #include <algorithm>
-#include <boost/optional.hpp>
 #include <cassert>
+#include <optional>
 #include <string>
 #include <typeindex>
 #include <typeinfo>
diff --git a/ChemistryLib/Common/CreateReactionRate.cpp b/ChemistryLib/Common/CreateReactionRate.cpp
index a32b049b129b30f5e003f29d665bf6186e580969..528590df23d6f9720b808bcb8df880aabe8dd6ec 100644
--- a/ChemistryLib/Common/CreateReactionRate.cpp
+++ b/ChemistryLib/Common/CreateReactionRate.cpp
@@ -8,7 +8,7 @@
  *
  */
 
-#include <boost/optional/optional.hpp>
+#include <optional>
 
 #include "BaseLib/ConfigTree.h"
 #include "ChemistryLib/PhreeqcIOData/ReactionRate.h"
diff --git a/ChemistryLib/Common/CreateReactionRate.h b/ChemistryLib/Common/CreateReactionRate.h
index 4b590cf88caa4049386b852f18b9a22ba0d0c9c8..56a475dec7c41bbbf6587666bd24a7cfad03c0f7 100644
--- a/ChemistryLib/Common/CreateReactionRate.h
+++ b/ChemistryLib/Common/CreateReactionRate.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <boost/optional/optional_fwd.hpp>
+#include <optional>
 #include <vector>
 
 namespace BaseLib
diff --git a/ChemistryLib/PhreeqcIOData/CreateEquilibriumReactants.cpp b/ChemistryLib/PhreeqcIOData/CreateEquilibriumReactants.cpp
index e4f90c513a413b782f2a89ef456fb751ac2f4a54..2694bdd872d4272f898444ab6364197b88fda5f7 100644
--- a/ChemistryLib/PhreeqcIOData/CreateEquilibriumReactants.cpp
+++ b/ChemistryLib/PhreeqcIOData/CreateEquilibriumReactants.cpp
@@ -8,10 +8,11 @@
  *
  */
 
-#include <boost/optional/optional.hpp>
+#include "CreateEquilibriumReactants.h"
+
+#include <optional>
 
 #include "BaseLib/ConfigTree.h"
-#include "CreateEquilibriumReactants.h"
 #include "EquilibriumReactant.h"
 #include "MeshLib/Mesh.h"
 
diff --git a/ChemistryLib/PhreeqcIOData/CreateEquilibriumReactants.h b/ChemistryLib/PhreeqcIOData/CreateEquilibriumReactants.h
index beb4567e53d300ffeb752b5609a2ae8043581c8f..abee96be548ea7448662beca36899246f92aaa63 100644
--- a/ChemistryLib/PhreeqcIOData/CreateEquilibriumReactants.h
+++ b/ChemistryLib/PhreeqcIOData/CreateEquilibriumReactants.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <boost/optional/optional_fwd.hpp>
+#include <optional>
 #include <vector>
 
 namespace BaseLib
diff --git a/ChemistryLib/PhreeqcIOData/CreateKineticReactant.cpp b/ChemistryLib/PhreeqcIOData/CreateKineticReactant.cpp
index 3e1efb03e2ec43b56292021450b9bf6886c1b7e1..042bb5d256ac511288a949b01f9685188dd61da9 100644
--- a/ChemistryLib/PhreeqcIOData/CreateKineticReactant.cpp
+++ b/ChemistryLib/PhreeqcIOData/CreateKineticReactant.cpp
@@ -8,10 +8,11 @@
  *
  */
 
-#include <boost/optional/optional.hpp>
+#include "CreateKineticReactant.h"
+
+#include <optional>
 
 #include "BaseLib/ConfigTree.h"
-#include "CreateKineticReactant.h"
 #include "KineticReactant.h"
 #include "MeshLib/Mesh.h"
 
diff --git a/ChemistryLib/PhreeqcIOData/CreateKineticReactant.h b/ChemistryLib/PhreeqcIOData/CreateKineticReactant.h
index e1a1ffaaba88df6a4d72b25645505d60276d0c3f..6505717fe89b97e94fee679e31881fb4aeb3ecee 100644
--- a/ChemistryLib/PhreeqcIOData/CreateKineticReactant.h
+++ b/ChemistryLib/PhreeqcIOData/CreateKineticReactant.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <boost/optional/optional_fwd.hpp>
+#include <optional>
 #include <vector>
 
 namespace BaseLib
diff --git a/ChemistryLib/PhreeqcIOData/CreateSurface.cpp b/ChemistryLib/PhreeqcIOData/CreateSurface.cpp
index 320ce8718fb135d3350a9c41479ea45ea66286a6..9c526bac265bb23074c753cebed6d7b59505e4fa 100644
--- a/ChemistryLib/PhreeqcIOData/CreateSurface.cpp
+++ b/ChemistryLib/PhreeqcIOData/CreateSurface.cpp
@@ -8,7 +8,7 @@
  *
  */
 
-#include <boost/optional/optional.hpp>
+#include <optional>
 
 #include "BaseLib/ConfigTree.h"
 #include "Surface.h"
diff --git a/ChemistryLib/PhreeqcIOData/CreateSurface.h b/ChemistryLib/PhreeqcIOData/CreateSurface.h
index aa09e67c7d032a491efcc3f8b8d38bc9481c0b62..849dd6fe72ffa2fcd1a2c1e6c1fed7184220f931 100644
--- a/ChemistryLib/PhreeqcIOData/CreateSurface.h
+++ b/ChemistryLib/PhreeqcIOData/CreateSurface.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <boost/optional/optional_fwd.hpp>
+#include <optional>
 #include <vector>
 
 namespace BaseLib
diff --git a/ChemistryLib/PhreeqcIOData/CreateUserPunch.cpp b/ChemistryLib/PhreeqcIOData/CreateUserPunch.cpp
index d67764f5d42c86f8af32b2e558a355c20bf68a2b..27a038f3db9a724516b230b03f26687ce600a1b8 100644
--- a/ChemistryLib/PhreeqcIOData/CreateUserPunch.cpp
+++ b/ChemistryLib/PhreeqcIOData/CreateUserPunch.cpp
@@ -8,7 +8,7 @@
  *
  */
 
-#include <boost/optional/optional.hpp>
+#include <optional>
 
 #include "BaseLib/ConfigTree.h"
 #include "MeshLib/Mesh.h"
diff --git a/ChemistryLib/PhreeqcIOData/CreateUserPunch.h b/ChemistryLib/PhreeqcIOData/CreateUserPunch.h
index 337e80b4a786ef6da7996460cad26c98dc5e1b4a..b7d506a9c7a541813b48766d94c54ebb75bc3638 100644
--- a/ChemistryLib/PhreeqcIOData/CreateUserPunch.h
+++ b/ChemistryLib/PhreeqcIOData/CreateUserPunch.h
@@ -10,8 +10,8 @@
 
 #pragma once
 
-#include <boost/optional/optional_fwd.hpp>
 #include <memory>
+#include <optional>
 
 namespace BaseLib
 {
diff --git a/ChemistryLib/PhreeqcIOData/KineticReactant.h b/ChemistryLib/PhreeqcIOData/KineticReactant.h
index 1859418b92c85e6f544f9ff082e5c6815ae7cbb5..93dd3ef9fac7e15f38ee34e3af9dec9891e16123 100644
--- a/ChemistryLib/PhreeqcIOData/KineticReactant.h
+++ b/ChemistryLib/PhreeqcIOData/KineticReactant.h
@@ -10,8 +10,8 @@
 
 #pragma once
 
-#include <boost/optional/optional.hpp>
 #include <iosfwd>
+#include <optional>
 #include <string>
 #include <vector>
 
diff --git a/ChemistryLib/PhreeqcKernelData/CreateEquilibriumReactants.cpp b/ChemistryLib/PhreeqcKernelData/CreateEquilibriumReactants.cpp
index 4e395334b3fa3a3deefdbc51a93719fd7e3036f2..d384b9a946a50b5e35dee6472069ed1c10b0f140 100644
--- a/ChemistryLib/PhreeqcKernelData/CreateEquilibriumReactants.cpp
+++ b/ChemistryLib/PhreeqcKernelData/CreateEquilibriumReactants.cpp
@@ -8,11 +8,12 @@
  *
  */
 
-#include <boost/optional/optional.hpp>
+#include "CreateEquilibriumReactants.h"
+
+#include <optional>
 #include <vector>
 
 #include "BaseLib/ConfigTree.h"
-#include "CreateEquilibriumReactants.h"
 #include "EquilibriumReactants.h"
 #include "MeshLib/Mesh.h"
 
diff --git a/ChemistryLib/PhreeqcKernelData/CreateEquilibriumReactants.h b/ChemistryLib/PhreeqcKernelData/CreateEquilibriumReactants.h
index ff9b224b709329ae01e1b2582d547887988d9f07..5696be00a33ca43d32f013424cf225573322e325 100644
--- a/ChemistryLib/PhreeqcKernelData/CreateEquilibriumReactants.h
+++ b/ChemistryLib/PhreeqcKernelData/CreateEquilibriumReactants.h
@@ -10,8 +10,8 @@
 
 #pragma once
 
-#include <boost/optional/optional_fwd.hpp>
 #include <memory>
+#include <optional>
 
 #include "EquilibriumReactants.h"
 
diff --git a/ChemistryLib/PhreeqcKernelData/CreateKineticReactant.cpp b/ChemistryLib/PhreeqcKernelData/CreateKineticReactant.cpp
index 9e62e56b73525e6271b43de47c46845b206edea8..51f8676bccc530f816b8670b7a7d174eb738a496 100644
--- a/ChemistryLib/PhreeqcKernelData/CreateKineticReactant.cpp
+++ b/ChemistryLib/PhreeqcKernelData/CreateKineticReactant.cpp
@@ -8,11 +8,12 @@
  *
  */
 
-#include <boost/optional/optional.hpp>
+#include "CreateKineticReactant.h"
+
+#include <optional>
 #include <vector>
 
 #include "BaseLib/ConfigTree.h"
-#include "CreateKineticReactant.h"
 #include "KineticReactant.h"
 #include "MeshLib/Mesh.h"
 
diff --git a/ChemistryLib/PhreeqcKernelData/CreateKineticReactant.h b/ChemistryLib/PhreeqcKernelData/CreateKineticReactant.h
index 12da8a28813594f28e505625f34f1bea8aa5b96e..9d7592768f6077bb6a0509cf5f2094315e8b6fb7 100644
--- a/ChemistryLib/PhreeqcKernelData/CreateKineticReactant.h
+++ b/ChemistryLib/PhreeqcKernelData/CreateKineticReactant.h
@@ -10,8 +10,8 @@
 
 #pragma once
 
-#include <boost/optional/optional_fwd.hpp>
 #include <memory>
+#include <optional>
 
 #include "KineticReactant.h"
 
diff --git a/GeoLib/SurfaceGrid.h b/GeoLib/SurfaceGrid.h
index b6de0983ab4175b92baa011a1f771a905c1e0586..c72914a528ee57cd14539538c2e6c0af6480fcd9 100644
--- a/GeoLib/SurfaceGrid.h
+++ b/GeoLib/SurfaceGrid.h
@@ -14,10 +14,9 @@
 
 #include <array>
 #include <limits>
+#include <optional>
 #include <vector>
 
-#include <boost/optional.hpp>
-
 #include "AABB.h"
 #include "Point.h"
 
diff --git a/MaterialLib/MPL/CreateComponent.h b/MaterialLib/MPL/CreateComponent.h
index ad47396c493b92c1dab769acc170342fe21b84c9..a74727b66df44f9dba3f8da7fa39a25675d50e41 100644
--- a/MaterialLib/MPL/CreateComponent.h
+++ b/MaterialLib/MPL/CreateComponent.h
@@ -12,9 +12,9 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
 #include <map>
 #include <memory>
+#include <optional>
 
 #include "Component.h"
 
diff --git a/MaterialLib/MPL/CreatePhase.h b/MaterialLib/MPL/CreatePhase.h
index 5b50e129c895bc91101a0fea1b6fd72cb5ab4e53..c808eedc27d25cd51f7627402a63b125d07b8f99 100644
--- a/MaterialLib/MPL/CreatePhase.h
+++ b/MaterialLib/MPL/CreatePhase.h
@@ -12,9 +12,9 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
 #include <map>
 #include <memory>
+#include <optional>
 #include <vector>
 
 namespace BaseLib
diff --git a/MaterialLib/MPL/CreateProperty.h b/MaterialLib/MPL/CreateProperty.h
index 28b0f79bc8d876526e01dcdbcc2977407309a59e..f06ffe1dcd88a7a503d03a8db7b96d47518753f5 100644
--- a/MaterialLib/MPL/CreateProperty.h
+++ b/MaterialLib/MPL/CreateProperty.h
@@ -11,9 +11,10 @@
  */
 #pragma once
 
-#include <boost/optional/optional.hpp>
 #include <map>
 #include <memory>
+#include <optional>
+
 #include "PropertyType.h"
 
 namespace BaseLib
diff --git a/MaterialLib/SolidModels/CreateConstitutiveRelation.h b/MaterialLib/SolidModels/CreateConstitutiveRelation.h
index 926906b5d2e9d6aad6db9dbf50aaa8b88f918a63..a382df8667520fb61c2623d4b614b47a245ee22a 100644
--- a/MaterialLib/SolidModels/CreateConstitutiveRelation.h
+++ b/MaterialLib/SolidModels/CreateConstitutiveRelation.h
@@ -11,9 +11,9 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
 #include <map>
 #include <memory>
+#include <optional>
 #include <vector>
 
 namespace BaseLib
diff --git a/MeshLib/Elements/Element.h b/MeshLib/Elements/Element.h
index 17d3ce7bbdd9e956a961308e9bab0476bb7cb52e..2a29f390996514fc55e69ea0228e89e798830f58 100644
--- a/MeshLib/Elements/Element.h
+++ b/MeshLib/Elements/Element.h
@@ -15,14 +15,12 @@
 #pragma once
 
 #include <limits>
-#include <boost/optional.hpp>
+#include <optional>
 
 #include "MathLib/Point3d.h"
-
-#include "MeshLib/MeshEnums.h"
-#include "MeshLib/Mesh.h"
 #include "MeshLib/Elements/ElementErrorCode.h"
-
+#include "MeshLib/Mesh.h"
+#include "MeshLib/MeshEnums.h"
 
 namespace MeshLib {
 
diff --git a/MeshLib/IO/MPI_IO/PropertyVectorMetaData.h b/MeshLib/IO/MPI_IO/PropertyVectorMetaData.h
index 4518ecaeadc7a67c2b14015c8865354c00d6488a..4e2f9d2a0b3e984127d0bc2c0e7329a75ce3df37 100644
--- a/MeshLib/IO/MPI_IO/PropertyVectorMetaData.h
+++ b/MeshLib/IO/MPI_IO/PropertyVectorMetaData.h
@@ -10,8 +10,8 @@
 
 #pragma once
 
+#include <optional>
 #include <string>
-#include <boost/optional.hpp>
 
 namespace MeshLib
 {
diff --git a/NumLib/NewtonRaphson.h b/NumLib/NewtonRaphson.h
index 82a21983b1f74bcfbe1632d69a8aa872785515b8..f3c86a44b2cb3d8e03189d340803720f15fe8d04 100644
--- a/NumLib/NewtonRaphson.h
+++ b/NumLib/NewtonRaphson.h
@@ -10,10 +10,10 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
-#include "BaseLib/Logging.h"
-
 #include <Eigen/Dense>
+#include <optional>
+
+#include "BaseLib/Logging.h"
 
 namespace NumLib
 {
diff --git a/NumLib/ODESolver/ConvergenceCriterionDeltaX.h b/NumLib/ODESolver/ConvergenceCriterionDeltaX.h
index 63169f1c2f854c5fb4df650944935046eb0cf808..89d80301404332cde2bdf3cd52825805b012a023 100644
--- a/NumLib/ODESolver/ConvergenceCriterionDeltaX.h
+++ b/NumLib/ODESolver/ConvergenceCriterionDeltaX.h
@@ -10,7 +10,8 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
+#include <optional>
+
 #include "ConvergenceCriterion.h"
 #include "MathLib/LinAlg/LinAlgEnums.h"
 
diff --git a/NumLib/ODESolver/ConvergenceCriterionResidual.h b/NumLib/ODESolver/ConvergenceCriterionResidual.h
index 0572681c9706d9d247819715c7b3e6d52e2357e1..dd402f1afd56d984a3dae9d95e404ba0dad24fd3 100644
--- a/NumLib/ODESolver/ConvergenceCriterionResidual.h
+++ b/NumLib/ODESolver/ConvergenceCriterionResidual.h
@@ -10,7 +10,8 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
+#include <optional>
+
 #include "ConvergenceCriterion.h"
 #include "MathLib/LinAlg/LinAlgEnums.h"
 
diff --git a/ParameterLib/Parameter.h b/ParameterLib/Parameter.h
index 7262b1231ada7b73f9e7629dec243e0494cda309..337e6087a0ab4514337747b0d9fb52581f4150e0 100644
--- a/ParameterLib/Parameter.h
+++ b/ParameterLib/Parameter.h
@@ -10,19 +10,17 @@
 
 #pragma once
 
+#include <Eigen/Dense>
 #include <map>
 #include <memory>
+#include <optional>
 #include <utility>
 #include <vector>
 
-#include <Eigen/Dense>
-#include <boost/optional.hpp>
-
 #include "BaseLib/Error.h"
+#include "CoordinateSystem.h"
 #include "MeshLib/Elements/Element.h"
 #include "MeshLib/Node.h"
-
-#include "CoordinateSystem.h"
 #include "SpatialPosition.h"
 
 namespace BaseLib
diff --git a/ParameterLib/SpatialPosition.h b/ParameterLib/SpatialPosition.h
index 8bae9ff01995f02e1a208dc0d77947fee4cbc7e6..75e8080c0d62235178f98ae97e8d3fa980f21921 100644
--- a/ParameterLib/SpatialPosition.h
+++ b/ParameterLib/SpatialPosition.h
@@ -10,7 +10,8 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
+#include <optional>
+
 #include "MathLib/TemplatePoint.h"
 
 namespace ParameterLib
diff --git a/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.h b/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.h
index d6b89f4d074787575becf42b08952adb37fcf458..f2187922db14b9afbeac96f3094f2ac13c03961a 100644
--- a/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.h
+++ b/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.h
@@ -10,9 +10,9 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
 #include <map>
 #include <memory>
+#include <optional>
 #include <vector>
 
 namespace BaseLib
diff --git a/ProcessLib/LIE/HydroMechanics/CreateHydroMechanicsProcess.h b/ProcessLib/LIE/HydroMechanics/CreateHydroMechanicsProcess.h
index 9703343e8cf7b47da499cf5ab50a1104272b34c1..d6aaa6e89b760a850ba2090cadb7a45c6b13d8d1 100644
--- a/ProcessLib/LIE/HydroMechanics/CreateHydroMechanicsProcess.h
+++ b/ProcessLib/LIE/HydroMechanics/CreateHydroMechanicsProcess.h
@@ -10,8 +10,8 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
 #include <memory>
+#include <optional>
 #include <vector>
 
 namespace BaseLib
diff --git a/ProcessLib/LIE/SmallDeformation/CreateSmallDeformationProcess.h b/ProcessLib/LIE/SmallDeformation/CreateSmallDeformationProcess.h
index 0b332c29fac17a0962022da96d65c05270f45b34..c694835b6930f612f6a8e4a0cee13415951ac816 100644
--- a/ProcessLib/LIE/SmallDeformation/CreateSmallDeformationProcess.h
+++ b/ProcessLib/LIE/SmallDeformation/CreateSmallDeformationProcess.h
@@ -10,8 +10,8 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
 #include <memory>
+#include <optional>
 #include <vector>
 
 namespace BaseLib
diff --git a/ProcessLib/PhaseField/CreatePhaseFieldProcess.h b/ProcessLib/PhaseField/CreatePhaseFieldProcess.h
index 94148eeae9e70ac4026c57b0c11c95c1ee9d9858..41215d9f0daed5b68ede94f66451597e93a03e79 100644
--- a/ProcessLib/PhaseField/CreatePhaseFieldProcess.h
+++ b/ProcessLib/PhaseField/CreatePhaseFieldProcess.h
@@ -10,8 +10,8 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
 #include <memory>
+#include <optional>
 #include <vector>
 
 namespace BaseLib
diff --git a/ProcessLib/RichardsMechanics/CreateRichardsMechanicsProcess.h b/ProcessLib/RichardsMechanics/CreateRichardsMechanicsProcess.h
index 985cade3a00aa5ef1f48c5f0fbb25ed97967bf8a..98d962d7d7fe8a7e8e8f2099e3c853503486ec3c 100644
--- a/ProcessLib/RichardsMechanics/CreateRichardsMechanicsProcess.h
+++ b/ProcessLib/RichardsMechanics/CreateRichardsMechanicsProcess.h
@@ -10,9 +10,9 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
 #include <map>
 #include <memory>
+#include <optional>
 #include <vector>
 
 namespace BaseLib
diff --git a/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.h b/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.h
index 92669851db3795f265eb793bf57e152d18da5c8d..f7eff7c3a599f1b8b06c2f56d957003aeb921a3b 100644
--- a/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.h
+++ b/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.h
@@ -10,8 +10,8 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
 #include <memory>
+#include <optional>
 #include <vector>
 
 namespace BaseLib
diff --git a/ProcessLib/SmallDeformationNonlocal/CreateSmallDeformationNonlocalProcess.h b/ProcessLib/SmallDeformationNonlocal/CreateSmallDeformationNonlocalProcess.h
index bc6f5f4f7a126c15fc225ab7f3ad489bd004a0c0..41306249c471741e02d031f26b3da03833b79b18 100644
--- a/ProcessLib/SmallDeformationNonlocal/CreateSmallDeformationNonlocalProcess.h
+++ b/ProcessLib/SmallDeformationNonlocal/CreateSmallDeformationNonlocalProcess.h
@@ -10,8 +10,8 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
 #include <memory>
+#include <optional>
 #include <vector>
 
 namespace BaseLib
diff --git a/ProcessLib/ThermoHydroMechanics/CreateThermoHydroMechanicsProcess.h b/ProcessLib/ThermoHydroMechanics/CreateThermoHydroMechanicsProcess.h
index a1491853e8c49ed28c5e89bbd13fa110eb886484..07775220cb3bcf5e3b97d3c470cf7cf03f68b351 100644
--- a/ProcessLib/ThermoHydroMechanics/CreateThermoHydroMechanicsProcess.h
+++ b/ProcessLib/ThermoHydroMechanics/CreateThermoHydroMechanicsProcess.h
@@ -10,9 +10,9 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
 #include <map>
 #include <memory>
+#include <optional>
 #include <vector>
 
 namespace BaseLib
diff --git a/ProcessLib/ThermoMechanicalPhaseField/CreateThermoMechanicalPhaseFieldProcess.h b/ProcessLib/ThermoMechanicalPhaseField/CreateThermoMechanicalPhaseFieldProcess.h
index 961fe10a7acb659125ede5de3f590a11ec70aabb..99b4bf527d83b97cab45ea70d16ae6270c5cedac 100644
--- a/ProcessLib/ThermoMechanicalPhaseField/CreateThermoMechanicalPhaseFieldProcess.h
+++ b/ProcessLib/ThermoMechanicalPhaseField/CreateThermoMechanicalPhaseFieldProcess.h
@@ -10,8 +10,8 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
 #include <memory>
+#include <optional>
 #include <vector>
 
 namespace BaseLib
diff --git a/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.h b/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.h
index e5df480224759f71a075d932de44a7fc8c4fb5c9..bb0d24ed5d1160c803f215c255a6d2bb6f88bd49 100644
--- a/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.h
+++ b/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.h
@@ -10,9 +10,9 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
 #include <map>
 #include <memory>
+#include <optional>
 #include <vector>
 
 namespace BaseLib
diff --git a/ProcessLib/ThermoRichardsMechanics/CreateThermoRichardsMechanicsProcess.h b/ProcessLib/ThermoRichardsMechanics/CreateThermoRichardsMechanicsProcess.h
index 9e96c7650dcfb765567b62289f31498535688705..761938baed3d4705963fe48c72194f43c493caff 100644
--- a/ProcessLib/ThermoRichardsMechanics/CreateThermoRichardsMechanicsProcess.h
+++ b/ProcessLib/ThermoRichardsMechanics/CreateThermoRichardsMechanicsProcess.h
@@ -10,9 +10,9 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
 #include <map>
 #include <memory>
+#include <optional>
 #include <vector>
 
 namespace BaseLib