v0.13.2
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< BLOCKSET >, 1, FIELD_DIM, A, I, OpBase > Struct Template Reference

#include <src/boundary_conditions/NaturalMeshsetType.hpp>

Inheritance diagram for MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< BLOCKSET >, 1, FIELD_DIM, A, I, OpBase >:
[legend]
Collaboration diagram for MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< BLOCKSET >, 1, FIELD_DIM, A, I, OpBase >:
[legend]

Public Member Functions

 OpFluxRhsImpl (MoFEM::Interface &m_field, int ms_id, const std::string field_name, std::vector< boost::shared_ptr< TimeScaleVector< FIELD_DIM > > > smv)
 
- Public Member Functions inherited from MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >
 OpFluxRhsImpl (const std::string field_name, FTensor::Tensor1< double, FIELD_DIM > t_force, boost::shared_ptr< Range > ents_ptr, std::vector< boost::shared_ptr< TimeScaleVector< FIELD_DIM > > > smv)
 Function to push operators to rhs pipeline. This function user API. More...
 

Protected Member Functions

MoFEMErrorCode getMeshsetData (MoFEM::Interface &m_field, int ms_id)
 
- Protected Member Functions inherited from MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >
 OpFluxRhsImpl (const std::string field_name, std::vector< boost::shared_ptr< TimeScaleVector< FIELD_DIM > > > smv)
 

Additional Inherited Members

- Public Types inherited from MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >
using OpSource = typename FormsIntegrators< OpBase >::template Assembly< A >::template LinearForm< I >::template OpSource< 1, FIELD_DIM >
 
- Protected Attributes inherited from MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >
FTensor::Tensor1< double, FIELD_DIMtForce
 
VecOfTimeVectorScalingMethods< FIELD_DIMvecOfTimeVectorScalingMethods
 

Detailed Description

template<int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase>
struct MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< BLOCKSET >, 1, FIELD_DIM, A, I, OpBase >

Definition at line 211 of file NaturalMeshsetType.hpp.

Constructor & Destructor Documentation

◆ OpFluxRhsImpl()

template<int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< BLOCKSET >, 1, FIELD_DIM, A, I, OpBase >::OpFluxRhsImpl ( MoFEM::Interface m_field,
int  ms_id,
const std::string  field_name,
std::vector< boost::shared_ptr< TimeScaleVector< FIELD_DIM > > >  smv 
)

Definition at line 661 of file NaturalMeshsetType.hpp.

665 : OpFluxRhsImpl<NaturalMeshsetTypeVectorScaling<UNKNOWNSET>, 1, FIELD_DIM,
666 A, I, OpBase>(field_name, smv) {
667 CHK_THROW_MESSAGE(getMeshsetData(m_field, ms_id), "Get meshset data");
668}
constexpr int FIELD_DIM
#define CHK_THROW_MESSAGE(err, msg)
Check and throw MoFEM exception.
Definition: definitions.h:595
constexpr IntegrationType I
constexpr AssemblyType A
constexpr auto field_name

Member Function Documentation

◆ getMeshsetData()

template<int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
MoFEMErrorCode MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< BLOCKSET >, 1, FIELD_DIM, A, I, OpBase >::getMeshsetData ( MoFEM::Interface m_field,
int  ms_id 
)
protected

Definition at line 673 of file NaturalMeshsetType.hpp.

673 {
675
676 auto cubit_meshset_ptr =
677 m_field.getInterface<MeshsetsManager>()->getCubitMeshsetPtr(ms_id,
678 BLOCKSET);
679
680 std::vector<double> block_data;
681 CHKERR cubit_meshset_ptr->getAttributes(block_data);
682 if (block_data.size() != FIELD_DIM) {
683 MOFEM_LOG("SELF", Sev::warning)
684 << "BLOCKSET is expected to have " << FIELD_DIM
685 << " attributes but has size " << block_data.size();
686 if (block_data.size() < FIELD_DIM) {
687
688 SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
689 "Size of attribute in BLOCKSET is too small");
690 }
691 }
692
693 for (unsigned int ii = 0; ii != FIELD_DIM; ++ii) {
694 this->tForce(ii) = block_data[ii];
695 }
696
697 MOFEM_LOG("WORLD", Sev::inform)
698 << "Flux blockset " << cubit_meshset_ptr->getName();
699 MOFEM_LOG("WORLD", Sev::inform)
700 << "Number of attributes " << block_data.size();
701 MOFEM_LOG("WORLD", Sev::inform)
702 << "tForce vector initialised: " << this->tForce;
703
704 this->entsPtr = boost::make_shared<Range>();
705 CHKERR m_field.get_moab().get_entities_by_handle(cubit_meshset_ptr->meshset,
706 *(this->entsPtr), true);
707
709}
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:346
@ BLOCKSET
Definition: definitions.h:148
@ MOFEM_DATA_INCONSISTENCY
Definition: definitions.h:31
#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 MOFEM_LOG(channel, severity)
Log.
Definition: LogManager.hpp:308
virtual moab::Interface & get_moab()=0
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface refernce to pointer of interface.

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