SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Imex - GuessResult.hpp Hit Total Coverage
Commit: 965048f86d23c819715b3af1ca3f880c8145d4bb Lines: 2 10 20.0 %
Date: 2024-05-16 17:00:40
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 <vector>
       7             : 
       8             : #include "Utilities/TMPL.hpp"
       9             : 
      10             : namespace imex {
      11             : /// Type of guess returned from an implicit sector's `initial_guess`
      12             : /// mutator.  If `ExactSolution` is returned, the implicit solve is
      13             : /// skipped.
      14           0 : enum class GuessResult { InitialGuess, ExactSolution };
      15             : 
      16             : /// Mutator for the `initial_guess` of an implicit sector that does
      17             : /// not modify the variables.  The initial guess is therefore the
      18             : /// result of the explicit step.
      19           1 : struct GuessExplicitResult {
      20           0 :   using return_tags = tmpl::list<>;
      21           0 :   using argument_tags = tmpl::list<>;
      22             :   template <typename ImplicitVars>
      23           0 :   static std::vector<GuessResult> apply(
      24             :       const ImplicitVars& /*inhomogeneous_terms*/,
      25             :       const double /*implicit_weight*/) {
      26             :     return {};
      27             :   }
      28             : };
      29             : 
      30             : /// Mutator for the `jacobian` of an implicit sector that has an
      31             : /// analytic solution.  Such a sector never does numerical solves, and
      32             : /// so does not need an available jacobian.
      33             : ///
      34             : /// \note The `source` mutator is always required, even if the
      35             : /// implicit equation can be solved analytically.
      36           1 : struct NoJacobianBecauseSolutionIsAnalytic {
      37           0 :   using return_tags = tmpl::list<>;
      38           0 :   using argument_tags = tmpl::list<>;
      39           0 :   [[noreturn]] static void apply();
      40             : };
      41             : }  // namespace imex

Generated by: LCOV version 1.14