1013 {
1014 PetscFunctionBegin;
1015
1016 if(data.getIndices().size()==0) PetscFunctionReturn(0);
1017 int rank = data.getFieldDofs()[0]->getNbOfCoeffs();
1018 if(type == MBVERTEX) {
1020 int nb=data.getIndices().size()/2;
1023 for(int ii=0; ii<nb; ii++){
1024 col_ind[0][ii]=data.getIndices()[ii];
1025 col_ind[1][ii]=data.getIndices()[ii+nb];
1026 }
1027 }
1028
1029
1030
1031 for(unsigned int gg = 0;gg<data.getN().size1();gg++) {
1032
1033 double area;
1035 area = cblas_dnrm2(3,&normal_f3[0],1)*0.5;
1036 double val = getGaussPts()(2,gg)*area;
1037
1038 if(type == MBVERTEX) {
1040 else {
1042
1043
1044 if(gg==0){
1045 if(type == MBVERTEX) {
1048 else if(type == MBEDGE && side < 3){
1050 else if(type == MBEDGE && side >= 6){
1052 else if(type == MBTRI && side == 3){
1054 else if(type == MBTRI && side == 4){
1056 }else{
1057 if(type == MBVERTEX) {
1060 else if(type == MBEDGE && side < 3){
1062 else if(type == MBEDGE && side >= 6){
1064 else if(type == MBTRI && side == 3){
1066 else if(type == MBTRI && side == 4){
1068 }
1069
1070 }
1071
1072
1073 if(type == MBVERTEX) {
1076 else if(type == MBEDGE && side < 3){
1078 else if(type == MBEDGE && side >= 6){
1080 else if(type == MBTRI && side == 3){
1082 else if(type == MBTRI && side == 4){
1084 PetscFunctionReturn(0);
1085 }
static PetscErrorCode ierr
UBlasVector< double > VectorDouble
MoFEMErrorCode VecSetValues(Vec V, const EntitiesFieldData::EntData &data, const double *ptr, InsertMode iora)
Assemble PETSc vector.
ublas::vector< VectorDouble > LagMulAtGaussPts
PetscErrorCode shapeMat(int rank, unsigned int gg, DataForcesAndSurcesCore::EntData &col_data, MatrixDouble &N_mat, int div=1)
ublas::vector< ublas::vector< int > > col_ind