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....