4603 {
4605
4606 if (OP::entsPtr) {
4607 if (OP::entsPtr->find(this->getFEEntityHandle()) == OP::entsPtr->end())
4609 }
4610
4611#ifndef NDEBUG
4612 if (!brokenBaseSideData) {
4614 }
4615#endif
4616
4617 auto do_work_rhs = [this](int row_side, EntityType row_type,
4620
4622 if (!OP::nbRows)
4624
4625 OP::nbIntegrationPts = OP::getGaussPts().size2();
4626
4627 OP::nbRowBaseFunctions = OP::getNbOfBaseFunctions(row_data);
4628
4629 OP::locF.resize(OP::nbRows, false);
4630 OP::locF.clear();
4631
4632 CHKERR this->iNtegrate(row_data);
4633
4634 CHKERR this->aSsemble(row_data);
4636 };
4637
4638 switch (OP::opType) {
4639 case OP::OPSPACE:
4640 for (auto &bd : *brokenBaseSideData) {
4641 this->sourceVec =
4642 boost::shared_ptr<MatrixDouble>(brokenBaseSideData, &bd.getFlux());
4643 CHKERR do_work_rhs(bd.getSide(), bd.getType(), bd.getData());
4644 this->sourceVec.reset();
4645 }
4646 break;
4647 default:
4649 (std::string("wrong op type ") +
4650 OpBaseDerivativesBase::OpTypeNames[OP::opType])
4651 .c_str());
4652 }
4653
4655}
#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.