27 , polynomial_space_Q(create_polynomials_Q())
28 , polynomial_space_bubble(create_polynomials_bubble())
33std::vector<std::vector<Polynomials::Polynomial<double>>>
36 std::vector<std::vector<Polynomials::Polynomial<double>>>
pols;
42 for (
unsigned int d = 0; d < dim; ++d)
55std::vector<std::vector<Polynomials::Polynomial<double>>>
58 std::vector<std::vector<Polynomials::Polynomial<double>>>
pols;
59 std::vector<Polynomials::Polynomial<double>>
Q_shapes;
62 for (
unsigned int d = 0; d < dim; ++d)
79 Assert(values.size() ==
this->n() || values.size() == 0,
92 std::vector<Tensor<1, dim>>
Q_grads;
102 constexpr int n_bubbles =
104 constexpr int n_q = 1 << dim;
123 std::vector<Tensor<1, dim>> normals;
128 normals.push_back(normal);
132 std::vector<Tensor<1, dim>>
units;
133 for (
unsigned int i = 0; i < dim; ++i)
160 polynomial_space_bubble.evaluate(unit_point,
166 polynomial_space_Q.evaluate(unit_point,
176 if (values.size() != 0)
210 if (values.size() != 0)
244 if (dim == 2 || dim == 3)
255std::unique_ptr<TensorPolynomialsBase<dim>>
258 return std::make_unique<PolynomialsBernardiRaugel<dim>>(*this);
static std::vector< std::vector< Polynomials::Polynomial< double > > > create_polynomials_bubble()
void evaluate(const Point< dim > &unit_point, std::vector< Tensor< 1, dim > > &values, std::vector< Tensor< 2, dim > > &grads, std::vector< Tensor< 3, dim > > &grad_grads, std::vector< Tensor< 4, dim > > &third_derivatives, std::vector< Tensor< 5, dim > > &fourth_derivatives) const override
PolynomialsBernardiRaugel(const unsigned int k)
static std::vector< std::vector< Polynomials::Polynomial< double > > > create_polynomials_Q()
virtual std::unique_ptr< TensorPolynomialsBase< dim > > clone() const override
static unsigned int n_polynomials(const unsigned int k)
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
static ::ExceptionBase & ExcNotImplemented()
#define Assert(cond, exc)
static ::ExceptionBase & ExcDimensionMismatch(std::size_t arg1, std::size_t arg2)
constexpr T pow(const T base, const int iexp)
static std_cxx20::ranges::iota_view< unsigned int, unsigned int > face_indices()
DEAL_II_HOST constexpr SymmetricTensor< 4, dim, Number > outer_product(const SymmetricTensor< 2, dim, Number > &t1, const SymmetricTensor< 2, dim, Number > &t2)