94 {
95 PetscFunctionBegin;
96
97 if(data.getIndices().size()==0) PetscFunctionReturn(0);
98 try {
99 EntityHandle this_face = getNumeredEntFiniteElementPtr()->getEnt();
100 int nb_gauss_pts_on_this_face = data.getN().size1();
101 for(int ffgg = 0;ffgg<nb_gauss_pts_on_this_face;ffgg++) {
103 CommonData::MultiIndexData gauss_pt_data(gg,side,type);
104 pair<CommonData::Container::iterator,bool> p;
106 if(!p.second) {
108 }
109 CommonData::MultiIndexData &p_data = const_cast<CommonData::MultiIndexData&>(*p.first);
111 int nb_shape_fun = data.getN().size2();
112 shape_fun.resize(nb_shape_fun);
113 cblas_dcopy(nb_shape_fun,&data.getN()(ffgg,0),1,&shape_fun[0],1);
114 p_data.iNdices = data.getIndices();
115 p_data.dofOrders.resize(data.getFieldDofs().size(),false);
116 for(
unsigned int dd = 0;
dd<data.getFieldDofs().size();
dd++) {
117 p_data.dofOrders[
dd] = data.getFieldDofs()[
dd]->getDofOrder();
118 }
119 int nb_dofs = data.getFieldData().size();
120 if(type == MBVERTEX) {
124 for(int rr = 0;rr<3;rr++) {
126 nb_dofs/3,&data.getFieldData()[rr],3,&data.getN()(ffgg,0),1
127 );
130 }
133 }
134 } else {
135 for(int rr = 0;rr<3;rr++) {
137 nb_dofs/3,&data.getFieldData()[rr],3,&data.getN()(ffgg,0),1
138 );
139 }
140 }
141 }
142 } catch (const std::exception& ex) {
143 ostringstream ss;
144 ss << "throw in method: " << ex.what() << endl;
145 SETERRQ(PETSC_COMM_SELF,1,ss.str().c_str());
146 }
147
148
149 PetscFunctionReturn(0);
150 }
@ MOFEM_DATA_INCONSISTENCY
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)
UBlasVector< double > VectorDouble
vector< VectorDouble > hoCoordsAtGaussPts
vector< VectorDouble > coordsAtGaussPts
map< EntityHandle, vector< int > > inTetFaceGaussPtsNumber
vector< VectorDouble > dIsplacements