LCOV - code coverage report
Current view: top level - ext/amrex/3d-coverage-g++-24.08/include - AMReX_MultiMask.H (source / functions) Hit Total Coverage
Test: coverage_merged.info Lines: 0 1 0.0 %
Date: 2024-11-18 05:28:54 Functions: 0 1 0.0 %

          Line data    Source code
       1             : #ifndef AMREX_MULTIMASK_H_
       2             : #define AMREX_MULTIMASK_H_
       3             : #include <AMReX_Config.H>
       4             : 
       5             : #include <AMReX_Mask.H>
       6             : #include <AMReX_FabArray.H>
       7             : #include <AMReX_Geometry.H>
       8             : 
       9             : #ifdef AMREX_USE_OMP
      10             : #include <omp.h>
      11             : #endif
      12             : 
      13             : namespace amrex {
      14             : 
      15             : class MultiMaskIter;
      16             : 
      17             : class MultiMask
      18             : {
      19             : public:
      20             :     MultiMask () { ; }
      21             :     MultiMask (const BoxArray& ba, const DistributionMapping& dm, int ncomp);
      22             :     MultiMask (const BoxArray& regba, const DistributionMapping& dm, const Geometry& geom,
      23             :                Orientation face, int in_rad, int out_rad, int extent_rad, int ncomp, bool initval);
      24             : 
      25           0 :     ~MultiMask () = default;
      26             : 
      27             :     MultiMask (MultiMask&& rhs) noexcept = default;
      28             : 
      29             :     MultiMask (const MultiMask& rhs) = delete;
      30             :     MultiMask& operator= (const MultiMask& rhs) = delete;
      31             :     MultiMask& operator= (MultiMask&& rhs) = delete;
      32             : 
      33             :     void define (const BoxArray& ba, const DistributionMapping& dm, int ncomp);
      34             :     void define (const BoxArray& regba, const DistributionMapping& dm, const Geometry& geom,
      35             :                  Orientation face, int in_rad, int out_rad, int extent_rad, int ncomp, bool initval);
      36             : 
      37             :     Mask& operator[] (const MFIter& mfi) noexcept { return m_fa[mfi]; }
      38             :     const Mask& operator[] (const MFIter& mfi) const  noexcept { return m_fa[mfi]; }
      39             : 
      40             :     Array4<int const> array (const MFIter& mfi) const noexcept { return m_fa.array(mfi); }
      41             :     Array4<int      > array (const MFIter& mfi)       noexcept { return m_fa.array(mfi); }
      42             :     Array4<int const> const_array (const MFIter& mfi) const noexcept {
      43             :         return m_fa.const_array(mfi);
      44             :     }
      45             : 
      46             :     MultiArray4<int const> arrays () const noexcept { return m_fa.const_arrays(); }
      47             :     MultiArray4<int      > arrays ()       noexcept { return m_fa.arrays(); }
      48             :     MultiArray4<int const> const_arrays () const noexcept { return m_fa.const_arrays(); }
      49             : 
      50             :     int nComp () const noexcept { return m_fa.nComp(); }
      51             : 
      52             :     const BoxArray& boxArray () const noexcept { return m_fa.boxArray(); }
      53             : 
      54             :     const DistributionMapping& DistributionMap () const noexcept { return m_fa.DistributionMap(); }
      55             : 
      56             :     static void Copy (MultiMask& dst, const MultiMask& src);
      57             : 
      58             :     friend class MultiMaskIter;
      59             : 
      60             : private:
      61             : 
      62             :     FabArray<Mask> m_fa;
      63             : };
      64             : 
      65             : class MultiMaskIter
      66             :     : public MFIter
      67             : {
      68             : public:
      69             :     explicit MultiMaskIter (const MultiMask& mm)
      70             :         : MFIter(mm.m_fa) { }
      71             : };
      72             : 
      73             : }
      74             : 
      75             : #endif

Generated by: LCOV version 1.14