2285 double *f0_phi_ii = &*
f0PhiII.data().begin();
2286 double *diff_f0_phi_ii = &*
diffF0PhiII.data().begin();
2287 auto t_f0_phi_ii = getFTensor1FromPtr<3>(f0_phi_ii);
2288 auto t_diff_f0_phi_ii = getFTensor2FromPtr<3, DIM>(diff_f0_phi_ii);
2290 n0f0_idx, n1f0_idx,
n, t_grad_n,
2291 t_f0_phi_ii, &t_diff_f0_phi_ii);
2294 double *f1_phi_ii = &*
f1PhiII.data().begin();
2295 double *diff_f1_phi_ii = &*
diffF1PhiII.data().begin();
2296 auto t_f1_phi_ii = getFTensor1FromPtr<3>(f1_phi_ii);
2297 auto t_diff_f1_phi_ii = getFTensor2FromPtr<3, DIM>(diff_f1_phi_ii);
2299 n0f1_idx, n1f1_idx,
n, t_grad_n,
2300 t_f1_phi_ii, &t_diff_f1_phi_ii);
2306 t_grad_n0f0_p_n1f0(
i) = t_grad_n0f0(
i) + t_grad_n1f0(
i);
2312 t_grad_n0f1_p_n1f1(
i) = t_grad_n0f1(
i) + t_grad_n1f1(
i);
2314 iFiF0.resize(p + 1,
false);
2317 double *ifif0 = &*
iFiF0.data().begin();
2318 double *diff_ifif0 = &*
diffIFiF0.data().begin();
2319 iFiF1.resize(p + 1,
false);
2322 double *ifif1 = &*
iFiF1.data().begin();
2323 double *diff_ifif1 = &*
diffIFiF1.data().begin();
2325 for (
int gg = 0; gg != nb_integration_pts; ++gg) {
2327 const int shift_n = (DIM + 1) * gg;
2328 const double n0f0 =
n[shift_n + n0f0_idx];
2329 const double n1f0 =
n[shift_n + n1f0_idx];
2330 const double n2f0 =
n[shift_n + n2f0_idx];
2331 const double n0f1 =
n[shift_n + n0f1_idx];
2332 const double n1f1 =
n[shift_n + n1f1_idx];
2333 const double n2f1 =
n[shift_n + n2f1_idx];
2339 for (
int oo = 2; oo <= p; ++oo) {
2341 auto t_f0_phi_ii = getFTensor1FromPtr<3>(&f0_phi_ii[phi_shift]);
2342 auto t_diff_f0_phi_ii =
2343 getFTensor2FromPtr<3, DIM>(&diff_f0_phi_ii[diff_phi_shift]);
2344 auto t_f1_phi_ii = getFTensor1FromPtr<3>(&f1_phi_ii[phi_shift]);
2345 auto t_diff_f1_phi_ii =
2346 getFTensor2FromPtr<3, DIM>(&diff_f1_phi_ii[diff_phi_shift]);
2348 for (
int ii = 0; ii <= oo - 2; ii++) {
2350 int jj = oo - 2 - ii;
2354 jj + 1, 2 * ii + 1, n2f0, n0f0 + n1f0, &t_grad_n2f0(0),
2355 &t_grad_n0f0_p_n1f0(0), ifif0, diff_ifif0, 3);
2357 diff_ifif0[0 + jj], diff_ifif0[(jj + 1) + jj],
2358 diff_ifif0[2 * (jj + 1) + jj]);
2360 t_phi(
i) = ifif0[jj] * t_f0_phi_ii(
i);
2361 t_diff_phi(
i,
j) = ifif0[jj] * t_diff_f0_phi_ii(
i,
j) +
2362 t_diff_ifif0(
j) * t_f0_phi_ii(
i);
2372 jj + 1, 2 * ii + 1, n2f1, n0f1 + n1f1, &t_grad_n2f1(0),
2373 &t_grad_n0f1_p_n1f1(0), ifif1, diff_ifif1, 3);
2375 diff_ifif1[0 + jj], diff_ifif1[(jj + 1) + jj],
2376 diff_ifif1[2 * (jj + 1) + jj]);
2377 t_phi(
i) = ifif1[jj] * t_f1_phi_ii(
i);
2378 t_diff_phi(
i,
j) = ifif1[jj] * t_diff_f1_phi_ii(
i,
j) +
2379 t_diff_ifif1(
j) * t_f1_phi_ii(
i);
2389 "Wrong number of base functions");