76 dim>::evaluate_orthogonal_basis_function_by_degree(
const unsigned int i,
84 const double x = p[0];
85 const double y = p[1];
86 const double z = p[2];
97 const double s = 1 - y;
100 Polynomials::jacobi_polynomial_homogenized_value<double>(i, 0, 0, x, s);
103 Polynomials::jacobi_polynomial_value<double>(j, 2 * i + 1, 0, y,
true);
106 Polynomials::jacobi_polynomial_value<double>(k, 0, 0, z,
true);
108 const double phi = Qi * Pj * Pk;
110 if (std::fabs(phi) < 1e-14)
145 const unsigned int j,
146 const unsigned int k,
154 const double x = p[0];
155 const double y = p[1];
156 const double z = p[2];
169 const double s = 1 - y;
170 const double ds_dy = -1.0;
173 Polynomials::jacobi_polynomial_homogenized_value<double>(i, 0, 0, x, s);
175 Polynomials::jacobi_polynomial_value<double>(j, 2 * i + 1, 0, y,
true);
177 Polynomials::jacobi_polynomial_value<double>(k, 0, 0, z,
true);
180 Polynomials::jacobi_polynomial_homogenized_derivative<double>(
181 1, 0, i, 0, 0, x, s);
184 Polynomials::jacobi_polynomial_homogenized_derivative<double>(
185 0, 1, i, 0, 0, x, s);
188 Polynomials::jacobi_polynomial_derivative<double>(j, 2 * i + 1, 0, y,
true);
190 const double dPk_dz =
191 Polynomials::jacobi_polynomial_derivative<double>(k, 0, 0, z,
true);
193 grad[0] = dQi_dx * Pj * Pk;
194 if constexpr (dim > 1)
195 grad[1] = dQi_ds * ds_dy * Pj * Pk + Qi * dPj_dy * Pk;
196 if constexpr (dim > 2)
197 grad[2] = Qi * Pj * dPk_dz;
199 for (
unsigned int d = 0; d < dim; ++d)
200 if (std::fabs(grad[d]) < 1e-14)