LCOV - code coverage report
Current view: top level - include/executioners - SpectralExecutionerBase.h (source / functions) Hit Total Coverage
Test: idaholab/magpie: 5710af Lines: 1 2 50.0 %
Date: 2025-07-21 23:34:39 Functions: 0 1 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /**********************************************************************/
       2             : /*                     DO NOT MODIFY THIS HEADER                      */
       3             : /* MAGPIE - Mesoscale Atomistic Glue Program for Integrated Execution */
       4             : /*                                                                    */
       5             : /*            Copyright 2017 Battelle Energy Alliance, LLC            */
       6             : /*                        ALL RIGHTS RESERVED                         */
       7             : /**********************************************************************/
       8             : 
       9             : #pragma once
      10             : 
      11             : #include "Executioner.h"
      12             : #include "FFTWBufferBase.h"
      13             : #include "FFTProblem.h"
      14             : 
      15             : // System includes
      16             : #include <string>
      17             : 
      18             : // Forward declarations
      19             : class InputParameters;
      20             : 
      21             : /**
      22             :  * FFT Executioner base class.
      23             :  */
      24             : class SpectralExecutionerBase : public Executioner
      25             : {
      26             : public:
      27             :   static InputParameters validParams();
      28             : 
      29             :   SpectralExecutionerBase(const InputParameters & parameters);
      30             : 
      31             :   virtual void init() override;
      32             :   virtual void execute() override;
      33           0 :   virtual bool lastSolveConverged() const override { return true; }
      34             : 
      35             : protected:
      36             :   /// obtain a non-const reference to an FFT buffer
      37             :   template <typename T>
      38             :   FFTBufferBase<T> & getFFTBuffer(const std::string & name);
      39             : 
      40             :   /// multiply a scalar buffer by its corresponding k-vector field int a vector buffer
      41             :   void kVectorMultiply(const FFTBufferBase<Real> & in, FFTBufferBase<RealVectorValue> & out) const;
      42             : 
      43             :   Real _system_time;
      44             :   int & _time_step;
      45             :   Real & _time;
      46             : 
      47             :   PerfID _final_timer;
      48             : 
      49             :   FFTProblem * _fft_problem;
      50             : };
      51             : 
      52             : template <typename T>
      53             : FFTBufferBase<T> &
      54             : SpectralExecutionerBase::getFFTBuffer(const std::string & name)
      55             : {
      56          24 :   return _fft_problem->getFFTBuffer<T>(name);
      57             : }

Generated by: LCOV version 1.14