DOpE
refinementcontainer.h
Go to the documentation of this file.
1 
24 #ifndef _REFINEMENTCONTAINER_H_
25 #define _REFINEMENTCONTAINER_H_
26 
27 #include <deal.II/lac/vector.h>
28 #include "dopetypes.h"
29 #include <limits>
30 
31 namespace DOpE
32 {
43  {
44  public:
53  virtual
55  {
56  }
57 
62  virtual const dealii::Vector<float>&
64  virtual double
65  GetTopFraction() const;
66  virtual double
67  GetBottomFraction() const;
68  virtual unsigned int
69  GetMaxNElements() const;
70  virtual double
71  GetConvergenceOrder() const;
72 
79  GetRefType() const;
80 
84  bool
85  UsesCoarsening() const;
86  protected:
88  private:
89  const dealii::Vector<float> _dummy;
90  const DOpEtypes::RefinementType _ref_type;
91 
92  };
93 
94  /***************************************************************/
95 
101  {
102  public:
103  virtual
105  {
106  }
107 
108  virtual const dealii::Vector<float>&
109  GetLocalErrorIndicators() const;
110 
111  protected:
115  LocalRefinement(const dealii::Vector<float>&,
116  DOpEtypes::RefinementType ref_type);
117  private:
121  LocalRefinement();
122  const dealii::Vector<float>& _indicators;
123  };
124 
125  /***************************************************************/
126 
132  {
133  public:
143  RefineFixedFraction(const dealii::Vector<float>& indicators,
144  double top_fraction = 0.1, double bottom_fraction = 0.0,
145  const unsigned int max_n_elements =
146  std::numeric_limits<unsigned int>::max());
147 
148  virtual
150  {
151  }
152 
153  virtual double
154  GetTopFraction() const;
155  virtual double
156  GetBottomFraction() const;
157  private:
158  const double _top_fraction, _bottom_fraction;
159  const unsigned int _max_n_elements;
160  };
161 
162  /***************************************************************/
163 
169  {
170  public:
183  RefineFixedNumber(const dealii::Vector<float>& indicators,
184  double top_fraction = 0.1, double bottom_fraction = 0.0,
185  const unsigned int max_n_elements =
186  std::numeric_limits<unsigned int>::max());
187 
188  virtual
190  {
191  }
192 
193  virtual double
194  GetTopFraction() const;
195  virtual double
196  GetBottomFraction() const;
197 
198  private:
199  const double _top_fraction, _bottom_fraction;
200  const unsigned int _max_n_elements;
201  };
202 
203  /***************************************************************/
204 
211  {
212  public:
219  RefineOptimized(const dealii::Vector<float>& indicators,
220  double convergence_order = 2.);
221 
222  virtual
224  {
225  }
226 
227  virtual double
228  GetConvergenceOrder() const;
229 
230  private:
231  const double _convergence_order;
232  };
233 
234 }
235 
236 #endif /* _RefinementContainer_H_ */
virtual double GetTopFraction() const
Definition: refinementcontainer.cc:179
virtual unsigned int GetMaxNElements() const
Definition: refinementcontainer.cc:76
virtual double GetTopFraction() const
Definition: refinementcontainer.cc:145
RefineFixedNumber(const dealii::Vector< float > &indicators, double top_fraction=0.1, double bottom_fraction=0.0, const unsigned int max_n_elements=std::numeric_limits< unsigned int >::max())
Definition: refinementcontainer.cc:162
virtual ~LocalRefinement()
Definition: refinementcontainer.h:104
virtual ~RefineFixedNumber()
Definition: refinementcontainer.h:189
Definition: dopetypes.h:50
Definition: refinementcontainer.h:210
virtual ~RefineFixedFraction()
Definition: refinementcontainer.h:149
bool _coarsening
Definition: refinementcontainer.h:87
Definition: refinementcontainer.h:131
DOpEtypes::RefinementType GetRefType() const
Definition: refinementcontainer.cc:95
RefinementType
Definition: dopetypes.h:48
virtual double GetConvergenceOrder() const
Definition: refinementcontainer.cc:207
Definition: refinementcontainer.h:42
virtual const dealii::Vector< float > & GetLocalErrorIndicators() const
Definition: refinementcontainer.cc:119
virtual ~RefinementContainer()
Definition: refinementcontainer.h:54
virtual const dealii::Vector< float > & GetLocalErrorIndicators() const
Definition: refinementcontainer.cc:46
virtual double GetTopFraction() const
Definition: refinementcontainer.cc:56
virtual ~RefineOptimized()
Definition: refinementcontainer.h:223
virtual double GetConvergenceOrder() const
Definition: refinementcontainer.cc:85
Definition: refinementcontainer.h:100
Definition: refinementcontainer.h:168
RefinementContainer(DOpEtypes::RefinementType ref_type=DOpEtypes::RefinementType::global)
Definition: refinementcontainer.cc:33
bool UsesCoarsening() const
Definition: refinementcontainer.cc:103
RefineOptimized(const dealii::Vector< float > &indicators, double convergence_order=2.)
Definition: refinementcontainer.cc:196
virtual double GetBottomFraction() const
Definition: refinementcontainer.cc:153
virtual double GetBottomFraction() const
Definition: refinementcontainer.cc:66
virtual double GetBottomFraction() const
Definition: refinementcontainer.cc:187
RefineFixedFraction(const dealii::Vector< float > &indicators, double top_fraction=0.1, double bottom_fraction=0.0, const unsigned int max_n_elements=std::numeric_limits< unsigned int >::max())
Definition: refinementcontainer.cc:128