LCOV - code coverage report
Current view: top level - include/executioners - FEProblemSolve.h (source / functions) Hit Total Coverage
Test: idaholab/moose framework: 2bf808 Lines: 0 2 0.0 %
Date: 2025-07-17 01:28:37 Functions: 0 1 0.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 "MultiSystemSolveObject.h"
      13             : 
      14             : class Convergence;
      15             : 
      16             : class FEProblemSolve : public MultiSystemSolveObject
      17             : {
      18             : public:
      19             :   FEProblemSolve(Executioner & ex);
      20             : 
      21             :   static InputParameters feProblemDefaultConvergenceParams();
      22             :   static InputParameters validParams();
      23             : 
      24             :   static const std::set<std::string> & mooseLineSearches();
      25             : 
      26             :   /**
      27             :    * Picard solve the FEProblem.
      28             :    * @return True if solver is converged.
      29             :    */
      30             :   virtual bool solve() override;
      31             : 
      32           0 :   virtual void setInnerSolve(SolveObject &) override
      33             :   {
      34           0 :     mooseError("Cannot set inner solve for FEProblemSolve");
      35             :   }
      36             : 
      37             :   /**
      38             :    * Return the number of grid sequencing steps
      39             :    */
      40             :   unsigned int numGridSteps() const { return _num_grid_steps; }
      41             : 
      42             : protected:
      43             :   /// Helper routine to get the nonlinear system parameter at the right index.
      44             :   /// If a single value is passed for the parameter, then that value is used
      45             :   /// @tparam T the parameter is of type std::vector<T>
      46             :   /// @param param_name name of the parameter
      47             :   /// @param index index of the nonlinear system
      48             :   /// @return parameter for that nonlinear system
      49             :   template <typename T>
      50             :   T getParamFromNonlinearSystemVectorParam(const std::string & param_name,
      51             :                                            unsigned int index) const;
      52             : 
      53             :   /// Moose provided line searches
      54             :   static std::set<std::string> const _moose_line_searches;
      55             : 
      56             :   /// The number of steps to perform in a grid sequencing algorithm. This is one
      57             :   /// less than the number of grids requested by the user in their input,
      58             :   /// e.g. if they requested num_grids = 1, then there won't be any steps
      59             :   /// because we only need to perform one solve per time-step. Storing this
      60             :   /// member in this way allows for easy boolean operations, e.g. if (_num_grid_steps)
      61             :   /// as opposed to if (_num_grids)
      62             :   const unsigned int _num_grid_steps;
      63             : 
      64             :   /// Whether we are using fixed point iterations for multi-system
      65             :   const bool _using_multi_sys_fp_iterations;
      66             :   /// Convergence object to assess the convergence of the multi-system fixed point iteration
      67             :   Convergence * _multi_sys_fp_convergence;
      68             : };

Generated by: LCOV version 1.14