20 {
22
23 if (
auto fe_method_ptr =
fePtr.lock()) {
24
27 const auto problem_name = fe_method_ptr->problemPtr->getName();
28
29 for (auto bc : bc_mng->getBcMapByBlockName()) {
30 if (auto temp_bc = bc.second->tempBcPtr) {
31
32 auto &bc_id = bc.first;
33
34 auto regex_str = (boost::format("%s_(.*)") % problem_name).str();
35 if (std::regex_match(bc_id, std::regex(regex_str))) {
36
39
41 << "Apply EssentialPreProc<TemperatureCubitBcData>: "
42 << problem_name <<
"_" <<
field_name <<
"_" << block_name;
43
44 auto verts = bc.second->bcEnts.subset_by_type(MBVERTEX);
45 auto v = temp_bc->data.value1;
47 v *= s->getScale(fe_method_ptr->ts_t);
48 }
49
50 auto lambda = [&](boost::shared_ptr<FieldEntity> field_entity_ptr) {
52 for (auto &d : field_entity_ptr->getEntFieldData())
55 };
57 }
58 }
59 }
60
61 } else {
63 "Can not lock shared pointer");
64 }
65
67}
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
@ MOFEM_DATA_INCONSISTENCY
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
#define MOFEM_LOG(channel, severity)
Log.
const double v
phase velocity of light in medium (cm/ns)
constexpr auto field_name
static std::pair< std::string, std::string > extractStringFromBlockId(const std::string block_id, const std::string prb_name)
Extract block name and block name form block id.
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface refernce to pointer of interface.