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

#include <src/boundary_conditions/NaturalMeshsetType.hpp>

Public Member Functions

 AddFluxToRhsPipelineImpl ()=delete
 

Static Public Member Functions

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

Detailed Description

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

Definition at line 550 of file NaturalMeshsetType.hpp.

Constructor & Destructor Documentation

◆ AddFluxToRhsPipelineImpl()

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

Member Function Documentation

◆ add()

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

Definition at line 560 of file NaturalMeshsetType.hpp.

567 {
569
570 using OP = typename NaturalBC<OpBase>::template Assembly<
573
574 auto add_op = [&](auto &&meshset_vec_ptr) {
575 for (auto m : meshset_vec_ptr) {
576 MOFEM_TAG_AND_LOG("WORLD", sev, "OpFlux") << "Add " << *m;
577 pipeline.push_back(new OP(m_field, m->getMeshsetId(), field_name, smv));
578 }
579 MOFEM_LOG_CHANNEL("WORLD");
580 };
581
582 switch (BCTYPE) {
583 case TEMPERATURESET:
584 case FORCESET:
585 add_op(m_field.getInterface<MeshsetsManager>()->getCubitMeshsetPtr(
586 NODESET | BCTYPE));
587 case PRESSURESET:
588 case HEATFLUXSET:
589 add_op(m_field.getInterface<MeshsetsManager>()->getCubitMeshsetPtr(
590 SIDESET | BCTYPE));
591 break;
592 case BLOCKSET:
593 add_op(
594
595 m_field.getInterface<MeshsetsManager>()->getCubitMeshsetPtr(
596 std::regex(
597
598 (boost::format("%s(.*)") % block_name).str()
599
600 ))
601
602 );
603
604 break;
605 default:
606 SETERRQ(PETSC_COMM_SELF, MOFEM_NOT_IMPLEMENTED,
607 "Handling of bc type not implemented");
608 break;
609 }
611 }
#define MOFEM_TAG_AND_LOG(channel, severity, tag)
Tag and log in channel.
Definition: LogManager.hpp:359
constexpr int FIELD_DIM
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:346
@ TEMPERATURESET
Definition: definitions.h:155
@ PRESSURESET
Definition: definitions.h:152
@ FORCESET
Definition: definitions.h:151
@ HEATFLUXSET
Definition: definitions.h:156
@ NODESET
Definition: definitions.h:146
@ SIDESET
Definition: definitions.h:147
@ BLOCKSET
Definition: definitions.h:148
@ MOFEM_NOT_IMPLEMENTED
Definition: definitions.h:32
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:416
FTensor::Index< 'm', SPACE_DIM > m
#define MOFEM_LOG_CHANNEL(channel)
Set and reset channel.
Definition: LogManager.hpp:284
constexpr int BASE_DIM
constexpr AssemblyType A
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: