* FE_PyramidP.
*/
template <int dim>
-class ScalarPyramidPolynomial : public ScalarPolynomialsBase<dim>
+class ScalarLagrangePolynomialPyramid : public ScalarPolynomialsBase<dim>
{
public:
/**
*
* @note Currently, only linear polynomials (degree=1) are implemented.
*/
- ScalarPyramidPolynomial(const unsigned int degree);
+ ScalarLagrangePolynomialPyramid(const unsigned int degree);
/**
* @copydoc ScalarPolynomialsBase::evaluate()
template <int dim>
template <int order>
Tensor<order, dim>
-ScalarPyramidPolynomial<dim>::compute_derivative(const unsigned int i,
- const Point<dim> & p) const
+ScalarLagrangePolynomialPyramid<dim>::compute_derivative(
+ const unsigned int i,
+ const Point<dim> & p) const
{
Tensor<order, dim> der;
* re-numerated to better match the definition of FiniteElement.
*/
template <int dim>
-class ScalarWedgePolynomial : public ScalarPolynomialsBase<dim>
+class ScalarLagrangePolynomialWedge : public ScalarPolynomialsBase<dim>
{
public:
/**
* @note Currently, only linear (degree=1) and quadratic polynomials
* (degree=2) are implemented.
*/
- ScalarWedgePolynomial(const unsigned int degree);
+ ScalarLagrangePolynomialWedge(const unsigned int degree);
/**
* @copydoc ScalarPolynomialsBase::evaluate()
template <int dim>
template <int order>
Tensor<order, dim>
-ScalarWedgePolynomial<dim>::compute_derivative(const unsigned int i,
- const Point<dim> & p) const
+ScalarLagrangePolynomialWedge<dim>::compute_derivative(
+ const unsigned int i,
+ const Point<dim> & p) const
{
Tensor<order, dim> der;
* @ingroup simplex
*/
template <int dim>
-class QWitherdenVincent : public QSimplex<dim>
+class QWitherdenVincentSimplex : public QSimplex<dim>
{
public:
/**
* Constructor taking the number of quadrature points in 1D direction
* @p n_points_1D.
*/
- explicit QWitherdenVincent(const unsigned int n_points_1D);
+ explicit QWitherdenVincentSimplex(const unsigned int n_points_1D);
};
/**
}
}
- if (*this == ReferenceCells::Wedge) // see also
- // ScalarWedgePolynomial::compute_value
+ if (*this ==
+ ReferenceCells::Wedge) // see also
+ // ScalarLagrangePolynomialWedge::compute_value
{
return ReferenceCell(ReferenceCells::Triangle)
.d_linear_shape_function<2>(Point<2>(xi[std::min(0, dim - 1)],
if (*this ==
ReferenceCells::Pyramid) // see also
- // ScalarPyramidPolynomial::compute_value
+ // ScalarLagrangePolynomialPyramid::compute_value
{
const double Q14 = 0.25;
double ration;
}
for (unsigned int i = 1; i <= 5; ++i)
- if (quad == QWitherdenVincent<dim>(i))
+ if (quad == QWitherdenVincentSimplex<dim>(i))
{
- QWitherdenVincent<dim - 1> tri(i);
+ QWitherdenVincentSimplex<dim - 1> tri(i);
if (dim == 2)
return {ReferenceCells::Triangle,
template <int dim>
-ScalarPyramidPolynomial<dim>::ScalarPyramidPolynomial(const unsigned int degree)
+ScalarLagrangePolynomialPyramid<dim>::ScalarLagrangePolynomialPyramid(
+ const unsigned int degree)
: ScalarPolynomialsBase<dim>(degree,
compute_n_polynomials_pyramid(dim, degree))
{}
template <int dim>
double
-ScalarPyramidPolynomial<dim>::compute_value(const unsigned int i,
- const Point<dim> & p) const
+ScalarLagrangePolynomialPyramid<dim>::compute_value(const unsigned int i,
+ const Point<dim> & p) const
{
AssertDimension(dim, 3);
AssertIndexRange(this->degree(), 2);
template <int dim>
Tensor<1, dim>
-ScalarPyramidPolynomial<dim>::compute_grad(const unsigned int i,
- const Point<dim> & p) const
+ScalarLagrangePolynomialPyramid<dim>::compute_grad(const unsigned int i,
+ const Point<dim> & p) const
{
AssertDimension(dim, 3);
AssertIndexRange(this->degree(), 4);
template <int dim>
Tensor<2, dim>
-ScalarPyramidPolynomial<dim>::compute_grad_grad(const unsigned int i,
- const Point<dim> & p) const
+ScalarLagrangePolynomialPyramid<dim>::compute_grad_grad(
+ const unsigned int i,
+ const Point<dim> & p) const
{
(void)i;
(void)p;
template <int dim>
void
-ScalarPyramidPolynomial<dim>::evaluate(
+ScalarLagrangePolynomialPyramid<dim>::evaluate(
const Point<dim> & unit_point,
std::vector<double> & values,
std::vector<Tensor<1, dim>> &grads,
template <int dim>
Tensor<1, dim>
-ScalarPyramidPolynomial<dim>::compute_1st_derivative(const unsigned int i,
- const Point<dim> & p) const
+ScalarLagrangePolynomialPyramid<dim>::compute_1st_derivative(
+ const unsigned int i,
+ const Point<dim> & p) const
{
return compute_grad(i, p);
}
template <int dim>
Tensor<2, dim>
-ScalarPyramidPolynomial<dim>::compute_2nd_derivative(const unsigned int i,
- const Point<dim> & p) const
+ScalarLagrangePolynomialPyramid<dim>::compute_2nd_derivative(
+ const unsigned int i,
+ const Point<dim> & p) const
{
(void)i;
(void)p;
template <int dim>
Tensor<3, dim>
-ScalarPyramidPolynomial<dim>::compute_3rd_derivative(const unsigned int i,
- const Point<dim> & p) const
+ScalarLagrangePolynomialPyramid<dim>::compute_3rd_derivative(
+ const unsigned int i,
+ const Point<dim> & p) const
{
(void)i;
(void)p;
template <int dim>
Tensor<4, dim>
-ScalarPyramidPolynomial<dim>::compute_4th_derivative(const unsigned int i,
- const Point<dim> & p) const
+ScalarLagrangePolynomialPyramid<dim>::compute_4th_derivative(
+ const unsigned int i,
+ const Point<dim> & p) const
{
(void)i;
(void)p;
template <int dim>
std::string
-ScalarPyramidPolynomial<dim>::name() const
+ScalarLagrangePolynomialPyramid<dim>::name() const
{
- return "ScalarPyramidPolynomial";
+ return "ScalarLagrangePolynomialPyramid";
}
template <int dim>
std::unique_ptr<ScalarPolynomialsBase<dim>>
-ScalarPyramidPolynomial<dim>::clone() const
+ScalarLagrangePolynomialPyramid<dim>::clone() const
{
- return std::make_unique<ScalarPyramidPolynomial<dim>>(*this);
+ return std::make_unique<ScalarLagrangePolynomialPyramid<dim>>(*this);
}
-template class ScalarPyramidPolynomial<1>;
-template class ScalarPyramidPolynomial<2>;
-template class ScalarPyramidPolynomial<3>;
+template class ScalarLagrangePolynomialPyramid<1>;
+template class ScalarLagrangePolynomialPyramid<2>;
+template class ScalarLagrangePolynomialPyramid<3>;
DEAL_II_NAMESPACE_CLOSE
template <int dim>
-ScalarWedgePolynomial<dim>::ScalarWedgePolynomial(const unsigned int degree)
+ScalarLagrangePolynomialWedge<dim>::ScalarLagrangePolynomialWedge(
+ const unsigned int degree)
: ScalarPolynomialsBase<dim>(degree, compute_n_polynomials_wedge(dim, degree))
, poly_tri(BarycentricPolynomials<2>::get_fe_p_basis(degree))
, poly_line(BarycentricPolynomials<1>::get_fe_p_basis(degree))
template <int dim>
double
-ScalarWedgePolynomial<dim>::compute_value(const unsigned int i,
- const Point<dim> & p) const
+ScalarLagrangePolynomialWedge<dim>::compute_value(const unsigned int i,
+ const Point<dim> & p) const
{
const auto pair = this->degree() == 1 ? wedge_table_1[i] : wedge_table_2[i];
template <int dim>
Tensor<1, dim>
-ScalarWedgePolynomial<dim>::compute_grad(const unsigned int i,
- const Point<dim> & p) const
+ScalarLagrangePolynomialWedge<dim>::compute_grad(const unsigned int i,
+ const Point<dim> & p) const
{
const auto pair = this->degree() == 1 ? wedge_table_1[i] : wedge_table_2[i];
template <int dim>
Tensor<2, dim>
-ScalarWedgePolynomial<dim>::compute_grad_grad(const unsigned int i,
- const Point<dim> & p) const
+ScalarLagrangePolynomialWedge<dim>::compute_grad_grad(const unsigned int i,
+ const Point<dim> &p) const
{
(void)i;
(void)p;
template <int dim>
void
-ScalarWedgePolynomial<dim>::evaluate(
+ScalarLagrangePolynomialWedge<dim>::evaluate(
const Point<dim> & unit_point,
std::vector<double> & values,
std::vector<Tensor<1, dim>> &grads,
template <int dim>
Tensor<1, dim>
-ScalarWedgePolynomial<dim>::compute_1st_derivative(const unsigned int i,
- const Point<dim> & p) const
+ScalarLagrangePolynomialWedge<dim>::compute_1st_derivative(
+ const unsigned int i,
+ const Point<dim> & p) const
{
return compute_grad(i, p);
}
template <int dim>
Tensor<2, dim>
-ScalarWedgePolynomial<dim>::compute_2nd_derivative(const unsigned int i,
- const Point<dim> & p) const
+ScalarLagrangePolynomialWedge<dim>::compute_2nd_derivative(
+ const unsigned int i,
+ const Point<dim> & p) const
{
(void)i;
(void)p;
template <int dim>
Tensor<3, dim>
-ScalarWedgePolynomial<dim>::compute_3rd_derivative(const unsigned int i,
- const Point<dim> & p) const
+ScalarLagrangePolynomialWedge<dim>::compute_3rd_derivative(
+ const unsigned int i,
+ const Point<dim> & p) const
{
(void)i;
(void)p;
template <int dim>
Tensor<4, dim>
-ScalarWedgePolynomial<dim>::compute_4th_derivative(const unsigned int i,
- const Point<dim> & p) const
+ScalarLagrangePolynomialWedge<dim>::compute_4th_derivative(
+ const unsigned int i,
+ const Point<dim> & p) const
{
(void)i;
(void)p;
template <int dim>
std::string
-ScalarWedgePolynomial<dim>::name() const
+ScalarLagrangePolynomialWedge<dim>::name() const
{
- return "ScalarWedgePolynomial";
+ return "ScalarLagrangePolynomialWedge";
}
template <int dim>
std::unique_ptr<ScalarPolynomialsBase<dim>>
-ScalarWedgePolynomial<dim>::clone() const
+ScalarLagrangePolynomialWedge<dim>::clone() const
{
- return std::make_unique<ScalarWedgePolynomial<dim>>(*this);
+ return std::make_unique<ScalarLagrangePolynomialWedge<dim>>(*this);
}
-template class ScalarWedgePolynomial<1>;
-template class ScalarWedgePolynomial<2>;
-template class ScalarWedgePolynomial<3>;
+template class ScalarLagrangePolynomialWedge<1>;
+template class ScalarLagrangePolynomialWedge<2>;
+template class ScalarLagrangePolynomialWedge<3>;
DEAL_II_NAMESPACE_CLOSE
}
else if (n_points_1D == 4)
{
- Quadrature<dim>::operator=(QWitherdenVincent<dim>(n_points_1D));
+ Quadrature<dim>::operator=(
+ QWitherdenVincentSimplex<dim>(n_points_1D));
}
}
else if (dim == 3)
}
else if (n_points_1D == 4)
{
- Quadrature<dim>::operator=(QWitherdenVincent<dim>(n_points_1D));
+ Quadrature<dim>::operator=(
+ QWitherdenVincentSimplex<dim>(n_points_1D));
}
}
template <int dim>
-QWitherdenVincent<dim>::QWitherdenVincent(const unsigned int n_points_1D)
+QWitherdenVincentSimplex<dim>::QWitherdenVincentSimplex(
+ const unsigned int n_points_1D)
: QSimplex<dim>(Quadrature<dim>())
{
Assert(1 <= dim && dim <= 3, ExcNotImplemented());
template class QGaussPyramid<2>;
template class QGaussPyramid<3>;
-template class QWitherdenVincent<1>;
-template class QWitherdenVincent<2>;
-template class QWitherdenVincent<3>;
+template class QWitherdenVincentSimplex<1>;
+template class QWitherdenVincentSimplex<2>;
+template class QWitherdenVincentSimplex<3>;
DEAL_II_NAMESPACE_CLOSE
const internal::GenericDoFsPerObject & dpos,
const typename FiniteElementData<dim>::Conformity conformity)
: dealii::FE_Poly<dim, spacedim>(
- ScalarPyramidPolynomial<dim>(degree),
+ ScalarLagrangePolynomialPyramid<dim>(degree),
FiniteElementData<dim>(dpos,
ReferenceCells::Pyramid,
1,
const internal::GenericDoFsPerObject & dpos,
const typename FiniteElementData<dim>::Conformity conformity)
: dealii::FE_Poly<dim, spacedim>(
- ScalarWedgePolynomial<dim>(degree),
+ ScalarLagrangePolynomialWedge<dim>(degree),
FiniteElementData<dim>(dpos,
ReferenceCells::Wedge,
1,
print(const unsigned int n_points_1D)
{
deallog << "n_points_1D = " << n_points_1D << std::endl;
- const QWitherdenVincent<dim> quad(n_points_1D);
+ const QWitherdenVincentSimplex<dim> quad(n_points_1D);
deallog << "quad size = " << quad.size() << std::endl;
for (unsigned int q = 0; q < quad.size(); ++q)
// component
monomial_powers[dim - 1] += accuracy - sum;
- const Functions::Monomial<dim> func(monomial_powers);
- const QWitherdenVincent<dim> quad(n_points_1D);
+ const Functions::Monomial<dim> func(monomial_powers);
+ const QWitherdenVincentSimplex<dim> quad(n_points_1D);
deallog << "Monomial powers = " << monomial_powers << std::endl;
double integrand = 0.0;