619 {
620 PetscFunctionBegin;
621 if(data.getIndices().size()==0) PetscFunctionReturn(0);
622 if(type == MBEDGE && side >= 3) PetscFunctionReturn(0);
623 if(type == MBTRI && side == 4) PetscFunctionReturn(0);
624
625
627
628
629
630
631
632
633
634
635
636
637
638 ublas::vector<int> rowvec;
639 if(type == MBVERTEX) {
640 int nb=data.getIndices().size()/2;
641 rowvec.resize(nb);
642 for(int ii=0; ii<nb; ii++){
643 rowvec[ii]=data.getIndices()[ii];
644 }
645 } else{
646 rowvec=data.getIndices();
647 }
648
650
651 int rank = data.getFieldDofs()[0]->getNbOfCoeffs();
652 int size = (rank == 3) ? 6 : 3;
653 for(int ii = 0;ii<size;ii++) {
660 }
661
662 PetscFunctionReturn(0);
663 }
static PetscErrorCode ierr
MoFEMErrorCode VecSetValues(Vec V, const EntitiesFieldData::EntData &data, const double *ptr, InsertMode iora)
Assemble PETSc vector.
ublas::vector< MatrixDouble > D_mat
CommonDataPeriodic & commonDataPeriodic
PetscErrorCode calculateDmat(int side, EntityType type, DataForcesAndSurcesCore::EntData &data)
VectorDouble appliedStrain