371 {
373
376 }
377
381 auto &base_fun = data.getN(base);
382 auto &diff_base_fun = data.getDiffN(base);
384
386 const auto nb_base_fun = base_fun.size2();
387 const auto nb_int_pts = base_fun.size1();
388
389 if (nb_int_pts != det_vec.size())
391 "Number of integration pts in detJacPtr does not mush "
392 "number of integration pts in base function");
393
394 auto get_row = [](
auto &
m,
auto gg) {
395 return ublas::matrix_row<decltype(m)>(
m, gg);
396 };
397
398 for (auto gg = 0; gg != nb_int_pts; ++gg)
399 get_row(base_fun) /= det_vec[gg];
400
401 if (diff_base_fun.size1() == nb_int_pts) {
402 for (auto gg = 0; gg != nb_int_pts; ++gg)
403 get_row(diff_base_fun) /= det_vec[gg];
404 }
405 }
406 }
407 };
408
409 if (this->getFEDim() == 3) {
413 break;
415 if (type >= MBEDGE)
417 break;
419 if (type >= MBTRI)
421 break;
423 if (type >= MBTET)
425 break;
426 default:
428 }
429 } else if (this->getFEDim() == 2) {
433 break;
435 if (type >= MBEDGE)
437 break;
440 if (type >= MBTRI)
442 break;
443 default:
445 }
446 } else if (this->getFEDim() == 1) {
450 break;
453 if (type >= MBEDGE)
455 break;
456 default:
458 }
459 } else {
461 }
462
464 }
FieldApproximationBase
approximation base
@ AINSWORTH_LEGENDRE_BASE
Ainsworth Cole (Legendre) approx. base .
@ USER_BASE
user implemented approximation base
@ L2
field with C-1 continuity
@ HCURL
field with continuous tangents
@ HDIV
field with continuous normal traction
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
@ MOFEM_DATA_INCONSISTENCY
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
FTensor::Index< 'm', SPACE_DIM > m