v0.14.0
Public Member Functions | Static Public Member Functions | List of all members
MoFEM::AddEssentialToRhsPipelineImpl< OpEssentialRhsImpl< DisplacementCubitBcData, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase > Struct Template Reference

#include <src/boundary_conditions/EssentialDisplacementCubitBcData.hpp>

Public Member Functions

 AddEssentialToRhsPipelineImpl ()=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, boost::shared_ptr< MatrixDouble > field_mat_ptr, std::vector< boost::shared_ptr< ScalingMethod >> smv)
 

Detailed Description

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

Definition at line 280 of file EssentialDisplacementCubitBcData.hpp.

Constructor & Destructor Documentation

◆ AddEssentialToRhsPipelineImpl()

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

Member Function Documentation

◆ add()

template<int BASE_DIM, int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
static MoFEMErrorCode MoFEM::AddEssentialToRhsPipelineImpl< OpEssentialRhsImpl< 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,
boost::shared_ptr< MatrixDouble field_mat_ptr,
std::vector< boost::shared_ptr< ScalingMethod >>  smv 
)
inlinestatic

Definition at line 290 of file EssentialDisplacementCubitBcData.hpp.

298  {
300 
301  using OP =
302  typename EssentialBC<OpBase>::template Assembly<A>::template LinearForm<
303  I>::template OpEssentialRhs<DisplacementCubitBcData, BASE_DIM,
304  FIELD_DIM>;
305  using OpInternal = typename FormsIntegrators<OpBase>::template Assembly<
306  A>::template LinearForm<I>::template OpBaseTimesVector<BASE_DIM,
307  FIELD_DIM, 1>;
308 
309  auto add_op = [&](auto &bcs) {
311  for (auto &m : bcs) {
312  if (auto bc = m.second->dispBcPtr) {
313  auto &bc_id = m.first;
314  auto regex_str =
315  (boost::format("%s_%s_(.*)") % problem_name % field_name).str();
316  if (std::regex_match(bc_id, std::regex(regex_str))) {
317  MOFEM_TAG_AND_LOG("SELF", Sev::noisy, "OpEssentialRhs") << *bc;
318  pipeline.push_back(
319  new OpSetBc(field_name, false, m.second->getBcMarkersPtr()));
320  pipeline.push_back(
321  new OP(field_name, bc, m.second->getBcEntsPtr(), smv));
322  pipeline.push_back(new OpInternal(
323  field_name, field_mat_ptr,
324  [](double, double, double) constexpr { return 1.; },
325  m.second->getBcEntsPtr()));
326  pipeline.push_back(new OpUnSetBc(field_name));
327  }
328  }
329  }
330  MOFEM_LOG_CHANNEL("SELF");
332  };
333 
334  CHKERR add_op(m_field.getInterface<BcManager>()->getBcMapByBlockName());
335 
337  }

The documentation for this struct was generated from the following file:
MoFEMFunctionReturnHot
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:447
MoFEM::UnknownInterface::getInterface
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface refernce to pointer of interface.
Definition: UnknownInterface.hpp:93
MOFEM_LOG_CHANNEL
#define MOFEM_LOG_CHANNEL(channel)
Set and reset channel.
Definition: LogManager.hpp:284
A
constexpr AssemblyType A
Definition: operators_tests.cpp:30
BASE_DIM
constexpr int BASE_DIM
Definition: dg_projection.cpp:15
FIELD_DIM
constexpr int FIELD_DIM
Definition: child_and_parent.cpp:15
I
constexpr IntegrationType I
Definition: operators_tests.cpp:31
CHKERR
#define CHKERR
Inline error check.
Definition: definitions.h:535
field_name
constexpr auto field_name
Definition: poisson_2d_homogeneous.cpp:13
MOFEM_TAG_AND_LOG
#define MOFEM_TAG_AND_LOG(channel, severity, tag)
Tag and log in channel.
Definition: LogManager.hpp:362
m
FTensor::Index< 'm', 3 > m
Definition: shallow_wave.cpp:80
MoFEMFunctionBeginHot
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:440
OP
MoFEMFunctionReturn
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:416
MoFEMFunctionBegin
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:346