LCOV - code coverage report
Current view: top level - include/other - ThreadedRadialGreensConvolutionLoop.h (source / functions) Hit Total Coverage
Test: idaholab/magpie: 5710af Lines: 5 5 100.0 %
Date: 2025-07-21 23:34:39 Functions: 2 3 66.7 %
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 "PointListAdaptor.h"
      12             : #include "RadialGreensConvolution.h"
      13             : 
      14             : #include "libmesh/nanoflann.hpp"
      15             : 
      16             : using QPDataRange = StoredRange<std::vector<RadialGreensConvolution::QPData>::const_iterator,
      17             :                                 RadialGreensConvolution::QPData>;
      18             : 
      19             : /**
      20             :  * RadialGreensConvolution threaded loop
      21             :  */
      22             : class ThreadedRadialGreensConvolutionLoop
      23             : {
      24             : public:
      25             :   ThreadedRadialGreensConvolutionLoop(RadialGreensConvolution &);
      26             : 
      27             :   /// Splitting constructor
      28             :   ThreadedRadialGreensConvolutionLoop(const ThreadedRadialGreensConvolutionLoop & x,
      29             :                                       Threads::split split);
      30             : 
      31             :   /// dummy virtual destructor
      32          30 :   virtual ~ThreadedRadialGreensConvolutionLoop() {}
      33             : 
      34             :   /// parens operator with the code that is executed in threads
      35             :   void operator()(const QPDataRange & range);
      36             : 
      37             :   /// thread join method
      38           6 :   virtual void join(const ThreadedRadialGreensConvolutionLoop & x)
      39             :   {
      40           6 :     _convolution_integral += x._convolution_integral;
      41           6 :   }
      42             : 
      43             :   /// return the convolution integral
      44          24 :   Real convolutionIntegral() { return _convolution_integral; }
      45             : 
      46             : protected:
      47             :   /// rasterizer to manage the sample data
      48             :   RadialGreensConvolution & _green;
      49             : 
      50             :   /// name of the Green's Function
      51             :   FunctionName _function_name;
      52             : 
      53             :   /// integral over the convolution contribution
      54             :   Real _convolution_integral;
      55             : 
      56             :   /// ID number of the current thread
      57             :   THREAD_ID _tid;
      58             : 
      59             : private:
      60             : };

Generated by: LCOV version 1.14