SpECTRE Documentation Coverage Report
Current view: top level - ParallelAlgorithms/NonlinearSolver - Observe.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 0.0 % 1 0
Test Date: 2026-10-22 17:29:42
Legend: Lines:     hit not hit

            Line data    Source code
       1            0 : // Distributed under the MIT License.
       2              : // See LICENSE.txt for details.
       3              : 
       4              : #pragma once
       5              : 
       6              : #include <cstddef>
       7              : #include <string>
       8              : #include <tuple>
       9              : #include <utility>
      10              : #include <vector>
      11              : 
      12              : #include "IO/Observer/ObserverComponent.hpp"
      13              : #include "IO/Observer/ReductionActions.hpp"
      14              : #include "Parallel/GlobalCache.hpp"
      15              : #include "Parallel/Invoke.hpp"
      16              : #include "Parallel/Reduction.hpp"
      17              : #include "Utilities/Functional.hpp"
      18              : #include "Utilities/PrettyType.hpp"
      19              : #include "Utilities/System/ParallelInfo.hpp"
      20              : 
      21              : namespace NonlinearSolver::observe_detail {
      22              : 
      23              : /*!
      24              :  * \brief Contributes data from the residual monitor to the reduction observer
      25              :  */
      26              : template <typename OptionsGroup, typename ParallelComponent,
      27              :           typename Metavariables>
      28              : void contribute_to_reduction_observer(
      29              :     const size_t iteration_id, const size_t globalization_iteration_id,
      30              :     const double residual_magnitude, const double step_length,
      31              :     Parallel::GlobalCache<Metavariables>& cache) {
      32              :   auto& reduction_writer = Parallel::get_parallel_component<
      33              :       observers::ObserverWriter<Metavariables>>(cache);
      34              :   Parallel::threaded_action<observers::ThreadedActions::WriteReductionDataRow>(
      35              :       // Node 0 is always the writer, so directly call the component on that
      36              :       // node
      37              :       reduction_writer[0],
      38              :       std::string{"/" + pretty_type::name<OptionsGroup>() + "Residuals"},
      39              :       std::vector<std::string>{"Iteration", "Walltime", "GlobalizationStep",
      40              :                                "Residual", "StepLength"},
      41              :       std::make_tuple(iteration_id, sys::wall_time(),
      42              :                       globalization_iteration_id, residual_magnitude,
      43              :                       step_length));
      44              : }
      45              : 
      46              : }  // namespace NonlinearSolver::observe_detail
        

Generated by: LCOV version 2.0-1