v0.15.0
Loading...
Searching...
No Matches
MoFEM::AddEssentialToRhsPipelineImpl< OpEssentialRhsImpl< HeatFluxCubitBcData, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase > Struct Template Reference

#include "src/boundary_conditions/EssentialHeatFluxCubitBcData.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< HeatFluxCubitBcData, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >

Definition at line 114 of file EssentialHeatFluxCubitBcData.hpp.

Constructor & Destructor Documentation

◆ AddEssentialToRhsPipelineImpl()

template<int BASE_DIM, int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
MoFEM::AddEssentialToRhsPipelineImpl< OpEssentialRhsImpl< HeatFluxCubitBcData, 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< HeatFluxCubitBcData, 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 123 of file EssentialHeatFluxCubitBcData.hpp.

131 {
133
134 using OP =
135 typename EssentialBC<OpBase>::template Assembly<A>::template LinearForm<
136 I>::template OpEssentialRhs<HeatFluxCubitBcData, BASE_DIM,
137 FIELD_DIM>;
138 using OpInternal = typename FormsIntegrators<OpBase>::template Assembly<
139 A>::template LinearForm<I>::template OpBaseTimesVector<BASE_DIM,
140 FIELD_DIM, 1>;
141
142 auto add_op = [&](auto &bcs) {
144 for (auto &m : bcs) {
145 if (auto bc = m.second->heatFluxBcPtr) {
146 auto &bc_id = m.first;
147 auto regex_str =
148 (boost::format("%s_%s_(.*)") % problem_name % field_name).str();
149 if (std::regex_match(bc_id, std::regex(regex_str))) {
150 MOFEM_TAG_AND_LOG("SELF", Sev::noisy, "OpEssentialRhs") << *bc;
151 pipeline.push_back(
152 new OpSetBc(field_name, false, m.second->getBcMarkersPtr()));
153 pipeline.push_back(
154 new OP(field_name, bc, m.second->getBcEntsPtr(), smv));
155 pipeline.push_back(new OpInternal(
156 field_name, field_mat_ptr,
157 [](double, double, double) constexpr { return 1.; },
158 m.second->getBcEntsPtr()));
159 pipeline.push_back(new OpUnSetBc(field_name));
160 }
161 }
162 }
163 MOFEM_LOG_CHANNEL("SELF");
165 };
166
167 CHKERR add_op(m_field.getInterface<BcManager>()->getBcMapByBlockName());
168
170 }
#define MOFEM_TAG_AND_LOG(channel, severity, tag)
Tag and log in channel.
constexpr int FIELD_DIM
#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 ...
constexpr int BASE_DIM
#define MOFEM_LOG_CHANNEL(channel)
Set and reset channel.
constexpr IntegrationType I
constexpr auto field_name
FTensor::Index< 'm', 3 > m
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface reference to pointer of interface.

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