371 {
373
376 }
377
381 auto &base_fun = data.getN(base);
382 auto &diff_base_fun = data.getDiffN(base);
384
386 const auto nb_int_pts = base_fun.size1();
387
388 if (nb_int_pts != det_vec.size())
390 "Number of integration pts in detJacPtr does not mush "
391 "number of integration pts in base function");
392
393 auto get_row = [](
auto &
m,
auto gg) {
394 return ublas::matrix_row<decltype(m)>(
m, gg);
395 };
396
397 for (auto gg = 0; gg != nb_int_pts; ++gg)
398 get_row(base_fun) /= det_vec[gg];
399
400 if (diff_base_fun.size1() == nb_int_pts) {
401 for (auto gg = 0; gg != nb_int_pts; ++gg)
402 get_row(diff_base_fun) /= det_vec[gg];
403 }
404 }
405 }
406 };
407
408 if (this->getFEDim() == 3) {
412 break;
414 if (type >= MBEDGE)
416 break;
418 if (type >= MBTRI)
420 break;
422 if (type >= MBTET)
424 break;
425 default:
427 }
428 } else if (this->getFEDim() == 2) {
432 break;
434 if (type >= MBEDGE)
436 break;
439 if (type >= MBTRI)
441 break;
442 default:
444 }
445 } else if (this->getFEDim() == 1) {
449 break;
452 if (type >= MBEDGE)
454 break;
455 default:
457 }
458 } else {
460 }
461
463 }
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