diff --git a/ProcessLib/BoundaryCondition/BoundaryCondition.h b/ProcessLib/BoundaryCondition/BoundaryCondition.h
index c284739c87b94a2c6aef11ce120421d2ac11fa50..960f830ca5cf9aaa02d578e42741e9cd213da001 100644
--- a/ProcessLib/BoundaryCondition/BoundaryCondition.h
+++ b/ProcessLib/BoundaryCondition/BoundaryCondition.h
@@ -34,14 +34,20 @@ class BoundaryCondition
 public:
     //! Applies natural BCs (i.e. non-Dirichlet BCs) to the stiffness matrix
     //! \c K and the vector \c b.
-    virtual void apply(const double t, GlobalVector const& x, GlobalMatrix& K,
-                       GlobalVector& b) = 0;
+    virtual void applyNaturalBC(const double /*t*/, GlobalVector const& /*x*/,
+                                GlobalMatrix& /*K*/, GlobalVector& /*b*/)
+    {
+        // By default it is assumed that the BC is not a natural BC. Therefore
+        // there is nothing to do here.
+    }
 
-    // TODO docu
+    //! Writes the values of Dirichlet BCs to \c bc_values.
     virtual void getDirichletBCValues(
         const double /*t*/,
         NumLib::IndexValueVector<GlobalIndexType>& /*bc_values*/) const
     {
+        // By default it is assumed that the BC is not a Dirichlet BC. Therefore
+        // there is nothing to do here.
     }
 
     virtual ~BoundaryCondition() = default;
diff --git a/ProcessLib/BoundaryCondition/BoundaryConditionCollection.cpp b/ProcessLib/BoundaryCondition/BoundaryConditionCollection.cpp
index 889d6cd1a3bdcdd308beb33a489b6bdf7dff63d7..bd6e4f844a19cad5d5bb6ccb027c5bed20a2ab53 100644
--- a/ProcessLib/BoundaryCondition/BoundaryConditionCollection.cpp
+++ b/ProcessLib/BoundaryCondition/BoundaryConditionCollection.cpp
@@ -11,12 +11,13 @@
 
 namespace ProcessLib
 {
-void BoundaryConditionCollection::apply(const double t, GlobalVector const& x,
-                                        GlobalMatrix& K,
-                                        GlobalVector& b)
+void BoundaryConditionCollection::applyNaturalBC(const double t,
+                                                 GlobalVector const& x,
+                                                 GlobalMatrix& K,
+                                                 GlobalVector& b)
 {
     for (auto const& bc : _boundary_conditions)
-        bc->apply(t, x, K, b);
+        bc->applyNaturalBC(t, x, K, b);
 }
 
 void BoundaryConditionCollection::addBCsForProcessVariables(
diff --git a/ProcessLib/BoundaryCondition/BoundaryConditionCollection.h b/ProcessLib/BoundaryCondition/BoundaryConditionCollection.h
index 140721a5289224be0afc7f346ba4ca48c25f929d..902418c758e28c2174f7d1db81ef2f96c0cc7c43 100644
--- a/ProcessLib/BoundaryCondition/BoundaryConditionCollection.h
+++ b/ProcessLib/BoundaryCondition/BoundaryConditionCollection.h
@@ -24,8 +24,8 @@ public:
     {
     }
 
-    void apply(const double t, GlobalVector const& x, GlobalMatrix& K,
-               GlobalVector& b);
+    void applyNaturalBC(const double t, GlobalVector const& x, GlobalMatrix& K,
+                        GlobalVector& b);
 
     std::vector<NumLib::IndexValueVector<GlobalIndexType>> const*
     getKnownSolutions(double const t) const
diff --git a/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition-impl.h b/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition-impl.h
index 769b72e06ced02109c9d87570c06b3b634d78f63..8c0db0201b83c563b2eca8cd537889a8532d09e0 100644
--- a/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition-impl.h
+++ b/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition-impl.h
@@ -74,10 +74,10 @@ template <typename BoundaryConditionData,
           class LocalAssemblerImplementation>
 void GenericNaturalBoundaryCondition<
     BoundaryConditionData,
-    LocalAssemblerImplementation>::apply(const double t,
-                                         const GlobalVector& x,
-                                         GlobalMatrix& K,
-                                         GlobalVector& b)
+    LocalAssemblerImplementation>::applyNaturalBC(const double t,
+                                                  const GlobalVector& x,
+                                                  GlobalMatrix& K,
+                                                  GlobalVector& b)
 {
     GlobalExecutor::executeMemberOnDereferenced(
         &GenericNaturalBoundaryConditionLocalAssemblerInterface::assemble,
diff --git a/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition.h b/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition.h
index bf930784154a1ff908385e053053cf74820bc930..f40fc809009a51d35509888a8ce32c9948623017 100644
--- a/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition.h
+++ b/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition.h
@@ -41,10 +41,10 @@ public:
 
     /// Calls local assemblers which calculate their contributions to the global
     /// matrix and the right-hand-side.
-    void apply(const double t,
-               GlobalVector const& x,
-               GlobalMatrix& K,
-               GlobalVector& b) override;
+    void applyNaturalBC(const double t,
+                        GlobalVector const& x,
+                        GlobalMatrix& K,
+                        GlobalVector& b) override;
 
 private:
     /// Data used in the assembly of the specific boundary condition.
diff --git a/ProcessLib/BoundaryCondition/UniformDirichletBoundaryCondition.h b/ProcessLib/BoundaryCondition/UniformDirichletBoundaryCondition.h
index 5044da0ba3ba3735abbb27cd9ac3b691ca9733b6..79479f1370542b568dadc813095d873786a81f2b 100644
--- a/ProcessLib/BoundaryCondition/UniformDirichletBoundaryCondition.h
+++ b/ProcessLib/BoundaryCondition/UniformDirichletBoundaryCondition.h
@@ -29,11 +29,6 @@ public:
     {
     }
 
-    void apply(const double, GlobalVector const&, GlobalMatrix&,
-               GlobalVector&) override
-    {
-    }
-
     void getDirichletBCValues(
         const double /*t*/,
         NumLib::IndexValueVector<GlobalIndexType>& bc_values) const
diff --git a/ProcessLib/Process.cpp b/ProcessLib/Process.cpp
index 1b325595532a864394f2159c87852dc44c89eee1..478919f7fc513217bcf4a83291f4e24e74159a19 100644
--- a/ProcessLib/Process.cpp
+++ b/ProcessLib/Process.cpp
@@ -112,7 +112,7 @@ void Process::assemble(const double t, GlobalVector const& x, GlobalMatrix& M,
                        GlobalMatrix& K, GlobalVector& b)
 {
     assembleConcreteProcess(t, x, M, K, b);
-    _boundary_conditions.apply(t, x, K, b);
+    _boundary_conditions.applyNaturalBC(t, x, K, b);
 }
 
 void Process::assembleJacobian(const double t, GlobalVector const& x,