LCOV - code coverage report
Current view: top level - include/executioners - MultiSystemSolveObject.h (source / functions) Hit Total Coverage
Test: idaholab/moose framework: #33416 (b10b36) with base 9fbd27 Lines: 1 1 100.0 %
Date: 2026-07-23 16:15:30 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //* This file is part of the MOOSE framework
       2             : //* https://mooseframework.inl.gov
       3             : //*
       4             : //* All rights reserved, see COPYRIGHT for full restrictions
       5             : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
       6             : //*
       7             : //* Licensed under LGPL 2.1, please see LICENSE for details
       8             : //* https://www.gnu.org/licenses/lgpl-2.1.html
       9             : 
      10             : #pragma once
      11             : 
      12             : #include "SolveObject.h"
      13             : 
      14             : class SolverSystem;
      15             : class Convergence;
      16             : 
      17             : /**
      18             :  * A solve object for use when wanting to solve multiple systems
      19             :  */
      20             : class MultiSystemSolveObject : public SolveObject
      21             : {
      22             : public:
      23             :   MultiSystemSolveObject(Executioner & ex);
      24             : 
      25             :   static InputParameters validParams();
      26             : 
      27             :   /**
      28             :    * Returns a reference to the vector of solver systems that this object is
      29             :    * supposed to solve
      30             :    */
      31      474782 :   const std::vector<SolverSystem *> & systemsToSolve() const { return _systems; }
      32             : 
      33             : protected:
      34             :   /// Vector of pointers to the systems
      35             :   std::vector<SolverSystem *> _systems;
      36             : 
      37             :   /// Number of nonlinear systems
      38             :   unsigned int _num_nl_systems;
      39             : 
      40             :   /// Whether we are using fixed point iterations for multi-system
      41             :   const bool _using_multi_sys_fp_iterations;
      42             :   /// Convergence object to assess the convergence of the multi-system fixed point iteration
      43             :   Convergence * _multi_sys_fp_convergence;
      44             :   /// Per-system relaxation factors for multi-system fixed point iterations (expanded to
      45             :   /// match the number/order of systems being solved)
      46             :   std::vector<Real> _multi_sys_fp_relax_factors;
      47             : 
      48             : private:
      49             :   /// Initializes/expands the multi-system fixed point relaxation factors
      50             :   void setupMultiSystemFixedPointRelaxationFactors();
      51             : };

Generated by: LCOV version 1.14