Chombo + EB  3.0
EBNormalizeByVolumeFraction.H
Go to the documentation of this file.
1 #ifdef CH_LANG_CC
2 /*
3  * _______ __
4  * / ___/ / ___ __ _ / / ___
5  * / /__/ _ \/ _ \/ V \/ _ \/ _ \
6  * \___/_//_/\___/_/_/_/_.__/\___/
7  * Please refer to Copyright.txt, in Chombo's root directory.
8  */
9 #endif
10 
11 #ifndef _EBNORMALIZEBYVOLUMEFRACTION_H_
12 #define _EBNORMALIZEBYVOLUMEFRACTION_H_
13 
14 #include "EBCellFAB.H"
15 #include "LevelData.H"
16 #include "EBLevelGrid.H"
17 #include "NamespaceHeader.H"
18 
19 
20 /** \class EBNormalizeByVolumeFraction
21  * This class represents an operation that takes a volume-fraction-weighted
22  * quantity kappa*Q (where kappa is the volume fraction) and computes Q
23  * from it by normalizing it w.r.t. the volume fractions of cells within a
24  * monotone path radius. The radius may either be specified explicitly or
25  * computed from a given EBLevelGrid.
26  */
28 {
29  public:
30 
31  /** Construct an EBNormalizeByVolumeFraction object associated with the
32  * associated with the given EBLevelGrid.
33  * \param EBLevelGrid The level grid for which data can be normalized
34  * by the resulting object.
35  */
36  explicit EBNormalizeByVolumeFraction(const EBLevelGrid& a_levelGrid);
37 
38  /** Destructor. */
40 
41  /** Compute the normalized quantity corresponding to the given
42  * volume-fraction-weighted quantity by volume-averaging that quantity
43  * over every monotone path radius for each cell in the level.
44  * \param a_Q A volume-fraction-weighted quantity to be normalized.
45  * \param a_compInterval An interval representing the range of components
46  * to be normalized by this operation.
47  */
49  const Interval& a_compInterval) const;
50 
51  /** Compute the normalized quantity corresponding to the given
52  * volume-fraction-weighted quantity by volume-averaging that quantity
53  * over every monotone path radius for each cell in the level. This
54  * version of the correction normalizes all components of \a a_Q.
55  * \param a_Q A volume-fraction-weighted quantity to be normalized.
56  */
57  void operator()(LevelData<EBCellFAB>& a_Q) const;
58 
59  protected:
60 
61  // Forbidden operations.
65 
66  private:
67 
68  /** The associated level grid. */
70 };
71 
72 #include "NamespaceFooter.H"
73 #endif
Definition: EBLevelGrid.H:30
EBNormalizeByVolumeFraction & operator=(const EBNormalizeByVolumeFraction &)
void operator()(LevelData< EBCellFAB > &a_Q, const Interval &a_compInterval) const
Structure for passing component ranges in code.
Definition: Interval.H:23
Definition: EBNormalizeByVolumeFraction.H:27
const EBLevelGrid & m_levelGrid
Definition: EBNormalizeByVolumeFraction.H:69