931 {
933
934 if (type != MBVERTEX)
936
938
939
942
943 auto &m_field = getPtrFE()->mField;
944 auto field_ptr = m_field.get_field_structure(
fieldName);
945 const int rank = field_ptr->getNbOfCoeffs();
947
948
949
950
951
952 int full_size = rank * RANK;
954 full_size *= 3;
955
956 int tag_length = full_size > 3 && full_size < 9 ? 9 : full_size;
957 double def_VAL[tag_length];
958 bzero(def_VAL, tag_length * sizeof(double));
962 MB_TAG_CREAT | MB_TAG_SPARSE, def_VAL);
963
964
965
967 int nb_gauss_pts = data.
getN().size1();
968 if (
mapGaussPts.size() != (
unsigned int)nb_gauss_pts ||
969 nb_gauss_pts !=
matPtr->size2()) {
971 }
972 switch (space) {
976
978 tags_ptr);
979
980 for (int gg = 0; gg != nb_gauss_pts; ++gg) {
981 const double *my_ptr2 = static_cast<const double *>(tags_ptr[gg]);
982 double *my_ptr = const_cast<double *>(my_ptr2);
983 for (int rr = 0; rr != RANK; ++rr) {
984 for (
int dd = 0;
dd != rank; ++
dd) {
985 my_ptr[rank * rr +
dd] = (*matPtr)(rank * rr +
dd, gg);
986 }
987 }
988 }
989
990 break;
991 default:
993 "field with that space is not implemented");
994 }
995
997}
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
FieldSpace
approximation spaces
@ L2
field with C-1 continuity
@ 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()
#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)
MatrixDouble & getN(const FieldApproximationBase base)
get base functions this return matrix (nb. of rows is equal to nb. of Gauss pts, nb....