1012 {
1014
1015 int nb_integration_pts = getGaussPts().size2();
1016
1018 CHKERR getPtrFE() -> mField.get_moab().tag_get_handle(
tagName.c_str(), tag);
1019 int tag_length;
1020 CHKERR getPtrFE() -> mField.get_moab().tag_get_length(tag, tag_length);
1021 if (tag_length != 9) {
1023 "Number of internal stress components should be 9 but is %d",
1024 tag_length);
1025 }
1026
1028 auto fe_ent = getNumeredEntFiniteElementPtr()->getEnt();
1029 CHKERR getPtrFE() -> mField.get_moab().tag_get_data(
1030 tag, &fe_ent, 1, &*const_stress_vec.data().begin());
1031 auto t_const_stress = getFTensor1FromArray<9, 9>(const_stress_vec);
1032
1033 auto get_internal_stress =
1035 dataAtPts->internalStressAtPts, nb_integration_pts);
1037 auto t_internal_stress = get_internal_stress();
1038
1040 for (int gg = 0; gg != nb_integration_pts; ++gg) {
1041 t_internal_stress(
L) = t_const_stress(
L);
1042 ++t_internal_stress;
1043 }
1044
1046}
#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()
#define CHKERR
Inline error check.
DataLayoutTraits< DataLayout::GaussByCoeffs > DL
decltype(GetFTensor1FromMatImpl< Tensor_Dim, S, DL, M >::get(std::declval< M & >(), 0, 0)) GetFTensor1FromMatType