v0.14.0
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
MoFEM::AddEssentialToLhsPipelineImpl< OpEssentialLhsImpl< DisplacementCubitBcData, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase > Struct Template Reference

#include <src/boundary_conditions/EssentialDisplacementCubitBcData.hpp>

Public Member Functions

 AddEssentialToLhsPipelineImpl ()=delete
 

Static Public Member Functions

static MoFEMErrorCode add (MoFEM::Interface &m_field, boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > &pipeline, const std::string problem_name, std::string field_name)
 

Detailed Description

template<int BASE_DIM, int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase>
struct MoFEM::AddEssentialToLhsPipelineImpl< OpEssentialLhsImpl< DisplacementCubitBcData, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >

Definition at line 341 of file EssentialDisplacementCubitBcData.hpp.

Constructor & Destructor Documentation

◆ AddEssentialToLhsPipelineImpl()

template<int BASE_DIM, int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
MoFEM::AddEssentialToLhsPipelineImpl< OpEssentialLhsImpl< DisplacementCubitBcData, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >::AddEssentialToLhsPipelineImpl ( )
delete

Member Function Documentation

◆ add()

template<int BASE_DIM, int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
static MoFEMErrorCode MoFEM::AddEssentialToLhsPipelineImpl< OpEssentialLhsImpl< DisplacementCubitBcData, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >::add ( MoFEM::Interface m_field,
boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > &  pipeline,
const std::string  problem_name,
std::string  field_name 
)
inlinestatic

Definition at line 351 of file EssentialDisplacementCubitBcData.hpp.

357 {
359
360 using OP = typename EssentialBC<OpBase>::template Assembly<A>::
361 template BiLinearForm<I>::template OpEssentialLhs<
362 DisplacementCubitBcData, BASE_DIM, FIELD_DIM>;
363
364 auto add_op = [&](auto &bcs) {
366 for (auto &m : bcs) {
367 if (auto bc = m.second->dispBcPtr) {
368 auto &bc_id = m.first;
369 auto regex_str =
370 (boost::format("%s_%s_(.*)") % problem_name % field_name).str();
371 if (std::regex_match(bc_id, std::regex(regex_str))) {
372 MOFEM_TAG_AND_LOG("SELF", Sev::noisy, "OpEssentialLhs") << *bc;
373 pipeline.push_back(
374 new OpSetBc(field_name, false, m.second->getBcMarkersPtr()));
375 pipeline.push_back(new OP(field_name, m.second->getBcEntsPtr()));
376 pipeline.push_back(new OpUnSetBc(field_name));
377 }
378 }
379 }
380 MOFEM_LOG_CHANNEL("SELF");
382 };
383
384 CHKERR add_op(m_field.getInterface<BcManager>()->getBcMapByBlockName());
385
387 }
#define MOFEM_TAG_AND_LOG(channel, severity, tag)
Tag and log in channel.
Definition: LogManager.hpp:362
constexpr int FIELD_DIM
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:447
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:346
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:416
#define CHKERR
Inline error check.
Definition: definitions.h:535
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:440
constexpr int BASE_DIM
FTensor::Index< 'm', SPACE_DIM > m
#define MOFEM_LOG_CHANNEL(channel)
Set and reset channel.
Definition: LogManager.hpp:284
constexpr auto field_name
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface refernce to pointer of interface.

The documentation for this struct was generated from the following file: