diff --git a/ProcessLib/Output/Output.cpp b/ProcessLib/Output/Output.cpp index 9adc73f7948a4900201363449bb055c49e5cac01..e480279bc24ef3569e7b47061cfb07569492e90a 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 8cb8516d42effa9885a2963a41bf118a7506acd6..339df9d98af572345d04280c7ba5adfb0148bf94 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 c293b926202ce663382811b25c549cd441aba2f5..8a3a40f02aa83e27fa9d46ab5a9ad4823876cc4e 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