+template <>
+inline void
+TensorProductPolynomials<0, Polynomials::Polynomial<double>>::compute_index(
+ const unsigned int,
+ std::array<unsigned int, 0> &) const
+{
+ constexpr int dim = 0;
+ AssertThrow(dim > 0, ExcNotImplemented());
+}
+
+
+
template <int dim, typename PolynomialType>
void
TensorProductPolynomials<dim, PolynomialType>::output_indices(
+template <>
+void
+TensorProductPolynomials<0, Polynomials::Polynomial<double>>::output_indices(
+ std::ostream &) const
+{
+ constexpr int dim = 0;
+ AssertThrow(dim > 0, ExcNotImplemented());
+}
+
+
+
template <int dim, typename PolynomialType>
void
TensorProductPolynomials<dim, PolynomialType>::set_numbering(
template <>
-double
-TensorProductPolynomials<0, Polynomials::Polynomial<double>>::compute_value(
- const unsigned int,
- const Point<0> &) const
+void
+TensorProductPolynomials<0, Polynomials::Polynomial<double>>::set_numbering(
+ const std::vector<unsigned int> &)
{
- Assert(false, ExcNotImplemented());
- return 0;
+ constexpr int dim = 0;
+ AssertThrow(dim > 0, ExcNotImplemented());
}
+template <>
+double
+TensorProductPolynomials<0, Polynomials::Polynomial<double>>::compute_value(
+ const unsigned int,
+ const Point<0> &) const
+{
+ constexpr int dim = 0;
+ AssertThrow(dim > 0, ExcNotImplemented());
+
+ return {};
+}
+
+
+
template <int dim, typename PolynomialType>
Tensor<1, dim>
TensorProductPolynomials<dim, PolynomialType>::compute_grad(
const unsigned int,
const Point<0> &) const
{
+ constexpr int dim = 0;
+ AssertThrow(dim > 0, ExcNotImplemented());
+
return {};
}
+template <>
+void
+TensorProductPolynomials<0, Polynomials::Polynomial<double>>::evaluate(
+ const Point<0> &,
+ std::vector<double> &,
+ std::vector<Tensor<1, 0>> &,
+ std::vector<Tensor<2, 0>> &,
+ std::vector<Tensor<3, 0>> &,
+ std::vector<Tensor<4, 0>> &) const
+{
+ constexpr int dim = 0;
+ AssertThrow(dim > 0, ExcNotImplemented());
+}
+
+
+
template <int dim, typename PolynomialType>
std::unique_ptr<ScalarPolynomialsBase<dim>>
TensorProductPolynomials<dim, PolynomialType>::clone() const
, polynomials(pols)
{
Assert(pols.size() == dim, ExcDimensionMismatch(pols.size(), dim));
- for (unsigned int d = 0; d < dim; ++d)
- Assert(pols[d].size() > 0,
- ExcMessage("The number of polynomials must be larger than zero "
- "for all coordinate directions."));
+ for (const auto &pols_d : pols)
+ {
+ (void)pols_d;
+ Assert(pols_d.size() > 0,
+ ExcMessage("The number of polynomials must be larger than zero "
+ "for all coordinate directions."));
+ }
}
+template <>
+void
+AnisotropicPolynomials<0>::compute_index(const unsigned int,
+ std::array<unsigned int, 0> &) const
+{
+ constexpr int dim = 0;
+ AssertThrow(dim > 0, ExcNotImplemented());
+}
+
+
+
template <int dim>
double
AnisotropicPolynomials<dim>::compute_value(const unsigned int i,
}
+
+template <>
+double
+AnisotropicPolynomials<0>::compute_value(const unsigned int,
+ const Point<0> &) const
+{
+ constexpr int dim = 0;
+ AssertThrow(dim > 0, ExcNotImplemented());
+
+ return {};
+}
+
+
+
template <int dim>
Tensor<1, dim>
AnisotropicPolynomials<dim>::compute_grad(const unsigned int i,
}
+
+template <>
+Tensor<1, 0>
+AnisotropicPolynomials<0>::compute_grad(const unsigned int,
+ const Point<0> &) const
+{
+ constexpr int dim = 0;
+ AssertThrow(dim > 0, ExcNotImplemented());
+
+ return {};
+}
+
+
+
template <int dim>
Tensor<2, dim>
AnisotropicPolynomials<dim>::compute_grad_grad(const unsigned int i,
+template <>
+Tensor<2, 0>
+AnisotropicPolynomials<0>::compute_grad_grad(const unsigned int,
+ const Point<0> &) const
+{
+ constexpr int dim = 0;
+ AssertThrow(dim > 0, ExcNotImplemented());
+
+ return {};
+}
+
+
+
template <int dim>
void
AnisotropicPolynomials<dim>::evaluate(
}
+
+template <>
+void
+AnisotropicPolynomials<0>::evaluate(const Point<0> &,
+ std::vector<double> &,
+ std::vector<Tensor<1, 0>> &,
+ std::vector<Tensor<2, 0>> &,
+ std::vector<Tensor<3, 0>> &,
+ std::vector<Tensor<4, 0>> &) const
+{
+ constexpr int dim = 0;
+ AssertThrow(dim > 0, ExcNotImplemented());
+}
+
+
+
template <int dim>
unsigned int
AnisotropicPolynomials<dim>::get_n_tensor_pols(
}
+
+template <>
+unsigned int
+AnisotropicPolynomials<0>::get_n_tensor_pols(
+ const std::vector<std::vector<Polynomials::Polynomial<double>>> &)
+{
+ constexpr int dim = 0;
+ AssertThrow(dim > 0, ExcNotImplemented());
+
+ return {};
+}
+
+
+
template <int dim>
std::unique_ptr<ScalarPolynomialsBase<dim>>
AnisotropicPolynomials<dim>::clone() const