diff --git a/src/Initializer/InitProcedure/InitIO.cpp b/src/Initializer/InitProcedure/InitIO.cpp index 0cb172969..1599cdf33 100644 --- a/src/Initializer/InitProcedure/InitIO.cpp +++ b/src/Initializer/InitProcedure/InitIO.cpp @@ -116,7 +116,9 @@ static void setupOutput() { if (seissolParams.output.receiverParameters.enabled) { auto& receiverWriter = seissol::SeisSol::main.receiverWriter(); // Initialize receiver output - receiverWriter.init(seissolParams.output.prefix, seissolParams.output.receiverParameters); + receiverWriter.init(seissolParams.output.prefix, + seissolParams.end.endTime, + seissolParams.output.receiverParameters); receiverWriter.addPoints(seissol::SeisSol::main.meshReader(), *ltsLut, *lts, globalData); seissol::SeisSol::main.timeManager().setReceiverClusters(receiverWriter); } diff --git a/src/ResultWriter/ReceiverWriter.cpp b/src/ResultWriter/ReceiverWriter.cpp index a0e86319a..483ff6d4b 100644 --- a/src/ResultWriter/ReceiverWriter.cpp +++ b/src/ResultWriter/ReceiverWriter.cpp @@ -174,13 +174,13 @@ void seissol::writer::ReceiverWriter::syncPoint(double) int const rank = seissol::MPI::mpi.rank(); logInfo(rank) << "Wrote receivers in" << time << "seconds."; } -void seissol::writer::ReceiverWriter::init(const std::string& fileNamePrefix, const seissol::initializer::parameters::ReceiverOutputParameters& parameters) +void seissol::writer::ReceiverWriter::init(const std::string& fileNamePrefix, double endTime, const seissol::initializer::parameters::ReceiverOutputParameters& parameters) { m_fileNamePrefix = fileNamePrefix; m_receiverFileName = parameters.fileName; m_samplingInterval = parameters.samplingInterval; m_computeRotation = parameters.computeRotation; - setSyncInterval(parameters.interval); + setSyncInterval(std::min(endTime, parameters.interval)); Modules::registerHook(*this, SYNCHRONIZATION_POINT); } diff --git a/src/ResultWriter/ReceiverWriter.h b/src/ResultWriter/ReceiverWriter.h index 8d9996e78..a033f35d4 100644 --- a/src/ResultWriter/ReceiverWriter.h +++ b/src/ResultWriter/ReceiverWriter.h @@ -63,7 +63,7 @@ namespace seissol::writer { class ReceiverWriter : public seissol::Module { public: - void init(const std::string& fileNamePrefix, const seissol::initializer::parameters::ReceiverOutputParameters& parameters); + void init(const std::string& fileNamePrefix, double endTime, const seissol::initializer::parameters::ReceiverOutputParameters& parameters); void addPoints( const seissol::geometry::MeshReader& mesh,