From 0caad101f864b1ee730970a4278159e15f15b3b1 Mon Sep 17 00:00:00 2001 From: David Schneller Date: Mon, 5 Jun 2023 16:50:17 +0200 Subject: [PATCH 1/2] Fix long receiver sync interval. --- src/Initializer/InitProcedure/InitIO.cpp | 2 +- src/ResultWriter/ReceiverWriter.cpp | 4 ++-- src/ResultWriter/ReceiverWriter.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Initializer/InitProcedure/InitIO.cpp b/src/Initializer/InitProcedure/InitIO.cpp index 0cb172969..30ed57d19 100644 --- a/src/Initializer/InitProcedure/InitIO.cpp +++ b/src/Initializer/InitProcedure/InitIO.cpp @@ -116,7 +116,7 @@ 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, From 4cde05f69110aa83b1b348d17ec9d8334d812f4f Mon Sep 17 00:00:00 2001 From: David Schneller Date: Mon, 5 Jun 2023 17:13:52 +0200 Subject: [PATCH 2/2] Update clang format --- src/Initializer/InitProcedure/InitIO.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Initializer/InitProcedure/InitIO.cpp b/src/Initializer/InitProcedure/InitIO.cpp index 30ed57d19..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.end.endTime, 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); }