17 std::vector<boost::shared_ptr<ScalingMethod>> smv)
18 : mField(m_field), fePtr(fe_ptr), vecOfTimeScalingMethods(smv) {}
23 if (
auto fe_method_ptr = fePtr.lock()) {
25 auto bc_mng = mField.getInterface<
BcManager>();
27 const auto problem_name = fe_method_ptr->problemPtr->getName();
29 for (
auto bc : bc_mng->getBcMapByBlockName()) {
30 if (
auto temp_bc = bc.second->tempBcPtr) {
32 auto &bc_id = bc.first;
34 auto regex_str = (boost::format(
"%s_(.*)") % problem_name).str();
35 if (std::regex_match(bc_id, std::regex(regex_str))) {
41 <<
"Apply EssentialPreProc<TemperatureCubitBcData>: "
42 << problem_name <<
"_" <<
field_name <<
"_" << block_name;
44 auto verts = bc.second->bcEnts.subset_by_type(MBVERTEX);
45 auto v = temp_bc->data.value1;
46 for (
auto s : vecOfTimeScalingMethods) {
47 v *= s->getScale(fe_method_ptr->ts_t);
50 auto lambda = [&](boost::shared_ptr<FieldEntity> field_entity_ptr) {
52 for (
auto &d : field_entity_ptr->getEntFieldData())
63 "Can not lock shared pointer");
#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)
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
implementation of Data Operators for Forces and Sources
constexpr auto field_name
Simple interface for fast problem set-up.
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.
Deprecated interface functions.
Class (Function) to enforce essential constrains.
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface reference to pointer of interface.