v0.16.0
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
AddFluxToRhsPipelineImpl< OpFluxRhsImpl< ThermoElasticOps::ConvectionBcType< BCTYPE >, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase > Struct Template Reference

#include "tutorials/adv-2_thermo_elasticity/src/ThermalConvection.hpp"

Public Member Functions

 AddFluxToRhsPipelineImpl ()=delete
 
 AddFluxToRhsPipelineImpl ()=delete
 

Static Public Member Functions

static MoFEMErrorCode add (boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > &pipeline, MoFEM::Interface &m_field, std::string field_name, boost::shared_ptr< VectorDouble > u_ptr, std::vector< boost::shared_ptr< ScalingMethod > > smv, std::string block_name, Sev sev)
 
static MoFEMErrorCode add (boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > &pipeline, MoFEM::Interface &m_field, std::string field_name, boost::shared_ptr< VectorDouble > u_ptr, std::string block_name, Sev sev)
 

Detailed Description

template<CubitBC BCTYPE, int BASE_DIM, int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase>
struct AddFluxToRhsPipelineImpl< OpFluxRhsImpl< ThermoElasticOps::ConvectionBcType< BCTYPE >, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >

Definition at line 221 of file ThermalConvection.hpp.

Constructor & Destructor Documentation

◆ AddFluxToRhsPipelineImpl() [1/2]

template<CubitBC BCTYPE, int BASE_DIM, int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
AddFluxToRhsPipelineImpl< OpFluxRhsImpl< ThermoElasticOps::ConvectionBcType< BCTYPE >, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >::AddFluxToRhsPipelineImpl ( )
delete

◆ AddFluxToRhsPipelineImpl() [2/2]

template<CubitBC BCTYPE, int BASE_DIM, int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
AddFluxToRhsPipelineImpl< OpFluxRhsImpl< ThermoElasticOps::ConvectionBcType< BCTYPE >, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >::AddFluxToRhsPipelineImpl ( )
delete

Member Function Documentation

◆ add() [1/2]

template<CubitBC BCTYPE, int BASE_DIM, int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
static MoFEMErrorCode AddFluxToRhsPipelineImpl< OpFluxRhsImpl< ThermoElasticOps::ConvectionBcType< BCTYPE >, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >::add ( boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > &  pipeline,
MoFEM::Interface m_field,
std::string  field_name,
boost::shared_ptr< VectorDouble >  u_ptr,
std::string  block_name,
Sev  sev 
)
inlinestatic

Definition at line 221 of file ThermalConvection.hpp.

227 {
229
230 using OP = OpFluxRhsImpl<ThermoElasticOps::ConvectionBcType<BLOCKSET>,
232
233 auto add_op = [&](auto &&meshset_vec_ptr) {
234 for (auto m : meshset_vec_ptr) {
235 MOFEM_TAG_AND_LOG("WORLD", sev, "OpConvectionRhs") << "Add " << *m;
236 pipeline.push_back(
237 new OP(m_field, m->getMeshsetId(), field_name, u_ptr));
238 }
239 MOFEM_LOG_CHANNEL("WORLD");
240 };
241
242 switch (BCTYPE) {
243 case BLOCKSET:
244 add_op(
245
246 m_field.getInterface<MeshsetsManager>()->getCubitMeshsetPtr(
247 std::regex(
248
249 (boost::format("%s(.*)") % block_name).str()
250
251 ))
252
253 );
254
255 break;
256 default:
257 SETERRQ(PETSC_COMM_SELF, MOFEM_NOT_IMPLEMENTED,
258 "Handling of bc type not implemented");
259 break;
260 }
262 }
#define MOFEM_TAG_AND_LOG(channel, severity, tag)
Tag and log in channel.
constexpr int FIELD_DIM
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
@ BLOCKSET
@ MOFEM_NOT_IMPLEMENTED
Definition definitions.h:32
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
constexpr int BASE_DIM
@ GAUSS
Gaussian quadrature integration.
@ PETSC
Standard PETSc assembly.
#define MOFEM_LOG_CHANNEL(channel)
Set and reset channel.
constexpr auto field_name
FTensor::Index< 'm', 3 > m
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface reference to pointer of interface.

◆ add() [2/2]

template<CubitBC BCTYPE, int BASE_DIM, int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
static MoFEMErrorCode AddFluxToRhsPipelineImpl< OpFluxRhsImpl< ThermoElasticOps::ConvectionBcType< BCTYPE >, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >::add ( boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > &  pipeline,
MoFEM::Interface m_field,
std::string  field_name,
boost::shared_ptr< VectorDouble >  u_ptr,
std::vector< boost::shared_ptr< ScalingMethod > >  smv,
std::string  block_name,
Sev  sev 
)
inlinestatic

Definition at line 231 of file ThermalConvection.hpp.

239 {
241
242 using OP = OpFluxRhsImpl<ThermoElasticOps::ConvectionBcType<BLOCKSET>,
244
245 auto add_op = [&](auto &&meshset_vec_ptr) {
246 for (auto m : meshset_vec_ptr) {
247 MOFEM_TAG_AND_LOG("WORLD", sev, "OpConvectionRhs") << "Add " << *m;
248 pipeline.push_back(
249 new OP(m_field, m->getMeshsetId(), field_name, u_ptr, smv));
250 }
251 MOFEM_LOG_CHANNEL("WORLD");
252 };
253
254 switch (BCTYPE) {
255 case BLOCKSET:
256 add_op(
257
258 m_field.getInterface<MeshsetsManager>()->getCubitMeshsetPtr(
259 std::regex(
260
261 (boost::format("%s(.*)") % block_name).str()
262
263 ))
264
265 );
266
267 break;
268 default:
269 SETERRQ(PETSC_COMM_SELF, MOFEM_NOT_IMPLEMENTED,
270 "Handling of bc type not implemented");
271 break;
272 }
274 }

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