public:
/**
- * Constructor. This one sets clobbers
+ * Constructor. This one collects
+ * the indices of the degrees of freedom
+ * on the interior boundaries between
+ * the different levels, which are
+ * needed by the function
+ * #set_zero_interior_boundaries#.
+ *
+ * Since this function is implemented
+ * a bit different in 1d (there are no
+ * faces of cells, just vertices),
+ * there are actually two sets of
+ * constructors, namely this one for 1d
+ * and the following one for all other
+ * dimensions.
+ */
+ MGSmoother (const MGDoFHandler<1> &mg_dof);
+
+ /**
+ * Constructor. This one collects
* the indices of the degrees of freedom
* on the interior boundaries between
* the different levels, which are
public:
/**
- * Constructor. This one sets clobbers
+ * Constructor. This one collects
+ * the indices of the degrees of freedom
+ * on the interior boundaries between
+ * the different levels, which are
+ * needed by the function
+ * #set_zero_interior_boundaries#.
+ *
+ * Since this function is implemented
+ * a bit different in 1d (there are no
+ * faces of cells, just vertices),
+ * there are actually two sets of
+ * constructors, namely this one for 1d
+ * and the following one for all other
+ * dimensions.
+ */
+ MGSmoother (const MGDoFHandler<1> &mg_dof);
+
+ /**
+ * Constructor. This one collects
* the indices of the degrees of freedom
* on the interior boundaries between
* the different levels, which are
#include <algorithm>
+#if deal_II_dimension == 1
+MGSmoother::MGSmoother (const MGDoFHandler<1> &/*mg_dof*/)
+{
+ Assert (false, ExcNotImplemented());
+};
+
+#endif
+
+
+#if deal_II_dimension > 1
template <int dim>
MGSmoother::MGSmoother (const MGDoFHandler<dim> &mg_dof)
};
};
+#endif
+
MGSmoother::~MGSmoother ()
// explicit instantiations
+// don't do the following instantiation in 1d, since there is a specialized
+// function there
+#if deal_II_dimension > 1
template MGSmoother::MGSmoother (const MGDoFHandler<deal_II_dimension>&);
+#endif
#include <algorithm>
+#if deal_II_dimension == 1
+MGSmoother::MGSmoother (const MGDoFHandler<1> &/*mg_dof*/)
+{
+ Assert (false, ExcNotImplemented());
+};
+
+#endif
+
+
+#if deal_II_dimension > 1
template <int dim>
MGSmoother::MGSmoother (const MGDoFHandler<dim> &mg_dof)
};
};
+#endif
+
MGSmoother::~MGSmoother ()
// explicit instantiations
+// don't do the following instantiation in 1d, since there is a specialized
+// function there
+#if deal_II_dimension > 1
template MGSmoother::MGSmoother (const MGDoFHandler<deal_II_dimension>&);
+#endif