Skip to content
Snippets Groups Projects
Commit f99e216d authored by Marcel Koch's avatar Marcel Koch
Browse files

[virtual refinement] Renames tags, removes level tag, introduces functions...

[virtual refinement] Renames tags, removes level tag, introduces functions distinguish between intervals and levels
parent aa59bea7
No related branches found
No related tags found
2 merge requests!56WIP: dummy MR to make CI work,!51Feature/arbitrary virtual refinement
......@@ -248,7 +248,6 @@
// The interface (template<...> class StaticRefinement) is not included here
// since it derives from parts which I consider implementation. Look
// into refinement/base.cc if the documentation is above is not enough.
#include "refinement/virtualrefinementtags.hh"
#include "refinement/base.cc"
#include "refinement/hcube.cc"
......
......@@ -81,6 +81,24 @@ namespace Dune
#endif // !DOXYGEN
} // namespace RefinementImp
class RefinementIntervals{
int intervals_=1;
public:
explicit RefinementIntervals(int i) : intervals_(i) {}
int intervals() const { return intervals_; }
};
inline RefinementIntervals refinementIntervals(int i)
{
return RefinementIntervals{i};
}
inline RefinementIntervals refinementLevels(int l)
{
return RefinementIntervals{1<<l};
}
// ///////////////
//
// Static Refinement
......@@ -153,120 +171,68 @@ namespace Dune
//! Get the number of Vertices
DUNE_DEPRECATED_MSG("nVertices(int) is deprecated, use nVertices(Dune::VirtualRefinementTags::{Intervals|Levels})")
static int nVertices(int level);
static int nVertices(Dune::VirtualRefinementTag::Intervals tag);
static int nVertices(int level)
{
return RefinementImp::nVertices(1<<level);
}
static int nVertices(Dune::RefinementIntervals tag)
{
return RefinementImp::nVertices(tag.intervals());
}
//! Get a VertexIterator
DUNE_DEPRECATED_MSG("vBegin(int) is deprecated, use vBegin(Dune::VirtualRefinementTags::{Intervals|Levels})")
static VertexIterator vBegin(int level);
static VertexIterator vBegin(Dune::VirtualRefinementTag::Intervals tag);
static VertexIterator vBegin(int level)
{
return RefinementImp::vBegin(1<<level);
}
static VertexIterator vBegin(Dune::RefinementIntervals tag)
{
return RefinementImp::vBegin(tag.intervals());
}
//! Get a VertexIterator
DUNE_DEPRECATED_MSG("nEnd(int) is deprecated, use vEnd(Dune::VirtualRefinementTags::{Intervals|Levels})")
static VertexIterator vEnd(int level);
static VertexIterator vEnd(Dune::VirtualRefinementTag::Intervals tag);
static VertexIterator vEnd(int level)
{
return RefinementImp::vEnd(1<<level);
}
static VertexIterator vEnd(Dune::RefinementIntervals tag)
{
return RefinementImp::vEnd(tag.intervals());
}
//! Get the number of Elements
DUNE_DEPRECATED_MSG("nElements(int) is deprecated, use nElements(Dune::VirtualRefinementTags::{Intervals|Levels})")
static int nElements(int level);
static int nElements(Dune::VirtualRefinementTag::Intervals tag);
static int nElements(int level)
{
return RefinementImp::nElements(1<<level);
}
static int nElements(Dune::RefinementIntervals tag)
{
return RefinementImp::nElements(tag.intervals());
}
//! Get an ElementIterator
DUNE_DEPRECATED_MSG("eBegin(int) is deprecated, use eBegin(Dune::VirtualRefinementTags::{Intervals|Levels})")
static ElementIterator eBegin(int level);
static ElementIterator eBegin(Dune::VirtualRefinementTag::Intervals tag);
static ElementIterator eBegin(int level)
{
return RefinementImp::eBegin(1<<level);
}
static ElementIterator eBegin(Dune::RefinementIntervals tag)
{
return RefinementImp::eBegin(tag.intervals());
}
//! Get an ElementIterator
DUNE_DEPRECATED_MSG("eEnd(int) is deprecated, use eEnd(Dune::VirtualRefinementTags::{Intervals|Levels})")
static ElementIterator eEnd(int level);
static ElementIterator eEnd(Dune::VirtualRefinementTag::Intervals tag);
static ElementIterator eEnd(int level)
{
return RefinementImp::eEnd(1<<level);
}
static ElementIterator eEnd(Dune::RefinementIntervals tag)
{
return RefinementImp::eEnd(tag.intervals());
}
};
/*! \} */
template<unsigned topologyId, class CoordType,
unsigned coerceToId, int dimension_>
int StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::nVertices(int level)
{
return RefinementImp::nVertices(1<<level);
}
template<unsigned topologyId, class CoordType,
unsigned coerceToId, int dimension_>
int StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::nVertices(Dune::VirtualRefinementTag::Intervals tag)
{
return RefinementImp::nVertices(tag.intervals());
}
template<unsigned topologyId, class CoordType,
unsigned coerceToId, int dimension_>
typename StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::VertexIterator
StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::vBegin(int level)
{
return RefinementImp::vBegin(1<<level);
}
template<unsigned topologyId, class CoordType,
unsigned coerceToId, int dimension_>
typename StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::VertexIterator
StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::vBegin(Dune::VirtualRefinementTag::Intervals tag)
{
return RefinementImp::vBegin(tag.intervals());
}
template<unsigned topologyId, class CoordType,
unsigned coerceToId, int dimension_>
typename StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::VertexIterator
StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::vEnd(int level)
{
return RefinementImp::vEnd(1<<level);
}
template<unsigned topologyId, class CoordType,
unsigned coerceToId, int dimension_>
typename StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::VertexIterator
StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::vEnd(Dune::VirtualRefinementTag::Intervals tag)
{
return RefinementImp::vEnd(tag.intervals());
}
template<unsigned topologyId, class CoordType,
unsigned coerceToId, int dimension_>
int StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::nElements(int level)
{
return RefinementImp::nElements(1<<level);
}
template<unsigned topologyId, class CoordType,
unsigned coerceToId, int dimension_>
int StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::nElements(Dune::VirtualRefinementTag::Intervals tag)
{
return RefinementImp::nElements(tag.intervals());
}
template<unsigned topologyId, class CoordType,
unsigned coerceToId, int dimension_>
typename StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::ElementIterator
StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::eBegin(int level)
{
return RefinementImp::eBegin(1<<level);
}
template<unsigned topologyId, class CoordType,
unsigned coerceToId, int dimension_>
typename StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::ElementIterator
StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::eBegin(Dune::VirtualRefinementTag::Intervals tag)
{
return RefinementImp::eBegin(tag.intervals());
}
template<unsigned topologyId, class CoordType,
unsigned coerceToId, int dimension_>
typename StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::ElementIterator
StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::eEnd(int level)
{
return RefinementImp::eEnd(1<<level);
}
template<unsigned topologyId, class CoordType,
unsigned coerceToId, int dimension_>
typename StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::ElementIterator
StaticRefinement<topologyId, CoordType, coerceToId, dimension_>::eEnd(Dune::VirtualRefinementTag::Intervals tag)
{
return RefinementImp::eEnd(tag.intervals());
}
} // namespace Dune
#endif // DUNE_GEOMETRY_REFINEMENT_BASE_CC
......@@ -45,22 +45,16 @@ void collect(int &result, bool passed)
}
}
template<class TAG>
std::string getRefinementTagType(TAG);
template<> std::string getRefinementTagType<VirtualRefinementTag::Intervals>(VirtualRefinementTag::Intervals)
{ return "Intervals";}
template<> std::string getRefinementTagType<VirtualRefinementTag::Levels>(VirtualRefinementTag::Levels)
{ return "Levels";}
/*!
* \brief Test virtual refinement for an element with a run-time type
*/
template <class ct, int dim, class TAG>
template <class ct, int dim>
void testVirtualRefinement(int &result, const Dune::GeometryType& elementType,
const Dune::GeometryType& coerceTo, TAG tag)
const Dune::GeometryType& coerceTo, Dune::RefinementIntervals tag, std::string refType)
{
std::cout << "Checking virtual refinement " << elementType << " -> "
<< coerceTo << " intervals " << tag.intervals()
<< " " << getRefinementTagType(tag) << " Tag" << std::endl;
<< " " << refType << " tag" << std::endl;
const ReferenceElement<ct, dim> &refElem =
ReferenceElements<ct, dim>::general(elementType);
......@@ -111,14 +105,13 @@ void testVirtualRefinement(int &result, const Dune::GeometryType& elementType,
/*!
* \brief Test virtual refinement for an element with a static type
*/
template <unsigned topologyId, class ct, unsigned coerceToId, int dim, class TAG>
void testStaticRefinementGeometry(int &result, TAG tag)
template <unsigned topologyId, class ct, unsigned coerceToId, int dim>
void testStaticRefinementGeometry(int &result, Dune::RefinementIntervals tag, std::string refType)
{
std::cout << "Checking static refinement geometry "
<< GeometryType(topologyId, dim) << " -> "
<< GeometryType(coerceToId, dim) << " intervals " << tag.intervals()
<< " " << getRefinementTagType(tag) << " Tag"
<< std::endl;
<< " " << refType << " tag" << std::endl;
typedef Dune::StaticRefinement<topologyId, ct, coerceToId, dim> Refinement;
typedef typename Refinement::ElementIterator eIterator;
......@@ -168,12 +161,12 @@ int main(int argc, char** argv) try
gt2.makeLine();
for (unsigned int refinement = 0; refinement < 3; refinement++)
{
testVirtualRefinement<double,1>(result, gt1, gt2, VirtualRefinementTag::Levels(refinement));
testVirtualRefinement<double,1>(result, gt1, gt2, VirtualRefinementTag::Intervals(1<<refinement));
testVirtualRefinement<double,1>(result, gt1, gt2, refinementLevels(refinement), "levels");
testVirtualRefinement<double,1>(result, gt1, gt2, refinementIntervals(1<<refinement), "intervals");
testStaticRefinementGeometry<Line::id,double,Line::id,1>
(result, VirtualRefinementTag::Levels(refinement));
(result, refinementLevels(refinement), "levels");
testStaticRefinementGeometry<Line::id,double,Line::id,1>
(result, VirtualRefinementTag::Intervals(1<<refinement));
(result, refinementIntervals(1<<refinement), "intervals");
}
// test triangle
......@@ -181,12 +174,12 @@ int main(int argc, char** argv) try
gt2.makeTriangle();
for (unsigned int refinement = 0; refinement < 3; refinement++)
{
testVirtualRefinement<double,2>(result, gt1, gt2, VirtualRefinementTag::Levels(refinement));
testVirtualRefinement<double,2>(result, gt1, gt2, VirtualRefinementTag::Intervals(1<<refinement));
testVirtualRefinement<double,2>(result, gt1, gt2, refinementLevels(refinement), "levels");
testVirtualRefinement<double,2>(result, gt1, gt2, refinementIntervals(1<<refinement), "intervals");
testStaticRefinementGeometry<Triangle::id,double,Triangle::id,2>
(result, VirtualRefinementTag::Levels(refinement));
(result, refinementLevels(refinement), "levels");
testStaticRefinementGeometry<Triangle::id,double,Triangle::id,2>
(result, VirtualRefinementTag::Intervals(1<<refinement));
(result, refinementIntervals(1<<refinement), "intervals");
}
// test quadrilateral
......@@ -194,24 +187,24 @@ int main(int argc, char** argv) try
gt2.makeQuadrilateral();
for (unsigned int refinement = 0; refinement < 3; refinement++)
{
testVirtualRefinement<double,2>(result, gt1, gt2, VirtualRefinementTag::Levels(refinement));
testVirtualRefinement<double,2>(result, gt1, gt2, VirtualRefinementTag::Intervals(1<<refinement));
testVirtualRefinement<double,2>(result, gt1, gt2, refinementLevels(refinement), "levels");
testVirtualRefinement<double,2>(result, gt1, gt2, refinementIntervals(1<<refinement), "intervals");
testStaticRefinementGeometry<Square::id,double,Square::id,2>
(result, VirtualRefinementTag::Levels(refinement));
(result, refinementLevels(refinement), "levels");
testStaticRefinementGeometry<Square::id,double,Square::id,2>
(result, VirtualRefinementTag::Intervals(1<<refinement));
(result, refinementIntervals(1<<refinement), "intervals");
}
// test refinement of a quadrilateral by triangles
gt2.makeTriangle();
for (unsigned int refinement = 0; refinement < 3; refinement++)
{
testVirtualRefinement<double,2>(result, gt1, gt2, VirtualRefinementTag::Levels(refinement));
testVirtualRefinement<double,2>(result, gt1, gt2, VirtualRefinementTag::Intervals(1<<refinement));
testVirtualRefinement<double,2>(result, gt1, gt2, refinementLevels(refinement), "levels");
testVirtualRefinement<double,2>(result, gt1, gt2, refinementIntervals(1<<refinement), "intervals");
testStaticRefinementGeometry<Square::id,double,Triangle::id,2>
(result, VirtualRefinementTag::Levels(refinement));
(result, refinementLevels(refinement), "levels");
testStaticRefinementGeometry<Square::id,double,Triangle::id,2>
(result, VirtualRefinementTag::Intervals(1<<refinement));
(result, refinementIntervals(1<<refinement), "intervals");
}
// test tetrahedron
......@@ -219,12 +212,12 @@ int main(int argc, char** argv) try
gt2.makeTetrahedron();
for (unsigned int refinement = 0; refinement < 3; refinement++)
{
testVirtualRefinement<double,3>(result, gt1, gt2, VirtualRefinementTag::Levels(refinement));
testVirtualRefinement<double,3>(result, gt1, gt2, VirtualRefinementTag::Intervals(1<<refinement));
testVirtualRefinement<double,3>(result, gt1, gt2, refinementLevels(refinement), "levels");
testVirtualRefinement<double,3>(result, gt1, gt2, refinementIntervals(1<<refinement), "intervals");
testStaticRefinementGeometry<Tet::id,double,Tet::id,3>
(result, VirtualRefinementTag::Levels(refinement));
(result, refinementLevels(refinement), "levels");
testStaticRefinementGeometry<Tet::id,double,Tet::id,3>
(result, VirtualRefinementTag::Intervals(1<<refinement));
(result, refinementIntervals(1<<refinement), "intervals");
}
// test pyramid
......@@ -232,12 +225,12 @@ int main(int argc, char** argv) try
gt2.makeTetrahedron();
for (unsigned int refinement = 0; refinement < 3; refinement++)
{
testVirtualRefinement<double,3>(result, gt1, gt2, VirtualRefinementTag::Levels(refinement));
testVirtualRefinement<double,3>(result, gt1, gt2, VirtualRefinementTag::Intervals(1<<refinement));
testVirtualRefinement<double,3>(result, gt1, gt2, refinementLevels(refinement), "levels");
testVirtualRefinement<double,3>(result, gt1, gt2, refinementIntervals(1<<refinement), "intervals");
testStaticRefinementGeometry<Pyramid::id,double,Tet::id,3>
(result, VirtualRefinementTag::Levels(refinement));
(result, refinementLevels(refinement), "levels");
testStaticRefinementGeometry<Pyramid::id,double,Tet::id,3>
(result, VirtualRefinementTag::Intervals(1<<refinement));
(result, refinementIntervals(1<<refinement), "intervals");
}
// test prism
......@@ -245,12 +238,12 @@ int main(int argc, char** argv) try
gt2.makeTetrahedron();
for (unsigned int refinement = 0; refinement < 3; refinement++)
{
testVirtualRefinement<double,3>(result, gt1, gt2, VirtualRefinementTag::Levels(refinement));
testVirtualRefinement<double,3>(result, gt1, gt2, VirtualRefinementTag::Intervals(1<<refinement));
testVirtualRefinement<double,3>(result, gt1, gt2, refinementLevels(refinement), "levels");
testVirtualRefinement<double,3>(result, gt1, gt2, refinementIntervals(1<<refinement), "intervals");
testStaticRefinementGeometry<Prism::id,double,Tet::id,3>
(result, VirtualRefinementTag::Levels(refinement));
(result, refinementLevels(refinement), "levels");
testStaticRefinementGeometry<Prism::id,double,Tet::id,3>
(result, VirtualRefinementTag::Intervals(1<<refinement));
(result, refinementIntervals(1<<refinement), "intervals");
}
// test hexahedron
......@@ -258,12 +251,12 @@ int main(int argc, char** argv) try
gt2.makeHexahedron();
for (unsigned int refinement = 0; refinement < 3; refinement++)
{
testVirtualRefinement<double,3>(result, gt1, gt2, VirtualRefinementTag::Levels(refinement));
testVirtualRefinement<double,3>(result, gt1, gt2, VirtualRefinementTag::Intervals(1<<refinement));
testVirtualRefinement<double,3>(result, gt1, gt2, refinementLevels(refinement), "levels");
testVirtualRefinement<double,3>(result, gt1, gt2, refinementIntervals(1<<refinement), "intervals");
testStaticRefinementGeometry<Cube::id,double,Cube::id,3>
(result, VirtualRefinementTag::Levels(refinement));
(result, refinementLevels(refinement), "levels");
testStaticRefinementGeometry<Cube::id,double,Cube::id,3>
(result, VirtualRefinementTag::Intervals(1<<refinement));
(result, refinementIntervals(1<<refinement), "intervals");
}
// test refinement of hexahedron by tetrahedra
......@@ -271,12 +264,12 @@ int main(int argc, char** argv) try
gt2.makeTetrahedron();
for (unsigned int refinement = 0; refinement < 3; refinement++)
{
testVirtualRefinement<double,3>(result, gt1, gt2, VirtualRefinementTag::Levels(refinement));
testVirtualRefinement<double,3>(result, gt1, gt2, VirtualRefinementTag::Intervals(1<<refinement));
testVirtualRefinement<double,3>(result, gt1, gt2, refinementLevels(refinement), "levels");
testVirtualRefinement<double,3>(result, gt1, gt2, refinementIntervals(1<<refinement), "intervals");
testStaticRefinementGeometry<Cube::id,double,Tet::id,3>
(result, VirtualRefinementTag::Levels(refinement));
(result, refinementLevels(refinement), "levels");
testStaticRefinementGeometry<Cube::id,double,Tet::id,3>
(result, VirtualRefinementTag::Intervals(1<<refinement));
(result, refinementIntervals(1<<refinement), "intervals");
}
return result;
......
......@@ -35,12 +35,12 @@ namespace Dune
VirtualRefinement<dimension, CoordType>::
vBegin(int level) const
{
return VertexIterator(vBeginBack(Dune::VirtualRefinementTag::Intervals(1<<level)));
return VertexIterator(vBeginBack(Dune::refinementIntervals(1<<level)));
}
template<int dimension, class CoordType>
typename VirtualRefinement<dimension, CoordType>::VertexIterator
VirtualRefinement<dimension, CoordType>::
vBegin(Dune::VirtualRefinementTag::Intervals tag) const
vBegin(Dune::RefinementIntervals tag) const
{
return VertexIterator(vBeginBack(tag));
}
......@@ -50,12 +50,12 @@ namespace Dune
VirtualRefinement<dimension, CoordType>::
vEnd(int level) const
{
return VertexIterator(vEndBack(Dune::VirtualRefinementTag::Intervals(1<<level)));
return VertexIterator(vEndBack(Dune::refinementIntervals(1<<level)));
}
template<int dimension, class CoordType>
typename VirtualRefinement<dimension, CoordType>::VertexIterator
VirtualRefinement<dimension, CoordType>::
vEnd(Dune::VirtualRefinementTag::Intervals tag) const
vEnd(Dune::RefinementIntervals tag) const
{
return VertexIterator(vEndBack(tag));
}
......@@ -65,12 +65,12 @@ namespace Dune
VirtualRefinement<dimension, CoordType>::
eBegin(int level) const
{
return ElementIterator(eBeginBack(Dune::VirtualRefinementTag::Intervals(1<<level)));
return ElementIterator(eBeginBack(Dune::refinementIntervals(1<<level)));
}
template<int dimension, class CoordType>
typename VirtualRefinement<dimension, CoordType>::ElementIterator
VirtualRefinement<dimension, CoordType>::
eBegin(Dune::VirtualRefinementTag::Intervals tag) const
eBegin(Dune::RefinementIntervals tag) const
{
return ElementIterator(eBeginBack(tag));
}
......@@ -80,12 +80,12 @@ namespace Dune
VirtualRefinement<dimension, CoordType>::
eEnd(int level) const
{
return ElementIterator(eEndBack(Dune::VirtualRefinementTag::Intervals(1<<level)));
return ElementIterator(eEndBack(Dune::refinementIntervals(1<<level)));
}
template<int dimension, class CoordType>
typename VirtualRefinement<dimension, CoordType>::ElementIterator
VirtualRefinement<dimension, CoordType>::
eEnd(Dune::VirtualRefinementTag::Intervals tag) const
eEnd(Dune::RefinementIntervals tag) const
{
return ElementIterator(eEndBack(tag));
}
......@@ -292,22 +292,22 @@ namespace Dune
template<int codimension>
class SubEntityIteratorBack;
DUNE_DEPRECATED_MSG("nVertices(int) is deprecated, use nVertices(Dune::VirtualRefinementTags::{Intervals|Levels})")
DUNE_DEPRECATED_MSG("nVertices(int) is deprecated, use nVertices(Dune::RefinementImp::{Intervals|Levels})")
int nVertices(int level) const;
int nVertices(Dune::VirtualRefinementTag::Intervals tag) const;
int nVertices(Dune::RefinementIntervals tag) const;
DUNE_DEPRECATED_MSG("nElements(int) is deprecated, use nElements(Dune::VirtualRefinementTags::{Intervals|Levels})")
DUNE_DEPRECATED_MSG("nElements(int) is deprecated, use nElements(Dune::RefinementImp::{Intervals|Levels})")
int nElements(int level) const;
int nElements(Dune::VirtualRefinementTag::Intervals tag) const;
int nElements(Dune::RefinementIntervals tag) const;
static VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension> &instance();
private:
VirtualRefinementImp() {}
typename VirtualRefinement::VertexIteratorBack *vBeginBack(Dune::VirtualRefinementTag::Intervals tag) const;
typename VirtualRefinement::VertexIteratorBack *vEndBack(Dune::VirtualRefinementTag::Intervals tag) const;
typename VirtualRefinement::ElementIteratorBack *eBeginBack(Dune::VirtualRefinementTag::Intervals tag) const;
typename VirtualRefinement::ElementIteratorBack *eEndBack(Dune::VirtualRefinementTag::Intervals tag) const;
typename VirtualRefinement::VertexIteratorBack *vBeginBack(Dune::RefinementIntervals tag) const;
typename VirtualRefinement::VertexIteratorBack *vEndBack(Dune::RefinementIntervals tag) const;
typename VirtualRefinement::ElementIteratorBack *eBeginBack(Dune::RefinementIntervals tag) const;
typename VirtualRefinement::ElementIteratorBack *eEndBack(Dune::RefinementIntervals tag) const;
};
template<unsigned topologyId, class CoordType,
......@@ -324,12 +324,12 @@ namespace Dune
int VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::
nVertices(int level) const
{
return StaticRefinement::nVertices(Dune::VirtualRefinementTag::Intervals(1<<level));
return StaticRefinement::nVertices(Dune::refinementIntervals(1<<level));
}
template<unsigned topologyId, class CoordType,
unsigned coerceToId, int dimension>
int VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::
nVertices(Dune::VirtualRefinementTag::Intervals tag) const
nVertices(Dune::RefinementIntervals tag) const
{
return StaticRefinement::nVertices(tag);
}
......@@ -338,7 +338,7 @@ namespace Dune
unsigned coerceToId, int dimension>
typename VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::VirtualRefinement::VertexIteratorBack *
VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::
vBeginBack(Dune::VirtualRefinementTag::Intervals tag) const
vBeginBack(Dune::RefinementIntervals tag) const
{
return new SubEntityIteratorBack<dimension>(StaticRefinement::vBegin(tag));
}
......@@ -347,7 +347,7 @@ namespace Dune
unsigned coerceToId, int dimension>
typename VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::VirtualRefinement::VertexIteratorBack *
VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::
vEndBack(Dune::VirtualRefinementTag::Intervals tag) const
vEndBack(Dune::RefinementIntervals tag) const
{
return new SubEntityIteratorBack<dimension>(StaticRefinement::vEnd(tag));
}
......@@ -356,11 +356,11 @@ namespace Dune
unsigned coerceToId, int dimension>
int VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::nElements(int level) const
{
return StaticRefinement::nElements(Dune::VirtualRefinementTag::Intervals(1<<level));
return StaticRefinement::nElements(Dune::refinementIntervals(1<<level));
}
template<unsigned topologyId, class CoordType,
unsigned coerceToId, int dimension>
int VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::nElements(Dune::VirtualRefinementTag::Intervals tag) const
int VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::nElements(Dune::RefinementIntervals tag) const
{
return StaticRefinement::nElements(tag);
}
......@@ -369,7 +369,7 @@ namespace Dune
unsigned coerceToId, int dimension>
typename VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::VirtualRefinement::ElementIteratorBack *
VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::
eBeginBack(Dune::VirtualRefinementTag::Intervals tag) const
eBeginBack(Dune::RefinementIntervals tag) const
{
return new SubEntityIteratorBack<0>(StaticRefinement::eBegin(tag));
}
......@@ -378,7 +378,7 @@ namespace Dune
unsigned coerceToId, int dimension>
typename VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::VirtualRefinement::ElementIteratorBack *
VirtualRefinementImp<topologyId, CoordType, coerceToId, dimension>::
eEndBack(Dune::VirtualRefinementTag::Intervals tag) const
eEndBack(Dune::RefinementIntervals tag) const
{
return new SubEntityIteratorBack<0>(StaticRefinement::eEnd(tag));
};
......
......@@ -317,40 +317,40 @@ namespace Dune
typedef SubEntityIteratorBack<0> ElementIteratorBack;
//! Get the number of Vertices
DUNE_DEPRECATED_MSG("nVertices(int) is deprecated, use nVertices(Dune::VirtualRefinementTags::{Intervals|Levels})")
DUNE_DEPRECATED_MSG("nVertices(int) is deprecated, use nVertices(Dune::VirtualRefinementTag::{Intervals|Levels})")
virtual int nVertices(int level) const = 0;
virtual int nVertices(Dune::VirtualRefinementTag::Intervals tag) const = 0;
virtual int nVertices(Dune::RefinementIntervals tag) const = 0;
//! Get a VertexIterator
DUNE_DEPRECATED_MSG("vBegin(int) is deprecated, use vBegin(Dune::VirtualRefinementTags::{Intervals|Levels})")
DUNE_DEPRECATED_MSG("vBegin(int) is deprecated, use vBegin(Dune::RefinementImp::{Intervals|Levels})")
VertexIterator vBegin(int level) const;
VertexIterator vBegin(Dune::VirtualRefinementTag::Intervals tag) const;
VertexIterator vBegin(Dune::RefinementIntervals tag) const;
//! Get a VertexIterator
DUNE_DEPRECATED_MSG("vEnd(int) is deprecated, use vEnd(Dune::VirtualRefinementTags::{Intervals|Levels})")
DUNE_DEPRECATED_MSG("vEnd(int) is deprecated, use vEnd(Dune::RefinementImp::{Intervals|Levels})")
VertexIterator vEnd(int level) const;
VertexIterator vEnd(Dune::VirtualRefinementTag::Intervals tag) const;
VertexIterator vEnd(Dune::RefinementIntervals tag) const;
//! Get the number of Elements
DUNE_DEPRECATED_MSG("nElements(int) is deprecated, use nElements(Dune::VirtualRefinementTags::{Intervals|Levels})")
DUNE_DEPRECATED_MSG("nElements(int) is deprecated, use nElements(Dune::RefinementImp::{Intervals|Levels})")
virtual int nElements(int level) const = 0;
virtual int nElements(Dune::VirtualRefinementTag::Intervals tag) const = 0;
virtual int nElements(Dune::RefinementIntervals tag) const = 0;
//! Get an ElementIterator
DUNE_DEPRECATED_MSG("eBegin(int) is deprecated, use eBegin(Dune::VirtualRefinementTags::{Intervals|Levels})")
DUNE_DEPRECATED_MSG("eBegin(int) is deprecated, use eBegin(Dune::RefinementImp::{Intervals|Levels})")
ElementIterator eBegin(int level) const;
ElementIterator eBegin(Dune::VirtualRefinementTag::Intervals tag) const;
ElementIterator eBegin(Dune::RefinementIntervals tag) const;
//! Get an ElementIterator
DUNE_DEPRECATED_MSG("eEnd(int) is deprecated, use eEnd(Dune::VirtualRefinementTags::{Intervals|Levels})")
DUNE_DEPRECATED_MSG("eEnd(int) is deprecated, use eEnd(Dune::RefinementImp::{Intervals|Levels})")
ElementIterator eEnd(int level) const;
ElementIterator eEnd(Dune::VirtualRefinementTag::Intervals tag) const;
ElementIterator eEnd(Dune::RefinementIntervals tag) const;
//! Destructor
virtual ~VirtualRefinement()
{}
protected:
virtual VertexIteratorBack *vBeginBack(Dune::VirtualRefinementTag::Intervals tag) const = 0;
virtual VertexIteratorBack *vEndBack(Dune::VirtualRefinementTag::Intervals tag) const = 0;
virtual ElementIteratorBack *eBeginBack(Dune::VirtualRefinementTag::Intervals tag) const = 0;
virtual ElementIteratorBack *eEndBack(Dune::VirtualRefinementTag::Intervals tag) const = 0;
virtual VertexIteratorBack *vBeginBack(Dune::RefinementIntervals tag) const = 0;
virtual VertexIteratorBack *vEndBack(Dune::RefinementIntervals tag) const = 0;
virtual ElementIteratorBack *eBeginBack(Dune::RefinementIntervals tag) const = 0;
virtual ElementIteratorBack *eEndBack(Dune::RefinementIntervals tag) const = 0;
};
//! codim database of VirtualRefinement
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment