From 5c8fbde7848c930c12452954bcf6519b8ec5c5f6 Mon Sep 17 00:00:00 2001
From: Thomas Fischer <thomas.fischer@ufz.de>
Date: Thu, 1 Dec 2022 09:43:13 +0100
Subject: [PATCH] [PL] Move calculateUniqueFixedTimesForAllOutputs() to Output
 impl.

---
 ProcessLib/Output/Output.cpp | 14 ++++++++++++++
 ProcessLib/Output/Output.h   |  3 +++
 ProcessLib/TimeLoop.cpp      | 16 ----------------
 3 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/ProcessLib/Output/Output.cpp b/ProcessLib/Output/Output.cpp
index 9adc73f7948..e480279bc24 100644
--- a/ProcessLib/Output/Output.cpp
+++ b/ProcessLib/Output/Output.cpp
@@ -426,6 +426,20 @@ std::vector<std::string> Output::getFileNamesForOutput() const
     return output_names;
 }
 
+std::vector<double> calculateUniqueFixedTimesForAllOutputs(
+    std::vector<Output> const& outputs)
+{
+    std::vector<double> fixed_times;
+    for (auto const& output : outputs)
+    {
+        auto const& output_fixed_times = output.getFixedOutputTimes();
+        fixed_times.insert(fixed_times.end(), output_fixed_times.begin(),
+                           output_fixed_times.end());
+    }
+    BaseLib::makeVectorUnique(fixed_times);
+    return fixed_times;
+}
+
 std::ostream& operator<<(std::ostream& os, Output const& output)
 {
     os << "Output::_output_data_specification:\t"
diff --git a/ProcessLib/Output/Output.h b/ProcessLib/Output/Output.h
index 8cb8516d42e..339df9d98af 100644
--- a/ProcessLib/Output/Output.h
+++ b/ProcessLib/Output/Output.h
@@ -126,4 +126,7 @@ private:
         _do_not_project_from_bulk_mesh_to_submeshes;
 };
 
+std::vector<double> calculateUniqueFixedTimesForAllOutputs(
+    std::vector<Output> const& outputs);
+
 }  // namespace ProcessLib
diff --git a/ProcessLib/TimeLoop.cpp b/ProcessLib/TimeLoop.cpp
index c293b926202..8a3a40f02aa 100644
--- a/ProcessLib/TimeLoop.cpp
+++ b/ProcessLib/TimeLoop.cpp
@@ -473,22 +473,6 @@ std::pair<double, bool> TimeLoop::computeTimeStepping(
     return {dt, last_step_rejected};
 }
 
-std::vector<double> calculateUniqueFixedTimesForAllOutputs(
-    std::vector<Output> const& outputs)
-{
-    std::vector<double> fixed_times;
-    for (auto const& output : outputs)
-    {
-        auto const& output_fixed_times = output.getFixedOutputTimes();
-        fixed_times.insert(fixed_times.end(), output_fixed_times.begin(),
-                           output_fixed_times.end());
-    }
-    std::sort(fixed_times.begin(), fixed_times.end());
-    auto const it = std::unique(fixed_times.begin(), fixed_times.end());
-    fixed_times.erase(it, fixed_times.end());
-    return fixed_times;
-}
-
 std::vector<std::function<double(double, double)>>
 TimeLoop::generateOutputTimeStepConstraints(
     std::vector<double>&& fixed_times) const
-- 
GitLab