diff --git a/ProcessLib/Output/Output.cpp b/ProcessLib/Output/Output.cpp
index e480279bc24ef3569e7b47061cfb07569492e90a..53f4b3504e4813b8a5a88fa1c9bf798d937d9635 100644
--- a/ProcessLib/Output/Output.cpp
+++ b/ProcessLib/Output/Output.cpp
@@ -13,6 +13,8 @@
 #include <cassert>
 #include <exception>
 #include <fstream>
+#include <range/v3/algorithm/transform.hpp>
+#include <range/v3/range/conversion.hpp>
 #include <vector>
 
 #include "AddProcessDataToMesh.h"
@@ -417,13 +419,12 @@ void Output::doOutputNonlinearIteration(
 
 std::vector<std::string> Output::getFileNamesForOutput() const
 {
-    std::vector<std::string> output_names;
-    for (auto const& output_name : _mesh_names_for_output)
-    {
-        output_names.push_back(
-            _output_format->constructFilename(output_name, 0, 0, 0));
-    }
-    return output_names;
+    auto construct_filename = ranges::views::transform(
+        [&](auto const& output_name)
+        { return _output_format->constructFilename(output_name, 0, 0, 0); });
+
+    return _mesh_names_for_output | construct_filename |
+           ranges::to<std::vector>;
 }
 
 std::vector<double> calculateUniqueFixedTimesForAllOutputs(