chombo-discharge
CD_EBFineInterp.H
Go to the documentation of this file.
1 /* chombo-discharge
2  * Copyright © 2022 SINTEF Energy Research.
3  * Please refer to Copyright.txt and LICENSE in the chombo-discharge root directory.
4  */
5 
12 #ifndef CD_EBFineInterp_H
13 #define CD_EBFineInterp_H
14 
15 // Chombo includes
16 #include <EBLevelGrid.H>
17 #include <EBPWLFineInterp.H>
18 
19 // Our includes
20 #include <CD_NamespaceHeader.H>
21 
25 class EBFineInterp : public EBPWLFineInterp
26 {
27 public:
31  EBFineInterp();
32 
41  EBFineInterp(const EBLevelGrid& a_eblgFine,
42  const EBLevelGrid& a_eblgCoar,
43  const int& a_refRat,
44  const int& a_nComp,
45  const EBIndexSpace* const a_ebisPtr);
46 
50  EBFineInterp(const EBFineInterp&) = delete;
51 
55  EBFineInterp(const EBFineInterp&&) = delete;
56 
60  virtual ~EBFineInterp();
61 
66  operator=(const EBFineInterp&) = delete;
67 
72  operator=(const EBFineInterp&&) = delete;
73 
82  void
83  define(const EBLevelGrid& a_eblgFine,
84  const EBLevelGrid& a_eblgCoar,
85  const int& a_refRat,
86  const int& a_nComp,
87  const EBIndexSpace* const a_ebisPtr);
88 
95  void
96  regridNoSlopes(LevelData<EBCellFAB>& a_fineData, const LevelData<EBCellFAB>& a_coarData, const Interval& a_variables);
97 
104  void
105  regridMinMod(LevelData<EBCellFAB>& a_fineData, const LevelData<EBCellFAB>& a_coarData, const Interval& a_variables);
106 
113  void
114  regridConservative(LevelData<BaseIVFAB<Real>>& a_fineData,
115  const LevelData<BaseIVFAB<Real>>& a_coarData,
116  const Interval& a_variables);
117 
124  void
125  regridArithmetic(LevelData<BaseIVFAB<Real>>& a_fineData,
126  const LevelData<BaseIVFAB<Real>>& a_coarData,
127  const Interval& a_variables);
128 
129 protected:
133  EBLevelGrid m_eblgFine;
134 
138  EBLevelGrid m_eblgCoar;
139 
143  LevelData<BaseIVFAB<Real>> m_irregCoFi;
144 
149  LayoutData<VoFIterator> m_fineVoFs;
150 
155  LevelData<BaseIVFAB<Real>> m_conservativeWeights;
156 
160  void
161  defineWeights() noexcept;
162 
170  void
171  regridNoSlopes(EBCellFAB& a_fineData,
172  const EBCellFAB& a_coarData,
173  const DataIndex& a_dit,
174  const Interval& a_variables);
175 };
176 
177 #include <CD_NamespaceFooter.H>
178 
179 #endif
Class for interpolating data to fine grids. Can use constant interpolation or include limiters.
Definition: CD_EBFineInterp.H:26
virtual ~EBFineInterp()
Destructor.
Definition: CD_EBFineInterp.cpp:38
void regridNoSlopes(LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarData, const Interval &a_variables)
Do a piecewise constant interpolation to the new grids.
Definition: CD_EBFineInterp.cpp:140
void regridArithmetic(LevelData< BaseIVFAB< Real >> &a_fineData, const LevelData< BaseIVFAB< Real >> &a_coarData, const Interval &a_variables)
Regrid irregular data using arithmetic interpolation.
Definition: CD_EBFineInterp.cpp:276
EBFineInterp(const EBFineInterp &)=delete
Disallowed copy constructor.
LevelData< BaseIVFAB< Real > > m_conservativeWeights
Weights in cut-cells when regridding conservatively.
Definition: CD_EBFineInterp.H:155
void regridConservative(LevelData< BaseIVFAB< Real >> &a_fineData, const LevelData< BaseIVFAB< Real >> &a_coarData, const Interval &a_variables)
Regrid irregular data using conservative interpolation.
Definition: CD_EBFineInterp.cpp:230
LevelData< BaseIVFAB< Real > > m_irregCoFi
Data holder for holding data on the coarsened fine grids.
Definition: CD_EBFineInterp.H:143
EBFineInterp & operator=(const EBFineInterp &&)=delete
Disallowed move operator.
EBFineInterp()
Default constructor. Must subsequently call the define method.
Definition: CD_EBFineInterp.cpp:21
EBFineInterp & operator=(const EBFineInterp &)=delete
Disallowed copy operator.
void regridMinMod(LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarData, const Interval &a_variables)
Use min-mod slopes when interpolating to the new grids.
Definition: CD_EBFineInterp.cpp:220
EBLevelGrid m_eblgFine
Fine grid.
Definition: CD_EBFineInterp.H:133
LayoutData< VoFIterator > m_fineVoFs
Iterator for valid cut-cells.
Definition: CD_EBFineInterp.H:149
EBLevelGrid m_eblgCoar
Coarse grid.
Definition: CD_EBFineInterp.H:138
EBFineInterp(const EBFineInterp &&)=delete
Disallowed move constructor.
void defineWeights() noexcept
Define weights for cut-cell conservative regridding.
Definition: CD_EBFineInterp.cpp:96
void define(const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoar, const int &a_refRat, const int &a_nComp, const EBIndexSpace *const a_ebisPtr)
Define operation. Puts object in usable state.
Definition: CD_EBFineInterp.cpp:41