234 {
236
238
239 auto rule_lhs = [](int, int, int p) -> int { return 2 * p; };
240 auto rule_rhs = [](int, int, int p) -> int { return 2 * p; };
241 auto rule_2 = [
this](int, int, int) {
return 2 *
order; };
242
244 CHKERR pipeline_mng->setDomainRhsIntegrationRule(rule_rhs);
245
246 CHKERR pipeline_mng->setSkeletonLhsIntegrationRule(rule_2);
247 CHKERR pipeline_mng->setSkeletonRhsIntegrationRule(rule_2);
248 CHKERR pipeline_mng->setBoundaryLhsIntegrationRule(rule_2);
249 CHKERR pipeline_mng->setBoundaryRhsIntegrationRule(rule_2);
250
251 auto det_ptr = boost::make_shared<VectorDouble>();
252 auto jac_ptr = boost::make_shared<MatrixDouble>();
253 auto inv_jac_ptr = boost::make_shared<MatrixDouble>();
254 auto base_mass_ptr = boost::make_shared<MatrixDouble>();
255 auto data_l2_ptr = boost::make_shared<EntitiesFieldData>(MBENTITYSET);
256
258
259 auto push_ho_direcatives = [&](auto &pipeline) {
263 BaseDerivatives::SecondDerivative, base_mass_ptr, data_l2_ptr,
265 };
266
267
268
269
270
271 auto push_jacobian = [&](auto &pipeline) {
274 pipeline.push_back(
276
278
280 };
281
282 push_ho_direcatives(pipeline_mng->getOpDomainLhsPipeline());
283 push_jacobian(pipeline_mng->getOpDomainLhsPipeline());
284
285 pipeline_mng->getOpDomainLhsPipeline().push_back(
287
288
289
290 pipeline_mng->getOpDomainRhsPipeline().push_back(
292
293
294 auto side_fe_ptr = boost::make_shared<FaceSideEle>(
mField);
295 push_ho_direcatives(side_fe_ptr->getOpPtrVector());
296 push_jacobian(side_fe_ptr->getOpPtrVector());
298
299
300 pipeline_mng->getOpSkeletonLhsPipeline().push_back(
302
304}
@ AINSWORTH_LEGENDRE_BASE
Ainsworth Cole (Legendre) approx. base nme:nme847.
@ L2
field with C-1 continuity
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
FormsIntegrators< DomainEleOp >::Assembly< PETSC >::LinearForm< GAUSS >::OpSource< BASE_DIM, FIELD_DIM > OpDomainPlateLoad
FormsIntegrators< DomainEleOp >::Assembly< PETSC >::BiLinearForm< GAUSS >::OpGradGradSymTensorGradGrad< 1, 1, SPACE_DIM, 0 > OpDomainPlateStiffness
auto plate_stiffness
get fourth-order constitutive tensor
Modify integration weights on face to take in account higher-order geometry.
PipelineManager interface.
MoFEMErrorCode setDomainLhsIntegrationRule(RuleHookFun rule)
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface reference to pointer of interface.
Operator tp collect data from elements on the side of Edge/Face.
Operator the left hand side matrix.