291 {
294
295 auto rule = [](
int,
int,
int p) ->
int {
return 2 * p; };
296
299
300 auto test_bit_parent = [](
FEMethod *fe_ptr) {
301 const auto &
bit = fe_ptr->numeredEntFiniteElementPtr->getBitRefLevel();
304 };
305
308
310
311
316
321
323 parent_op_lhs->doWorkRhsHook = [&](
DataOperator *op_ptr,
int side,
326 auto domain_op =
static_cast<DomainEleOp *
>(op_ptr);
328
329 MOFEM_LOG(
"SELF", Sev::noisy) <<
"LHS Pipeline FE";
330
333
335 domain_op->getFEMethod()->numeredEntFiniteElementPtr->getBitRefLevel();
337 CHKERR domain_op->loopChildren(domain_op->getFEName(),
339 } else {
342 }
344 };
345
347 parent_op_rhs->doWorkRhsHook = [&](
DataOperator *op_ptr,
int side,
350 auto domain_op =
static_cast<DomainEleOp *
>(op_ptr);
352
353 MOFEM_LOG(
"SELF", Sev::noisy) <<
"RHS Pipeline FE";
354
357
359 domain_op->getFEMethod()->numeredEntFiniteElementPtr->getBitRefLevel();
361 CHKERR domain_op->loopChildren(domain_op->getFEName(),
366 }
368 };
369
372
374}
boost::shared_ptr< DomainEle > domainChildRhs
boost::shared_ptr< DomainEle > domainChildLhs
[Set up problem]
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
@ MOFEM_ATOM_TEST_INVALID
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
boost::ptr_deque< UserDataOperator > & getOpDomainLhsPipeline()
Get the Op Domain Lhs Pipeline object.
boost::ptr_deque< UserDataOperator > & getOpDomainRhsPipeline()
Get the Op Domain Rhs Pipeline object.
#define MOFEM_LOG(channel, severity)
Log.
constexpr char FIELD_NAME[]
DomainEle::UserDataOperator DomainEleOp
Finire element operator type.
FormsIntegrators< DomainEleOp >::Assembly< PETSC >::BiLinearForm< GAUSS >::OpMass< BASE_DIM, FIELD_DIM > OpDomainMass
OPerator to integrate mass matrix for least square approximation.
FormsIntegrators< DomainEleOp >::Assembly< PETSC >::LinearForm< GAUSS >::OpSource< BASE_DIM, FIELD_DIM > OpDomainSource
Operator to integrate the right hand side matrix for the problem.
std::bitset< BITREFLEVEL_SIZE > BitRefLevel
Bit structure attached to each entity identifying to what mesh entity is attached.
static ApproxFieldFunction< FIELD_DIM > approxFunction
base operator to do operations at Gauss Pt. level
Data on single entity (This is passed as argument to DataOperator::doWork)
structure for User Loop Methods on finite elements
PipelineManager interface.
boost::shared_ptr< FEMethod > & getDomainRhsFE()
boost::shared_ptr< FEMethod > & getDomainLhsFE()
MoFEMErrorCode setDomainRhsIntegrationRule(RuleHookFun rule)
MoFEMErrorCode setDomainLhsIntegrationRule(RuleHookFun rule)
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface reference to pointer of interface.