307 {
309 auto add_domain_base_ops = [&](auto &pipeline) {
310 auto det_ptr = boost::make_shared<VectorDouble>();
311 auto jac_ptr = boost::make_shared<MatrixDouble>();
312 auto inv_jac_ptr = boost::make_shared<MatrixDouble>();
317 };
318
319 auto add_domain_lhs_ops = [&](auto &pipeline) {
321 auto grad_u_at_gauss_pts = boost::make_shared<MatrixDouble>();
322 pipeline.push_back(
324 pipeline.push_back(
327 };
328
329 auto add_domain_rhs_ops = [&](auto &pipeline) {
331 auto grad_u_at_gauss_pts = boost::make_shared<MatrixDouble>();
332 pipeline.push_back(
336 };
337
338 auto add_boundary_base_ops = [&](auto &pipeline) {};
339
340 auto add_lhs_base_ops = [&](auto &pipeline) {
343 "U", "U", [](const double, const double, const double) { return 1; }));
345 };
346 auto add_rhs_base_ops = [&](auto &pipeline) {
348 auto u_at_gauss_pts = boost::make_shared<VectorDouble>();
351 "U", u_at_gauss_pts,
352 [](const double, const double, const double) { return 1; }));
355 };
356
358 add_domain_base_ops(pipeline_mng->getOpDomainLhsPipeline());
359 add_domain_base_ops(pipeline_mng->getOpDomainRhsPipeline());
360 add_domain_lhs_ops(pipeline_mng->getOpDomainLhsPipeline());
361 add_domain_rhs_ops(pipeline_mng->getOpDomainRhsPipeline());
362
363 add_boundary_base_ops(pipeline_mng->getOpBoundaryLhsPipeline());
364 add_boundary_base_ops(pipeline_mng->getOpBoundaryRhsPipeline());
365 add_lhs_base_ops(pipeline_mng->getOpBoundaryLhsPipeline());
366 add_rhs_base_ops(pipeline_mng->getOpBoundaryRhsPipeline());
367
369}
#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()
FormsIntegrators< BoundaryEleOp >::Assembly< PETSC >::LinearForm< GAUSS >::OpBaseTimesScalar< 1 > OpBoundaryTimeScalarField
FormsIntegrators< BoundaryEleOp >::Assembly< PETSC >::LinearForm< GAUSS >::OpSource< 1, 1 > OpBoundarySource
FormsIntegrators< BoundaryEleOp >::Assembly< PETSC >::BiLinearForm< GAUSS >::OpMass< 1, 1 > OpBoundaryMass
static double boundaryFunction(const double x, const double y, const double z)
boost::shared_ptr< std::vector< unsigned char > > boundaryMarker
Get field gradients at integration pts for scalar filed rank 0, i.e. vector field.
Get value at integration points for scalar field.
Set indices on entities on finite element.
Set inverse jacobian to base functions.
Modify integration weights on face to take in account higher-order geometry.
PipelineManager interface.
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface refernce to pointer of interface.
Integrate the domain residual vector (RHS)
Integrate the domain tangent matrix (LHS)