883 {
885
886 if (data.getIndices().size() == 0)
888
890 th.resize(data.getFieldData().size());
891
892 double def_VAL[9] = {0, 0, 0};
893
894 switch (type) {
895 case MBTRI:
896 for (
unsigned int dd = 0;
dd < data.getN().size2() / 3;
dd++) {
897 std::ostringstream ss;
898 ss <<
"HDIV_FACE_" << side <<
"_" <<
dd;
900 ss.str().c_str(), 3, MB_TYPE_DOUBLE, th[dd],
901 MB_TAG_CREAT | MB_TAG_SPARSE, def_VAL);
902 }
903 break;
904 case MBTET:
905 for (
unsigned int dd = 0;
dd < data.getN().size2() / 3;
dd++) {
906 std::ostringstream ss;
907 ss <<
"HDIV_TET_" <<
dd;
909 ss.str().c_str(), 3, MB_TYPE_DOUBLE, th[dd],
910 MB_TAG_CREAT | MB_TAG_SPARSE, def_VAL);
911 }
912 break;
913 default:
915 "data inconsistency");
916 }
917
918 for (unsigned int gg = 0; gg < data.getN().size1(); gg++) {
919 for (
unsigned int dd = 0;
dd < data.getN().size2() / 3;
dd++) {
921 &data.getVectorN<3>(gg)(dd, 0));
922 }
923 }
924
926 }
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#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.
const Tensor2_symmetric_Expr< const ddTensor0< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, j > dd(const Tensor0< T * > &a, const Index< i, Dim > index1, const Index< j, Dim > index2, const Tensor1< int, Dim > &d_ijk, const Tensor1< double, Dim > &d_xyz)