1467 {
1469
1470 if (
dAta.
tEts.find(getNumeredEntFiniteElementPtr()->getEnt()) ==
1473 }
1475 if (nb_dofs == 0)
1477
1478 try {
1479
1482
1484 int nb_base_functions = row_data.
getN().size2();
1486
1487 for (
unsigned int gg = 0; gg < row_data.
getN().size1(); gg++) {
1493 for (;
dd < nb_dofs / 3;
dd++) {
1494 t_nf(
i) += base * res(
i);
1495 ++base;
1496 ++t_nf;
1497 }
1498 for (;
dd != nb_base_functions;
dd++) {
1499 ++base;
1500 }
1501 }
1502
1503 if (row_data.
getIndices().size() > 3 * row_data.
getN().size2()) {
1504 SETERRQ(PETSC_COMM_SELF, 1, "data inconsistency");
1505 }
1509 VectorDofs::iterator dit = dofs.begin();
1510 for (int ii = 0; dit != dofs.end(); dit++, ii++) {
1513
1514 indices[ii] = -1;
1515 }
1516 }
1517
1519 &
nf[0], ADD_VALUES);
1520 } else {
1523 }
1524
1525 } catch (const std::exception &ex) {
1526 std::ostringstream ss;
1527 ss << "throw in method: " << ex.what() << std::endl;
1528 SETERRQ(PETSC_COMM_SELF, 1, ss.str().c_str());
1529 }
1530
1532}
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
FTensor::Index< 'i', SPACE_DIM > i
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< int > VectorInt
MoFEMErrorCode VecSetValues(Vec V, const EntitiesFieldData::EntData &data, const double *ptr, InsertMode iora)
Assemble PETSc vector.
ublas::vector< FEDofEntity *, DofsAllocator > VectorDofs
Range tEts
elements in block set
std::vector< VectorDouble > valT
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > getFTensor0N(const FieldApproximationBase base)
Get base function as Tensor0.
MatrixDouble & getN(const FieldApproximationBase base)
get base functions this return matrix (nb. of rows is equal to nb. of Gauss pts, nb....
const VectorDofs & getFieldDofs() const
get dofs data stature FEDofEntity
const VectorInt & getIndices() const
Get global indices of dofs on entity.