297 {
299
301 typename EssentialBC<OpBase>::template Assembly<A>::template
LinearForm<
302 I>::template OpEssentialRhs<DisplacementCubitBcData,
BASE_DIM,
304 using OpInternal = typename FormsIntegrators<OpBase>::template Assembly<
307
308 auto add_op = [&](auto &bcs) {
310 for (
auto &
m : bcs) {
311 if (
auto bc =
m.second->dispBcPtr) {
312 auto &bc_id =
m.first;
313 auto regex_str =
314 (boost::format(
"%s_%s_(.*)") % problem_name %
field_name).str();
315 if (std::regex_match(bc_id, std::regex(regex_str))) {
317 pipeline.push_back(
318 new OpSetBc(
field_name,
false,
m.second->getBcMarkersPtr()));
319 pipeline.push_back(
321 pipeline.push_back(new OpInternal(
323 [](double, double, double) constexpr { return 1.; },
324 m.second->getBcEntsPtr()));
325 pipeline.push_back(
new OpUnSetBc(
field_name));
326 }
327 }
328 }
331 };
332
334
336 }
#define MOFEM_TAG_AND_LOG(channel, severity, tag)
Tag and log in channel.
#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 MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
FTensor::Index< 'm', SPACE_DIM > m
#define MOFEM_LOG_CHANNEL(channel)
Set and reset channel.
constexpr IntegrationType I
constexpr auto field_name
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface refernce to pointer of interface.