54 {
55 PetscFunctionBegin;
56 if(
dAta.
tEts.find(getNumeredEntFiniteElementPtr()->getEnt()) ==
dAta.
tEts.end()) {
57 PetscFunctionReturn(0);
58 }
59
60
61 if(row_type == MBVERTEX && col_type==MBVERTEX) {
62
64 int Indices[1]; Indices[0]=pcomm->rank();
65 double Vol_elm[1]; Vol_elm[0]=0;
66 for(unsigned int gg = 0;gg<row_data.getN().size1();gg++) {
67 if(getHoGaussPtsDetJac().size()>0) {
68
69
70 Vol_elm[0]+=getVolume()*getGaussPts()(3,gg)*getHoGaussPtsDetJac()[gg];
71 }else{
72
73 Vol_elm[0]+=getVolume()*getGaussPts()(3,gg);
74 }
75 }
76
78
79
80 }
81 PetscFunctionReturn(0);
82 }
static PetscErrorCode ierr
#define MYPCOMM_INDEX
default communicator number PCOMM
MoFEMErrorCode VecSetValues(Vec V, const EntitiesFieldData::EntData &data, const double *ptr, InsertMode iora)
Assemble PETSc vector.
virtual moab::Interface & get_moab()=0
Range tEts
constrains elements in block set