Dune Core Modules (2.6.0)

virtualrefinement.hh
Go to the documentation of this file.
1 // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 // vi: set et ts=4 sw=2 sts=2:
3 #ifndef DUNE_GEOMETRY_VIRTUALREFINEMENT_HH
4 #define DUNE_GEOMETRY_VIRTUALREFINEMENT_HH
5 
266 #include <vector>
267 
268 #include <dune/common/fvector.hh>
269 
270 #include "refinement.hh"
271 #include "type.hh"
272 
273 namespace Dune
274 {
275  // //////////////////////////////////////////
276  //
277  // The virtual base class and its iterators
278  //
279 
280  //
281  // Refinement
282  //
283 
290  template<int dimension, class CoordType>
292  {
293  public:
294  template<int codimension>
295  struct Codim;
300 
312  typedef std::vector<int> IndexVector;
313 
314  template<int codimension>
315  class SubEntityIteratorBack;
316  typedef SubEntityIteratorBack<dimension> VertexIteratorBack;
317  typedef SubEntityIteratorBack<0> ElementIteratorBack;
318 
320  DUNE_DEPRECATED_MSG("nVertices(int) is deprecated, use nVertices(Dune::refinement{Intervals|Levels}(int))")
321  virtual int nVertices(int level) const = 0;
327  virtual int nVertices(Dune::RefinementIntervals tag) const = 0;
329  DUNE_DEPRECATED_MSG("vBegin(int) is deprecated, use vBegin(Dune::refinement{Intervals|Levels}(int))")
330  VertexIterator vBegin(int level) const;
336  VertexIterator vBegin(Dune::RefinementIntervals tag) const;
338  DUNE_DEPRECATED_MSG("vEnd(int) is deprecated, use vEnd(Dune::refinement{Intervals|Levels}(int))")
339  VertexIterator vEnd(int level) const;
345  VertexIterator vEnd(Dune::RefinementIntervals tag) const;
346 
348  DUNE_DEPRECATED_MSG("nElements(int) is deprecated, use nElements(Dune::refinement{Intervals|Levels}(int))")
349  virtual int nElements(int level) const = 0;
355  virtual int nElements(Dune::RefinementIntervals tag) const = 0;
357  DUNE_DEPRECATED_MSG("eBegin(int) is deprecated, use eBegin(Dune::refinement{Intervals|Levels}(int))")
358  ElementIterator eBegin(int level) const;
364  ElementIterator eBegin(Dune::RefinementIntervals tag) const;
366  DUNE_DEPRECATED_MSG("eEnd(int) is deprecated, use eEnd(Dune::refinement{Intervals|Levels}(int))")
367  ElementIterator eEnd(int level) const;
373  ElementIterator eEnd(Dune::RefinementIntervals tag) const;
374 
376  virtual ~VirtualRefinement()
377  {}
378 
379  protected:
380  virtual VertexIteratorBack *vBeginBack(Dune::RefinementIntervals tag) const = 0;
381  virtual VertexIteratorBack *vEndBack(Dune::RefinementIntervals tag) const = 0;
382  virtual ElementIteratorBack *eBeginBack(Dune::RefinementIntervals tag) const = 0;
383  virtual ElementIteratorBack *eEndBack(Dune::RefinementIntervals tag) const = 0;
384  };
385 
387  template<int dimension, class CoordType>
388  template<int codimension>
389  struct VirtualRefinement<dimension, CoordType>::Codim
390  {
391  class SubEntityIterator;
392  };
393 
394  // ////////////////////////
395  //
396  // The refinement builder
397  //
398 
399  template<int dimension, class CoordType>
400  VirtualRefinement<dimension, CoordType> &
401  buildRefinement(GeometryType geometryType, GeometryType coerceTo);
402 
403 } // namespace Dune
404 
405 #include "virtualrefinement.cc"
406 
407 #endif // DUNE_GEOMETRY_VIRTUALREFINEMENT_HH
vector space out of a tensor product of fields.
Definition: fvector.hh:93
Holds the number of refined intervals per axis needed for virtual and static refinement.
Definition: base.cc:92
VirtualRefinement base class.
Definition: virtualrefinement.hh:292
VertexIterator vEnd(int level) const
Get a VertexIterator.
Definition: virtualrefinement.cc:51
ElementIterator eBegin(int level) const
Get an ElementIterator.
Definition: virtualrefinement.cc:66
Codim< 0 >::SubEntityIterator ElementIterator
The ElementIterator of the VirtualRefinement.
Definition: virtualrefinement.hh:299
ElementIterator eEnd(int level) const
Get an ElementIterator.
Definition: virtualrefinement.cc:81
virtual int nVertices(int level) const =0
Get the number of Vertices.
FieldVector< CoordType, dimension > CoordVector
The CoordVector of the VirtualRefinement.
Definition: virtualrefinement.hh:306
VertexIterator vBegin(int level) const
Get a VertexIterator.
Definition: virtualrefinement.cc:36
std::vector< int > IndexVector
The IndexVector of the VirtualRefinement.
Definition: virtualrefinement.hh:312
Codim< dimension >::SubEntityIterator VertexIterator
The VertexIterator of the VirtualRefinement.
Definition: virtualrefinement.hh:295
virtual int nElements(int level) const =0
Get the number of Elements.
provides a wrapper for ALBERTA's refinement patches and the corners for geometryInFather
Implements a vector constructed from a given type representing a field and a compile-time given size.
#define DUNE_DEPRECATED_MSG(text)
Mark some entity as deprecated.
Definition: deprecated.hh:169
Dune namespace.
Definition: alignedallocator.hh:10
codim database of VirtualRefinement
Definition: virtualrefinement.hh:390
A unique label for each type of element that can occur in a grid.
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (May 4, 22:30, 2024)