2278 {
2279
2281
2283
2286 false);
2289 false);
2290
2291
2292 double *f0_phi_ii = &*
f0PhiII.data().begin();
2293 double *diff_f0_phi_ii = &*
diffF0PhiII.data().begin();
2294 auto t_f0_phi_ii = getFTensor1FromPtr<3>(f0_phi_ii);
2295 auto t_diff_f0_phi_ii = getFTensor2FromPtr<3, DIM>(diff_f0_phi_ii);
2297 n0f0_idx, n1f0_idx,
n, t_grad_n,
2298 t_f0_phi_ii, &t_diff_f0_phi_ii);
2299
2300
2301 double *f1_phi_ii = &*
f1PhiII.data().begin();
2302 double *diff_f1_phi_ii = &*
diffF1PhiII.data().begin();
2303 auto t_f1_phi_ii = getFTensor1FromPtr<3>(f1_phi_ii);
2304 auto t_diff_f1_phi_ii = getFTensor2FromPtr<3, DIM>(diff_f1_phi_ii);
2306 n0f1_idx, n1f1_idx,
n, t_grad_n,
2307 t_f1_phi_ii, &t_diff_f1_phi_ii);
2308
2313 t_grad_n0f0_p_n1f0(
i) = t_grad_n0f0(
i) + t_grad_n1f0(
i);
2314
2319 t_grad_n0f1_p_n1f1(
i) = t_grad_n0f1(
i) + t_grad_n1f1(
i);
2320
2321 iFiF0.resize(p + 1,
false);
2324 double *ifif0 = &*
iFiF0.data().begin();
2325 double *diff_ifif0 = &*
diffIFiF0.data().begin();
2326 iFiF1.resize(p + 1,
false);
2329 double *ifif1 = &*
iFiF1.data().begin();
2330 double *diff_ifif1 = &*
diffIFiF1.data().begin();
2331
2332 for (int gg = 0; gg != nb_integration_pts; ++gg) {
2333
2334 const int shift_n = (DIM + 1) * gg;
2335 const double n0f0 =
n[shift_n + n0f0_idx];
2336 const double n1f0 =
n[shift_n + n1f0_idx];
2337 const double n2f0 =
n[shift_n + n2f0_idx];
2338 const double n0f1 =
n[shift_n + n0f1_idx];
2339 const double n1f1 =
n[shift_n + n1f1_idx];
2340 const double n2f1 =
n[shift_n + n2f1_idx];
2341
2344
2345 int kk = 0;
2346 for (int oo = 2; oo <= p; ++oo) {
2347
2348 auto t_f0_phi_ii = getFTensor1FromPtr<3>(&f0_phi_ii[phi_shift]);
2349 auto t_diff_f0_phi_ii =
2350 getFTensor2FromPtr<3, DIM>(&diff_f0_phi_ii[diff_phi_shift]);
2351 auto t_f1_phi_ii = getFTensor1FromPtr<3>(&f1_phi_ii[phi_shift]);
2352 auto t_diff_f1_phi_ii =
2353 getFTensor2FromPtr<3, DIM>(&diff_f1_phi_ii[diff_phi_shift]);
2354
2355 for (int ii = 0; ii <= oo - 2; ii++) {
2356
2357 int jj = oo - 2 - ii;
2358
2359
2361 jj + 1, 2 * ii + 1, n2f0, n0f0 + n1f0, &t_grad_n2f0(0),
2362 &t_grad_n0f0_p_n1f0(0), ifif0, diff_ifif0, 3);
2364 diff_ifif0[0 + jj], diff_ifif0[(jj + 1) + jj],
2365 diff_ifif0[2 * (jj + 1) + jj]);
2366
2367 t_phi(
i) = ifif0[jj] * t_f0_phi_ii(
i);
2368 t_diff_phi(
i,
j) = ifif0[jj] * t_diff_f0_phi_ii(
i,
j) +
2369 t_diff_ifif0(
j) * t_f0_phi_ii(
i);
2370
2371 ++t_phi;
2372 ++t_diff_phi;
2373 ++t_f0_phi_ii;
2374 ++t_diff_f0_phi_ii;
2375 ++kk;
2376
2377
2379 jj + 1, 2 * ii + 1, n2f1, n0f1 + n1f1, &t_grad_n2f1(0),
2380 &t_grad_n0f1_p_n1f1(0), ifif1, diff_ifif1, 3);
2382 diff_ifif1[0 + jj], diff_ifif1[(jj + 1) + jj],
2383 diff_ifif1[2 * (jj + 1) + jj]);
2384 t_phi(
i) = ifif1[jj] * t_f1_phi_ii(
i);
2385 t_diff_phi(
i,
j) = ifif1[jj] * t_diff_f1_phi_ii(
i,
j) +
2386 t_diff_ifif1(
j) * t_f1_phi_ii(
i);
2387 ++t_phi;
2388 ++t_diff_phi;
2389 ++t_f1_phi_ii;
2390 ++t_diff_f1_phi_ii;
2391 ++kk;
2392 }
2393 }
2396 "Wrong number of base functions");
2397 }
2399 }
@ MOFEM_DATA_INCONSISTENCY
#define NBFACETRI_DEMKOWICZ_HCURL(P)