Block-Structured AMR Software Framework
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches
AMReX_MultiMask.H
Go to the documentation of this file.
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
13namespace amrex {
14
15class MultiMaskIter;
16
18{
19public:
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 ~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
60private:
61
63};
64
66 : public MFIter
67{
68public:
69 explicit MultiMaskIter (const MultiMask& mm)
70 : MFIter(mm.m_fa) { }
71};
72
73}
74
75#endif
A collection of Boxes stored in an Array.
Definition AMReX_BoxArray.H:550
Calculates the distribution of FABs to MPI processes.
Definition AMReX_DistributionMapping.H:41
An Array of FortranArrayBox(FAB)-like Objects.
Definition AMReX_FabArray.H:344
Rectangular problem domain geometry.
Definition AMReX_Geometry.H:73
Definition AMReX_MFIter.H:57
std::unique_ptr< FabArrayBase > m_fa
This must be the first member!
Definition AMReX_MFIter.H:176
Definition AMReX_Mask.H:28
Definition AMReX_MultiMask.H:67
MultiMaskIter(const MultiMask &mm)
Definition AMReX_MultiMask.H:69
Definition AMReX_MultiMask.H:18
MultiMask(const MultiMask &rhs)=delete
MultiMask()
Definition AMReX_MultiMask.H:20
Array4< int const > const_array(const MFIter &mfi) const noexcept
Definition AMReX_MultiMask.H:42
Array4< int > array(const MFIter &mfi) noexcept
Definition AMReX_MultiMask.H:41
FabArray< Mask > m_fa
Definition AMReX_MultiMask.H:62
int nComp() const noexcept
Definition AMReX_MultiMask.H:50
MultiArray4< int const > const_arrays() const noexcept
Definition AMReX_MultiMask.H:48
~MultiMask()=default
MultiArray4< int > arrays() noexcept
Definition AMReX_MultiMask.H:47
const DistributionMapping & DistributionMap() const noexcept
Definition AMReX_MultiMask.H:54
Array4< int const > array(const MFIter &mfi) const noexcept
Definition AMReX_MultiMask.H:40
static void Copy(MultiMask &dst, const MultiMask &src)
Definition AMReX_MultiMask.cpp:74
MultiMask & operator=(const MultiMask &rhs)=delete
MultiMask(MultiMask &&rhs) noexcept=default
Mask & operator[](const MFIter &mfi) noexcept
Definition AMReX_MultiMask.H:37
MultiArray4< int const > arrays() const noexcept
Definition AMReX_MultiMask.H:46
const BoxArray & boxArray() const noexcept
Definition AMReX_MultiMask.H:52
void define(const BoxArray &ba, const DistributionMapping &dm, int ncomp)
Definition AMReX_MultiMask.cpp:18
Encapsulation of the Orientation of the Faces of a Box.
Definition AMReX_Orientation.H:29
Definition AMReX_Amr.cpp:49
Definition AMReX_Array4.H:61
Definition AMReX_FabArray.H:152