*/
void get_dof_indices (vector<int> &dof_indices) const;
- /**
- * Return the length of the line. If the
- * line describes part of the boundary
- * and is not a straight one, ask the
- * finite element class for the correct
- * length!
- */
- double diameter () const;
-
/**
* Return the #i#th child as a DoF line
* iterator. This function is needed since
*/
void get_dof_indices (vector<int> &dof_indices) const;
- /**
- * Return the diameter of the quad. If the
- * quad describes part of the boundary
- * and is not a plane one, ask the
- * finite element class for the correct
- * length!
- *
- * The diameter of a quad is computed to
- * be the larger of the two diagonals.
- */
- double diameter () const;
-
/**
* Return a pointer to the #i#th line
* bounding this #Quad#.
* boundary or not.
*/
bool at_boundary () const;
+
+ /**
+ * Return the length of the line. If the
+ * line describes part of the boundary
+ * and is not a straight one, ask the
+ * finite element class for the correct
+ * length!
+ */
+ double diameter () const;
private:
/**
* boundary or not.
*/
bool at_boundary () const;
-
+ /**
+ * Return the diameter of the quad. If the
+ * quad describes part of the boundary
+ * and is not a plane one, ask the
+ * finite element class for the correct
+ * length!
+ *
+ * The diameter of a quad is computed to
+ * be the larger of the two diagonals. You
+ * should absolutely be clear about the
+ * fact that this definitely is not the
+ * diameter of all quadrilaterals; however
+ * it may serve as an approximation and
+ * is exact in many cases.
+ */
+ double diameter () const;
+
private:
/**
* Copy operator. This is normally
-template <int dim, class BaseClass>
-double
-DoFLineAccessor<dim,BaseClass>::diameter () const {
- return sqrt((vertex(1)-vertex(0)).square());
-};
-
-
-
template <int dim, class BaseClass>
TriaIterator<dim,DoFLineAccessor<dim,BaseClass> >
DoFLineAccessor<dim,BaseClass>::child (const unsigned int i) const {
-template <int dim, class BaseClass>
-double
-DoFQuadAccessor<dim,BaseClass>::diameter () const {
- return sqrt(max((vertex(2)-vertex(0)).square(),
- (vertex(3)-vertex(1)).square()));
-};
-
-
-
-
template <int dim, class BaseClass>
TriaIterator<dim,DoFLineAccessor<dim,LineAccessor<dim> > >
DoFQuadAccessor<dim,BaseClass>::line (const unsigned int i) const {
+template <int dim>
+double LineAccessor<dim>::diameter () const {
+ return sqrt((vertex(1)-vertex(0)).square());
+};
+
+
+
+
+
template class LineAccessor<1>;
template class LineAccessor<2>;
};
+
+template <int dim>
+double QuadAccessor<dim>::diameter () const {
+ return sqrt(max((vertex(2)-vertex(0)).square(),
+ (vertex(3)-vertex(1)).square()));
+};
+
+
+
+
+
+
template class QuadAccessor<2>;