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:
142  RefineFixedFraction(const dealii::Vector<float>& indicators,
143  double top_fraction = 0.1, double bottom_fraction = 0.0);
144 
145  virtual
147  {
148  }
149 
150  virtual double
151  GetTopFraction() const;
152  virtual double
153  GetBottomFraction() const;
154  private:
155  const double top_fraction_, bottom_fraction_;
156  };
157 
158  /***************************************************************/
159 
165  {
166  public:
178  RefineFixedNumber(const dealii::Vector<float>& indicators,
179  double top_fraction = 0.1, double bottom_fraction = 0.0);
180  virtual
182  {
183  }
184 
185  virtual double
186  GetTopFraction() const;
187  virtual double
188  GetBottomFraction() const;
189 
190  private:
191  const double top_fraction_, bottom_fraction_;
192  };
193 
194  /***************************************************************/
195 
202  {
203  public:
210  RefineOptimized(const dealii::Vector<float>& indicators,
211  double convergence_order = 2.);
212 
213  virtual
215  {
216  }
217 
218  virtual double
219  GetConvergenceOrder() const;
220 
221  private:
222  const double convergence_order_;
223  };
224 
225 }
226 
227 #endif /* RefinementContainer_H_ */
RefineFixedNumber(const dealii::Vector< float > &indicators, double top_fraction=0.1, double bottom_fraction=0.0)
Definition: refinementcontainer.cc:152
virtual double GetTopFraction() const
Definition: refinementcontainer.cc:167
virtual double GetTopFraction() const
Definition: refinementcontainer.cc:135
virtual ~LocalRefinement()
Definition: refinementcontainer.h:104
virtual ~RefineFixedNumber()
Definition: refinementcontainer.h:181
Definition: dopetypes.h:52
Definition: refinementcontainer.h:201
virtual ~RefineFixedFraction()
Definition: refinementcontainer.h:146
Definition: refinementcontainer.h:131
DOpEtypes::RefinementType GetRefType() const
Definition: refinementcontainer.cc:86
RefinementType
Definition: dopetypes.h:50
virtual double GetConvergenceOrder() const
Definition: refinementcontainer.cc:195
Definition: refinementcontainer.h:42
virtual const dealii::Vector< float > & GetLocalErrorIndicators() const
Definition: refinementcontainer.cc:110
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:214
virtual double GetConvergenceOrder() const
Definition: refinementcontainer.cc:76
Definition: refinementcontainer.h:100
Definition: refinementcontainer.h:164
RefinementContainer(DOpEtypes::RefinementType ref_type=DOpEtypes::RefinementType::global)
Definition: refinementcontainer.cc:33
bool UsesCoarsening() const
Definition: refinementcontainer.cc:94
RefineFixedFraction(const dealii::Vector< float > &indicators, double top_fraction=0.1, double bottom_fraction=0.0)
Definition: refinementcontainer.cc:119
bool coarsening_
Definition: refinementcontainer.h:87
RefineOptimized(const dealii::Vector< float > &indicators, double convergence_order=2.)
Definition: refinementcontainer.cc:184
virtual double GetBottomFraction() const
Definition: refinementcontainer.cc:143
virtual double GetBottomFraction() const
Definition: refinementcontainer.cc:66
virtual double GetBottomFraction() const
Definition: refinementcontainer.cc:175