4458 {
4460
4461 if (OP::entsPtr) {
4462 if (OP::entsPtr->find(this->getFEEntityHandle()) == OP::entsPtr->end())
4464 }
4465
4466#ifndef NDEBUG
4467 if (!brokenBaseSideData) {
4469 }
4470#endif
4471
4472 auto do_work_rhs = [this](int row_side, EntityType row_type,
4475
4477 if (!OP::nbRows)
4479
4480 OP::nbIntegrationPts = OP::getGaussPts().size2();
4481
4482 OP::nbRowBaseFunctions = OP::getNbOfBaseFunctions(row_data);
4483
4484 OP::locF.resize(OP::nbRows, false);
4485 OP::locF.clear();
4486
4487 CHKERR this->iNtegrate(row_data);
4488
4489 CHKERR this->aSsemble(row_data);
4491 };
4492
4493 switch (OP::opType) {
4494 case OP::OPSPACE:
4495 for (auto &bd : *brokenBaseSideData) {
4496 this->sourceVec =
4497 boost::shared_ptr<MatrixDouble>(brokenBaseSideData, &bd.getFlux());
4498 CHKERR do_work_rhs(bd.getSide(), bd.getType(), bd.getData());
4499 this->sourceVec.reset();
4500 }
4501 break;
4502 default:
4504 (std::string("wrong op type ") +
4505 OpBaseDerivativesBase::OpTypeNames[OP::opType])
4506 .c_str());
4507 }
4508
4510}
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define CHK_MOAB_THROW(err, msg)
Check error code of MoAB function and throw MoFEM exception.
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
Data on single entity (This is passed as argument to DataOperator::doWork)
const VectorInt & getIndices() const
Get global indices of degrees of freedom on entity.