v0.13.0
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
MoFEM::PipelineManager Struct Reference

PipelineManager interface. More...

#include <src/interfaces/PipelineManager.hpp>

Inheritance diagram for MoFEM::PipelineManager:
[legend]
Collaboration diagram for MoFEM::PipelineManager:
[legend]

Public Types

enum  TSType { EX , IM , IM2 , IMEX }
 
using UserDataOperator = MoFEM::ForcesAndSourcesCore::UserDataOperator
 
using RuleHookFun = MoFEM::ForcesAndSourcesCore::RuleHookFun
 
using VolEle = MoFEM::VolumeElementForcesAndSourcesCore
 
using FaceEle = MoFEM::FaceElementForcesAndSourcesCore
 
using EdgeEle = MoFEM::EdgeElementForcesAndSourcesCore
 

Public Member Functions

MoFEMErrorCode query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const
 
 PipelineManager (const MoFEM::Core &core)
 
boost::shared_ptr< FEMethod > & getDomainLhsFE ()
 
boost::shared_ptr< FEMethod > & getDomainRhsFE ()
 
boost::shared_ptr< FEMethod > & getBoundaryLhsFE ()
 
boost::shared_ptr< FEMethod > & getBoundaryRhsFE ()
 
boost::shared_ptr< FEMethod > & getSkeletonLhsFE ()
 
boost::shared_ptr< FEMethod > & getSkeletonRhsFE ()
 
boost::shared_ptr< FEMethod > & getDomainExplicitRhsFE ()
 
boost::shared_ptr< FEMethod > & getBoundaryExplicitRhsFE ()
 
boost::shared_ptr< FEMethod > & getSkeletonExplicitRhsFE ()
 
template<int DIM = -1>
MoFEMErrorCode setDomainLhsIntegrationRule (RuleHookFun rule)
 
template<int DIM = -1>
MoFEMErrorCode setDomainRhsIntegrationRule (RuleHookFun rule)
 
template<int DIM = -1>
MoFEMErrorCode setBoundaryLhsIntegrationRule (RuleHookFun rule)
 
template<int DIM = -1>
MoFEMErrorCode setBoundaryRhsIntegrationRule (RuleHookFun rule)
 
template<int DIM = -1>
MoFEMErrorCode setSkeletonLhsIntegrationRule (RuleHookFun rule)
 
template<int DIM = -1>
MoFEMErrorCode setSkeletonRhsIntegrationRule (RuleHookFun rule)
 
template<int DIM = -1>
MoFEMErrorCode setDomainExplicitRhsIntegrationRule (RuleHookFun rule)
 
template<int DIM = -1>
MoFEMErrorCode setBoundaryExplicitRhsIntegrationRule (RuleHookFun rule)
 
template<int DIM = -1>
MoFEMErrorCode setSkeletonExplicitRhsIntegrationRule (RuleHookFun rule)
 
template<int DIM = -1>
boost::ptr_vector< UserDataOperator > & getOpDomainLhsPipeline ()
 Get the Op Domain Lhs Pipeline object. More...
 
template<int DIM = -1>
boost::ptr_vector< UserDataOperator > & getOpDomainRhsPipeline ()
 Get the Op Domain Rhs Pipeline object. More...
 
template<int DIM = -1>
boost::ptr_vector< UserDataOperator > & getOpBoundaryLhsPipeline ()
 Get the Op Boundary Lhs Pipeline object. More...
 
template<int DIM = -1>
boost::ptr_vector< UserDataOperator > & getOpBoundaryRhsPipeline ()
 Get the Op Boundary Rhs Pipeline object. More...
 
template<int DIM = -1>
boost::ptr_vector< UserDataOperator > & getOpSkeletonLhsPipeline ()
 Get the Op Skeleton Lhs Pipeline object. More...
 
template<int DIM = -1>
boost::ptr_vector< UserDataOperator > & getOpSkeletonRhsPipeline ()
 Get the Op Skeleton Rhs Pipeline object. More...
 
template<int DIM = -1>
boost::ptr_vector< UserDataOperator > & getOpDomainExplicitRhsPipeline ()
 Get the Op Domain Rhs Pipeline object for implicit-explicit G term. More...
 
template<int DIM = -1>
boost::ptr_vector< UserDataOperator > & getOpBoundaryExplicitRhsPipeline ()
 Get the Op Bondary Rhs Pipeline object for implicit-explicit G term. More...
 
template<int DIM = -1>
boost::ptr_vector< UserDataOperator > & getOpSkeletonExplicitRhsPipeline ()
 Get the Op Skeleton Rhs Pipeline object for implicit-explicit G term. More...
 
MoFEMErrorCode loopFiniteElements (SmartPetscObj< DM > dm=nullptr)
 Iterate finite elements. More...
 
SmartPetscObj< KSP > createKSP (SmartPetscObj< DM > dm=nullptr)
 Create KSP (linear) solver. More...
 
SmartPetscObj< SNES > createSNES (SmartPetscObj< DM > dm=nullptr)
 Create SNES (nonlinear) solver. More...
 
SmartPetscObj< TS > createTS (const TSType type, SmartPetscObj< DM > dm=nullptr)
 create TS (time) solver More...
 
SmartPetscObj< TS > createTSEX (SmartPetscObj< DM > dm=nullptr)
 Create TS (time) explit solver. More...
 
SmartPetscObj< TS > createTSIM (SmartPetscObj< DM > dm=nullptr)
 Create TS (time) implicit solver. More...
 
DEPRECATED auto createTS (SmartPetscObj< DM > dm=nullptr)
 
SmartPetscObj< TS > createTSIM2 (SmartPetscObj< DM > dm=nullptr)
 Create TS (time) solver for second order equation in time. More...
 
DEPRECATED auto createTS2 (SmartPetscObj< DM > dm=nullptr)
 
SmartPetscObj< TS > createTSIMEX (SmartPetscObj< DM > dm=nullptr)
 Create TS (time) implicit-explicit solver. More...
 
template<>
MoFEMErrorCode setDomainLhsIntegrationRule (PipelineManager::RuleHookFun rule)
 
template<>
MoFEMErrorCode setDomainRhsIntegrationRule (PipelineManager::RuleHookFun rule)
 
template<>
MoFEMErrorCode setBoundaryLhsIntegrationRule (PipelineManager::RuleHookFun rule)
 
template<>
MoFEMErrorCode setBoundaryRhsIntegrationRule (PipelineManager::RuleHookFun rule)
 
template<>
MoFEMErrorCode setSkeletonLhsIntegrationRule (PipelineManager::RuleHookFun rule)
 
template<>
MoFEMErrorCode setSkeletonRhsIntegrationRule (PipelineManager::RuleHookFun rule)
 
template<>
MoFEMErrorCode setDomainExplicitRhsIntegrationRule (PipelineManager::RuleHookFun rule)
 
template<>
MoFEMErrorCode setBoundaryExplicitRhsIntegrationRule (PipelineManager::RuleHookFun rule)
 
template<>
MoFEMErrorCode setSkeletonExplicitRhsIntegrationRule (PipelineManager::RuleHookFun rule)
 
template<>
boost::ptr_vector< PipelineManager::UserDataOperator > & getOpDomainLhsPipeline ()
 
template<>
boost::ptr_vector< PipelineManager::UserDataOperator > & getOpDomainRhsPipeline ()
 
template<>
boost::ptr_vector< PipelineManager::UserDataOperator > & getOpBoundaryLhsPipeline ()
 
template<>
boost::ptr_vector< PipelineManager::UserDataOperator > & getOpBoundaryRhsPipeline ()
 
template<>
boost::ptr_vector< PipelineManager::UserDataOperator > & getOpSkeletonLhsPipeline ()
 
template<>
boost::ptr_vector< PipelineManager::UserDataOperator > & getOpSkeletonRhsPipeline ()
 
template<>
boost::ptr_vector< PipelineManager::UserDataOperator > & getOpDomainExplicitRhsPipeline ()
 
template<>
boost::ptr_vector< PipelineManager::UserDataOperator > & getOpBoundaryExplicitRhsPipeline ()
 
template<>
boost::ptr_vector< PipelineManager::UserDataOperator > & getOpSkeletonExplicitRhsPipeline ()
 
- Public Member Functions inherited from MoFEM::UnknownInterface
template<class IFACE >
MoFEMErrorCode registerInterface (bool error_if_registration_failed=true)
 Register interface. More...
 
template<class IFACE >
MoFEMErrorCode getInterface (IFACE *&iface) const
 Get interface refernce to pointer of interface. More...
 
template<class IFACE >
MoFEMErrorCode getInterface (IFACE **const iface) const
 Get interface pointer to pointer of interface. More...
 
template<class IFACE , typename boost::enable_if< boost::is_pointer< IFACE >, int >::type = 0>
IFACE getInterface () const
 Get interface pointer to pointer of interface. More...
 
template<class IFACE , typename boost::enable_if< boost::is_reference< IFACE >, int >::type = 0>
IFACE getInterface () const
 Get reference to interface. More...
 
template<class IFACE >
IFACE * getInterface () const
 Function returning pointer to interface. More...
 
virtual ~UnknownInterface ()=default
 

Private Member Functions

template<int DIM>
boost::shared_ptr< FEMethod > & createDomainFEPipeline (boost::shared_ptr< FEMethod > &fe)
 
template<int DIM>
boost::shared_ptr< FEMethod > & createBoundaryFEPipeline (boost::shared_ptr< FEMethod > &fe)
 
template<>
boost::shared_ptr< FEMethod > & createDomainFEPipeline (boost::shared_ptr< FEMethod > &fe)
 
template<>
boost::shared_ptr< FEMethod > & createDomainFEPipeline (boost::shared_ptr< FEMethod > &fe)
 
template<>
boost::shared_ptr< FEMethod > & createDomainFEPipeline (boost::shared_ptr< FEMethod > &fe)
 
template<>
boost::shared_ptr< FEMethod > & createBoundaryFEPipeline (boost::shared_ptr< FEMethod > &fe)
 
template<>
boost::shared_ptr< FEMethod > & createBoundaryFEPipeline (boost::shared_ptr< FEMethod > &fe)
 
template<>
boost::shared_ptr< FEMethod > & createBoundaryFEPipeline (boost::shared_ptr< FEMethod > &fe)
 

Private Attributes

MoFEM::CorecOre
 
boost::shared_ptr< FEMethodfeDomainRhs
 Element to assemble RHS side by integrating domain. More...
 
boost::shared_ptr< FEMethodfeDomainLhs
 Element to assemble LHS side by integrating domain. More...
 
boost::shared_ptr< FEMethodfeBoundaryRhs
 Element to assemble RHS side by integrating boundary. More...
 
boost::shared_ptr< FEMethodfeBoundaryLhs
 Element to assemble LHS side by integrating boundary. More...
 
boost::shared_ptr< FEMethodfeSkeletonRhs
 Element to assemble RHS side by integrating skeleton. More...
 
boost::shared_ptr< FEMethodfeSkeletonLhs
 Element to assemble LHS side by integrating skeleton. More...
 
boost::shared_ptr< FEMethodfeDomainExplicitRhs
 Element to assemble explict Rhs for IMEX solver. More...
 
boost::shared_ptr< FEMethodfeBoundaryExplicitRhs
 
boost::shared_ptr< FEMethodfeSkeletonExplicitRhs
 

Additional Inherited Members

- Static Public Member Functions inherited from MoFEM::UnknownInterface
static MoFEMErrorCode getLibVersion (Version &version)
 Get library version. More...
 
static MoFEMErrorCode getFileVersion (moab::Interface &moab, Version &version)
 Get database major version. More...
 
static MoFEMErrorCode setFileVersion (moab::Interface &moab, Version version=Version(MoFEM_VERSION_MAJOR, MoFEM_VERSION_MINOR, MoFEM_VERSION_BUILD))
 Get database major version. More...
 
static MoFEMErrorCode getInterfaceVersion (Version &version)
 Get database major version. More...
 

Detailed Description

PipelineManager interface.

Definition at line 33 of file PipelineManager.hpp.

Member Typedef Documentation

◆ EdgeEle

◆ FaceEle

◆ RuleHookFun

Definition at line 41 of file PipelineManager.hpp.

◆ UserDataOperator

Definition at line 40 of file PipelineManager.hpp.

◆ VolEle

Definition at line 43 of file PipelineManager.hpp.

Member Enumeration Documentation

◆ TSType

Constructor & Destructor Documentation

◆ PipelineManager()

MoFEM::PipelineManager::PipelineManager ( const MoFEM::Core core)

Definition at line 29 of file PipelineManager.cpp.

30  : cOre(const_cast<Core &>(core)) {}
CoreTmp< 0 > Core
Definition: Core.hpp:1096

Member Function Documentation

◆ createBoundaryFEPipeline() [1/4]

template<int DIM>
boost::shared_ptr< FEMethod > & MoFEM::PipelineManager::createBoundaryFEPipeline ( boost::shared_ptr< FEMethod > &  fe)
private

Definition at line 338 of file PipelineManager.hpp.

338  {
339  static_assert(DIM == 1 || DIM == 2 || DIM == 3, "not implemented");
340  fe = boost::make_shared<FEMethod>();
341  return fe;
342 }

◆ createBoundaryFEPipeline() [2/4]

template<>
boost::shared_ptr<FEMethod>& MoFEM::PipelineManager::createBoundaryFEPipeline ( boost::shared_ptr< FEMethod > &  fe)
private

Definition at line 338 of file PipelineManager.hpp.

346  {
347  if (!fe)
348  fe = boost::make_shared<FaceElementForcesAndSourcesCore>(cOre);
349  return fe;
350 }

◆ createBoundaryFEPipeline() [3/4]

template<>
boost::shared_ptr<FEMethod>& MoFEM::PipelineManager::createBoundaryFEPipeline ( boost::shared_ptr< FEMethod > &  fe)
private

Definition at line 338 of file PipelineManager.hpp.

354  {
355  if (!fe)
356  fe = boost::make_shared<EdgeEle>(cOre);
357  return fe;
358 }

◆ createBoundaryFEPipeline() [4/4]

template<>
boost::shared_ptr<FEMethod>& MoFEM::PipelineManager::createBoundaryFEPipeline ( boost::shared_ptr< FEMethod > &  fe)
private

Definition at line 338 of file PipelineManager.hpp.

362  {
363  if (!fe)
364  fe = boost::make_shared<VertexElementForcesAndSourcesCore>(cOre);
365  return fe;
366 }

◆ createDomainFEPipeline() [1/4]

template<int DIM>
boost::shared_ptr< FEMethod > & MoFEM::PipelineManager::createDomainFEPipeline ( boost::shared_ptr< FEMethod > &  fe)
private

Definition at line 306 of file PipelineManager.hpp.

306  {
307  static_assert(DIM == 1 || DIM == 2 || DIM == 3, "not implemented");
308  fe = boost::make_shared<FEMethod>();
309  return fe;
310 }

◆ createDomainFEPipeline() [2/4]

template<>
boost::shared_ptr<FEMethod>& MoFEM::PipelineManager::createDomainFEPipeline ( boost::shared_ptr< FEMethod > &  fe)
private

Definition at line 306 of file PipelineManager.hpp.

322  {
323  if (!fe)
324  fe = boost::make_shared<FaceEle>(cOre);
325  return fe;
326 }

◆ createDomainFEPipeline() [3/4]

template<>
boost::shared_ptr<FEMethod>& MoFEM::PipelineManager::createDomainFEPipeline ( boost::shared_ptr< FEMethod > &  fe)
private

Definition at line 306 of file PipelineManager.hpp.

330  {
331  if (!fe)
332  fe = boost::make_shared<EdgeEle>(cOre);
333  return fe;
334 }

◆ createDomainFEPipeline() [4/4]

template<>
boost::shared_ptr<FEMethod>& MoFEM::PipelineManager::createDomainFEPipeline ( boost::shared_ptr< FEMethod > &  fe)
private

Definition at line 306 of file PipelineManager.hpp.

314  {
315  if (!fe)
316  fe = boost::make_shared<VolEle>(cOre);
317  return fe;
318 }

◆ createTS() [1/2]

SmartPetscObj< TS > MoFEM::PipelineManager::createTS ( const TSType  type,
SmartPetscObj< DM >  dm = nullptr 
)

create TS (time) solver

Parameters
typeType of time solver PipelineManager:EX/IM/IM2/IMEX
dm
Returns
SmartPetscObj<TS>

Definition at line 186 of file PipelineManager.cpp.

187  {
188  switch (type) {
189  case EX:
190  return createTSEX(dm);
191  break;
192  case IM:
193  return createTSIM(dm);
194  break;
195  case IM2:
196  return createTSIM2(dm);
197  break;
198  case IMEX:
199  return createTSIMEX(dm);
200  break;
201  default:
203  "TS solver handling not implemented");
204  break;
205  }
206  return SmartPetscObj<TS>();
207 }
#define CHK_THROW_MESSAGE(err, msg)
Check and throw MoFEM exception.
Definition: definitions.h:608
@ MOFEM_NOT_IMPLEMENTED
Definition: definitions.h:45
SmartPetscObj< TS > createTSIM(SmartPetscObj< DM > dm=nullptr)
Create TS (time) implicit solver.
SmartPetscObj< TS > createTSIM2(SmartPetscObj< DM > dm=nullptr)
Create TS (time) solver for second order equation in time.
SmartPetscObj< TS > createTSIMEX(SmartPetscObj< DM > dm=nullptr)
Create TS (time) implicit-explicit solver.
SmartPetscObj< TS > createTSEX(SmartPetscObj< DM > dm=nullptr)
Create TS (time) explit solver.

◆ createTS() [2/2]

DEPRECATED auto MoFEM::PipelineManager::createTS ( SmartPetscObj< DM >  dm = nullptr)
Deprecated:
Use version with explicit TS solver type

Definition at line 241 of file PipelineManager.hpp.

241  {
242  return createTSIM(dm);
243  }

◆ createTS2()

DEPRECATED auto MoFEM::PipelineManager::createTS2 ( SmartPetscObj< DM >  dm = nullptr)
Deprecated:
Change name. Use createTSIM2 instead.

Definition at line 257 of file PipelineManager.hpp.

257  {
258  return createTSIM2(dm);
259  }

◆ getBoundaryExplicitRhsFE()

boost::shared_ptr< FEMethod > & MoFEM::PipelineManager::getBoundaryExplicitRhsFE ( )

Definition at line 396 of file PipelineManager.hpp.

396  {
397  return feBoundaryExplicitRhs;
398 }
boost::shared_ptr< FEMethod > feBoundaryExplicitRhs

◆ getBoundaryLhsFE()

boost::shared_ptr< FEMethod > & MoFEM::PipelineManager::getBoundaryLhsFE ( )

Definition at line 376 of file PipelineManager.hpp.

376  {
377  return feBoundaryLhs;
378 }
boost::shared_ptr< FEMethod > feBoundaryLhs
Element to assemble LHS side by integrating boundary.

◆ getBoundaryRhsFE()

boost::shared_ptr< FEMethod > & MoFEM::PipelineManager::getBoundaryRhsFE ( )

Definition at line 380 of file PipelineManager.hpp.

380  {
381  return feBoundaryRhs;
382 }
boost::shared_ptr< FEMethod > feBoundaryRhs
Element to assemble RHS side by integrating boundary.

◆ getDomainExplicitRhsFE()

boost::shared_ptr< FEMethod > & MoFEM::PipelineManager::getDomainExplicitRhsFE ( )

Definition at line 392 of file PipelineManager.hpp.

392  {
393  return feDomainExplicitRhs;
394 }
boost::shared_ptr< FEMethod > feDomainExplicitRhs
Element to assemble explict Rhs for IMEX solver.

◆ getDomainLhsFE()

boost::shared_ptr< FEMethod > & MoFEM::PipelineManager::getDomainLhsFE ( )

Definition at line 368 of file PipelineManager.hpp.

368  {
369  return feDomainLhs;
370 }
boost::shared_ptr< FEMethod > feDomainLhs
Element to assemble LHS side by integrating domain.

◆ getDomainRhsFE()

boost::shared_ptr< FEMethod > & MoFEM::PipelineManager::getDomainRhsFE ( )

Definition at line 372 of file PipelineManager.hpp.

372  {
373  return feDomainRhs;
374 }
boost::shared_ptr< FEMethod > feDomainRhs
Element to assemble RHS side by integrating domain.

◆ getOpBoundaryExplicitRhsPipeline()

template<>
boost::ptr_vector<PipelineManager::UserDataOperator>& MoFEM::PipelineManager::getOpBoundaryExplicitRhsPipeline ( )

Definition at line 819 of file PipelineManager.hpp.

827  {
828  switch (cOre.getInterface<Simple>()->getDim()) {
829  case 1:
830  return getOpBoundaryExplicitRhsPipeline<1>();
831  case 2:
832  return getOpBoundaryExplicitRhsPipeline<2>();
833  case 3:
834  break;
835  default:
836  THROW_MESSAGE("Not implemented");
837  }
838  return getOpBoundaryExplicitRhsPipeline<3>();
839 }
#define THROW_MESSAGE(msg)
Throw MoFEM exception.
Definition: definitions.h:574
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface refernce to pointer of interface.

◆ getOpBoundaryLhsPipeline()

template<>
boost::ptr_vector<PipelineManager::UserDataOperator>& MoFEM::PipelineManager::getOpBoundaryLhsPipeline ( )

Definition at line 699 of file PipelineManager.hpp.

707  {
708  switch (cOre.getInterface<Simple>()->getDim()) {
709  case 1:
710  return getOpBoundaryLhsPipeline<1>();
711  case 2:
712  return getOpBoundaryLhsPipeline<2>();
713  case 3:
714  break;
715  default:
716  THROW_MESSAGE("Not implemented");
717  }
718  return getOpBoundaryLhsPipeline<3>();
719 }

◆ getOpBoundaryRhsPipeline()

template<>
boost::ptr_vector<PipelineManager::UserDataOperator>& MoFEM::PipelineManager::getOpBoundaryRhsPipeline ( )

Definition at line 723 of file PipelineManager.hpp.

731  {
732  switch (cOre.getInterface<Simple>()->getDim()) {
733  case 1:
734  return getOpBoundaryRhsPipeline<1>();
735  case 2:
736  return getOpBoundaryRhsPipeline<2>();
737  case 3:
738  break;
739  default:
740  THROW_MESSAGE("Not implemented");
741  }
742  return getOpBoundaryRhsPipeline<3>();
743 }

◆ getOpDomainExplicitRhsPipeline()

template<>
boost::ptr_vector<PipelineManager::UserDataOperator>& MoFEM::PipelineManager::getOpDomainExplicitRhsPipeline ( )

Definition at line 795 of file PipelineManager.hpp.

803  {
804  switch (cOre.getInterface<Simple>()->getDim()) {
805  case 1:
806  return getOpDomainExplicitRhsPipeline<1>();
807  case 2:
808  return getOpDomainExplicitRhsPipeline<2>();
809  case 3:
810  break;
811  default:
812  THROW_MESSAGE("Not implemented");
813  }
814  return getOpDomainExplicitRhsPipeline<3>();
815 }

◆ getOpDomainLhsPipeline()

template<>
boost::ptr_vector<PipelineManager::UserDataOperator>& MoFEM::PipelineManager::getOpDomainLhsPipeline ( )

Definition at line 651 of file PipelineManager.hpp.

659  {
660  switch (cOre.getInterface<Simple>()->getDim()) {
661  case 1:
662  return getOpDomainLhsPipeline<1>();
663  case 2:
664  return getOpDomainLhsPipeline<2>();
665  case 3:
666  break;
667  default:
668  THROW_MESSAGE("Not implemented");
669  }
670  return getOpDomainLhsPipeline<3>();
671 }

◆ getOpDomainRhsPipeline()

template<>
boost::ptr_vector<PipelineManager::UserDataOperator>& MoFEM::PipelineManager::getOpDomainRhsPipeline ( )

Definition at line 675 of file PipelineManager.hpp.

683  {
684  switch (cOre.getInterface<Simple>()->getDim()) {
685  case 1:
686  return getOpDomainRhsPipeline<1>();
687  case 2:
688  return getOpDomainRhsPipeline<2>();
689  case 3:
690  break;
691  default:
692  THROW_MESSAGE("Not implemented");
693  }
694  return getOpDomainRhsPipeline<3>();
695 }

◆ getOpSkeletonExplicitRhsPipeline()

template<>
boost::ptr_vector<PipelineManager::UserDataOperator>& MoFEM::PipelineManager::getOpSkeletonExplicitRhsPipeline ( )

Definition at line 843 of file PipelineManager.hpp.

851  {
852  switch (cOre.getInterface<Simple>()->getDim()) {
853  case 1:
854  return getOpSkeletonExplicitRhsPipeline<1>();
855  case 2:
856  return getOpSkeletonExplicitRhsPipeline<2>();
857  case 3:
858  break;
859  default:
860  THROW_MESSAGE("Not implemented");
861  }
862  return getOpSkeletonExplicitRhsPipeline<3>();
863 }

◆ getOpSkeletonLhsPipeline()

template<>
boost::ptr_vector<PipelineManager::UserDataOperator>& MoFEM::PipelineManager::getOpSkeletonLhsPipeline ( )

Definition at line 747 of file PipelineManager.hpp.

755  {
756  switch (cOre.getInterface<Simple>()->getDim()) {
757  case 1:
758  return getOpSkeletonLhsPipeline<1>();
759  case 2:
760  return getOpSkeletonLhsPipeline<2>();
761  case 3:
762  break;
763  default:
764  THROW_MESSAGE("Not implemented");
765  }
766  return getOpSkeletonLhsPipeline<3>();
767 }

◆ getOpSkeletonRhsPipeline()

template<>
boost::ptr_vector<PipelineManager::UserDataOperator>& MoFEM::PipelineManager::getOpSkeletonRhsPipeline ( )

Definition at line 771 of file PipelineManager.hpp.

779  {
780  switch (cOre.getInterface<Simple>()->getDim()) {
781  case 1:
782  return getOpSkeletonRhsPipeline<1>();
783  case 2:
784  return getOpSkeletonRhsPipeline<2>();
785  case 3:
786  break;
787  default:
788  THROW_MESSAGE("Not implemented");
789  }
790  return getOpSkeletonRhsPipeline<3>();
791 }

◆ getSkeletonExplicitRhsFE()

boost::shared_ptr< FEMethod > & MoFEM::PipelineManager::getSkeletonExplicitRhsFE ( )

Definition at line 400 of file PipelineManager.hpp.

400  {
401  return feSkeletonExplicitRhs;
402 }
boost::shared_ptr< FEMethod > feSkeletonExplicitRhs

◆ getSkeletonLhsFE()

boost::shared_ptr< FEMethod > & MoFEM::PipelineManager::getSkeletonLhsFE ( )

Definition at line 384 of file PipelineManager.hpp.

384  {
385  return feSkeletonLhs;
386 }
boost::shared_ptr< FEMethod > feSkeletonLhs
Element to assemble LHS side by integrating skeleton.

◆ getSkeletonRhsFE()

boost::shared_ptr< FEMethod > & MoFEM::PipelineManager::getSkeletonRhsFE ( )

Definition at line 388 of file PipelineManager.hpp.

388  {
389  return feSkeletonRhs;
390 }
boost::shared_ptr< FEMethod > feSkeletonRhs
Element to assemble RHS side by integrating skeleton.

◆ query_interface()

MoFEMErrorCode MoFEM::PipelineManager::query_interface ( boost::typeindex::type_index  type_index,
UnknownInterface **  iface 
) const
virtual

Implements MoFEM::UnknownInterface.

Definition at line 23 of file PipelineManager.cpp.

24  {
25  *iface = const_cast<PipelineManager *>(this);
26  return 0;
27 }
PipelineManager(const MoFEM::Core &core)

◆ setBoundaryExplicitRhsIntegrationRule() [1/2]

template<>
MoFEMErrorCode MoFEM::PipelineManager::setBoundaryExplicitRhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 604 of file PipelineManager.hpp.

606  {
608  switch (cOre.getInterface<Simple>()->getDim()) {
609  case 1:
610  return setBoundaryExplicitRhsIntegrationRule<1>(rule);
611  case 2:
612  return setBoundaryExplicitRhsIntegrationRule<2>(rule);
613  case 3:
614  return setBoundaryExplicitRhsIntegrationRule<3>(rule);
615  default:
616  THROW_MESSAGE("Not implemented");
617  }
619 }
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:359
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:429

◆ setBoundaryExplicitRhsIntegrationRule() [2/2]

template<int DIM>
MoFEMErrorCode MoFEM::PipelineManager::setBoundaryExplicitRhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 594 of file PipelineManager.hpp.

595  {
597  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
598  createBoundaryFEPipeline<DIM>(feBoundaryExplicitRhs))
599  ->getRuleHook = rule;
601 }

◆ setBoundaryLhsIntegrationRule() [1/2]

template<>
MoFEMErrorCode MoFEM::PipelineManager::setBoundaryLhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 469 of file PipelineManager.hpp.

470  {
472  switch (cOre.getInterface<Simple>()->getDim()) {
473  case 1:
474  return setBoundaryLhsIntegrationRule<1>(rule);
475  case 2:
476  return setBoundaryLhsIntegrationRule<2>(rule);
477  case 3:
478  return setBoundaryLhsIntegrationRule<3>(rule);
479  default:
480  THROW_MESSAGE("Not implemented");
481  }
483 }

◆ setBoundaryLhsIntegrationRule() [2/2]

template<int DIM>
MoFEMErrorCode MoFEM::PipelineManager::setBoundaryLhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 459 of file PipelineManager.hpp.

460  {
462  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
463  createBoundaryFEPipeline<DIM>(feBoundaryLhs))
464  ->getRuleHook = rule;
466 }

◆ setBoundaryRhsIntegrationRule() [1/2]

template<>
MoFEMErrorCode MoFEM::PipelineManager::setBoundaryRhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 496 of file PipelineManager.hpp.

497  {
499  switch (cOre.getInterface<Simple>()->getDim()) {
500  case 1:
501  return setBoundaryRhsIntegrationRule<1>(rule);
502  case 2:
503  return setBoundaryRhsIntegrationRule<2>(rule);
504  case 3:
505  return setBoundaryRhsIntegrationRule<3>(rule);
506  default:
507  THROW_MESSAGE("Not implemented");
508  }
510 }

◆ setBoundaryRhsIntegrationRule() [2/2]

template<int DIM>
MoFEMErrorCode MoFEM::PipelineManager::setBoundaryRhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 486 of file PipelineManager.hpp.

487  {
489  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
490  createBoundaryFEPipeline<DIM>(feBoundaryRhs))
491  ->getRuleHook = rule;
493 }

◆ setDomainExplicitRhsIntegrationRule() [1/2]

template<>
MoFEMErrorCode MoFEM::PipelineManager::setDomainExplicitRhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 577 of file PipelineManager.hpp.

578  {
580  switch (cOre.getInterface<Simple>()->getDim()) {
581  case 1:
582  return setDomainExplicitRhsIntegrationRule<1>(rule);
583  case 2:
584  return setDomainExplicitRhsIntegrationRule<2>(rule);
585  case 3:
586  return setDomainExplicitRhsIntegrationRule<3>(rule);
587  default:
588  THROW_MESSAGE("Not implemented");
589  }
591 }

◆ setDomainExplicitRhsIntegrationRule() [2/2]

template<int DIM>
MoFEMErrorCode MoFEM::PipelineManager::setDomainExplicitRhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 567 of file PipelineManager.hpp.

568  {
570  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
571  createDomainFEPipeline<DIM>(feDomainExplicitRhs))
572  ->getRuleHook = rule;
574 }

◆ setDomainLhsIntegrationRule() [1/2]

template<>
MoFEMErrorCode MoFEM::PipelineManager::setDomainLhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 415 of file PipelineManager.hpp.

416  {
418  switch (cOre.getInterface<Simple>()->getDim()) {
419  case 1:
420  return setDomainLhsIntegrationRule<1>(rule);
421  case 2:
422  return setDomainLhsIntegrationRule<2>(rule);
423  case 3:
424  return setDomainLhsIntegrationRule<3>(rule);
425  default:
426  THROW_MESSAGE("Not implemented");
427  }
429 }

◆ setDomainLhsIntegrationRule() [2/2]

template<int DIM>
MoFEMErrorCode MoFEM::PipelineManager::setDomainLhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 405 of file PipelineManager.hpp.

406  {
408  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
409  createDomainFEPipeline<DIM>(feDomainLhs))
410  ->getRuleHook = rule;
412 }

◆ setDomainRhsIntegrationRule() [1/2]

template<>
MoFEMErrorCode MoFEM::PipelineManager::setDomainRhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 442 of file PipelineManager.hpp.

443  {
445  switch (cOre.getInterface<Simple>()->getDim()) {
446  case 1:
447  return setDomainRhsIntegrationRule<1>(rule);
448  case 2:
449  return setDomainRhsIntegrationRule<2>(rule);
450  case 3:
451  return setDomainRhsIntegrationRule<3>(rule);
452  default:
453  THROW_MESSAGE("Not implemented");
454  }
456 }

◆ setDomainRhsIntegrationRule() [2/2]

template<int DIM>
MoFEMErrorCode MoFEM::PipelineManager::setDomainRhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 432 of file PipelineManager.hpp.

433  {
435  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
436  createDomainFEPipeline<DIM>(feDomainRhs))
437  ->getRuleHook = rule;
439 }

◆ setSkeletonExplicitRhsIntegrationRule() [1/2]

template<>
MoFEMErrorCode MoFEM::PipelineManager::setSkeletonExplicitRhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 632 of file PipelineManager.hpp.

634  {
636  switch (cOre.getInterface<Simple>()->getDim()) {
637  case 1:
638  return setSkeletonExplicitRhsIntegrationRule<1>(rule);
639  case 2:
640  return setSkeletonExplicitRhsIntegrationRule<2>(rule);
641  case 3:
642  return setSkeletonExplicitRhsIntegrationRule<3>(rule);
643  default:
644  THROW_MESSAGE("Not implemented");
645  }
647 }

◆ setSkeletonExplicitRhsIntegrationRule() [2/2]

template<int DIM>
MoFEMErrorCode MoFEM::PipelineManager::setSkeletonExplicitRhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 622 of file PipelineManager.hpp.

623  {
625  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
626  createBoundaryFEPipeline<DIM>(feSkeletonExplicitRhs))
627  ->getRuleHook = rule;
629 }

◆ setSkeletonLhsIntegrationRule() [1/2]

template<>
MoFEMErrorCode MoFEM::PipelineManager::setSkeletonLhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 523 of file PipelineManager.hpp.

524  {
526  switch (cOre.getInterface<Simple>()->getDim()) {
527  case 1:
528  return setSkeletonLhsIntegrationRule<1>(rule);
529  case 2:
530  return setSkeletonLhsIntegrationRule<2>(rule);
531  case 3:
532  return setSkeletonLhsIntegrationRule<3>(rule);
533  default:
534  THROW_MESSAGE("Not implemented");
535  }
537 }

◆ setSkeletonLhsIntegrationRule() [2/2]

template<int DIM>
MoFEMErrorCode MoFEM::PipelineManager::setSkeletonLhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 513 of file PipelineManager.hpp.

514  {
516  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
517  createBoundaryFEPipeline<DIM>(feSkeletonLhs))
518  ->getRuleHook = rule;
520 }

◆ setSkeletonRhsIntegrationRule() [1/2]

template<>
MoFEMErrorCode MoFEM::PipelineManager::setSkeletonRhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 550 of file PipelineManager.hpp.

551  {
553  switch (cOre.getInterface<Simple>()->getDim()) {
554  case 1:
555  return setSkeletonRhsIntegrationRule<1>(rule);
556  case 2:
557  return setSkeletonRhsIntegrationRule<2>(rule);
558  case 3:
559  return setSkeletonRhsIntegrationRule<3>(rule);
560  default:
561  THROW_MESSAGE("Not implemented");
562  }
564 }

◆ setSkeletonRhsIntegrationRule() [2/2]

template<int DIM>
MoFEMErrorCode MoFEM::PipelineManager::setSkeletonRhsIntegrationRule ( PipelineManager::RuleHookFun  rule)

Definition at line 540 of file PipelineManager.hpp.

541  {
543  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
544  createBoundaryFEPipeline<DIM>(feSkeletonRhs))
545  ->getRuleHook = rule;
547 }

Member Data Documentation

◆ cOre

MoFEM::Core& MoFEM::PipelineManager::cOre
private

Definition at line 271 of file PipelineManager.hpp.

◆ feBoundaryExplicitRhs

boost::shared_ptr<FEMethod> MoFEM::PipelineManager::feBoundaryExplicitRhs
private

Element to assemble explict Rhs for IMEX solver

Definition at line 289 of file PipelineManager.hpp.

◆ feBoundaryLhs

boost::shared_ptr<FEMethod> MoFEM::PipelineManager::feBoundaryLhs
private

Element to assemble LHS side by integrating boundary.

Definition at line 280 of file PipelineManager.hpp.

◆ feBoundaryRhs

boost::shared_ptr<FEMethod> MoFEM::PipelineManager::feBoundaryRhs
private

Element to assemble RHS side by integrating boundary.

Definition at line 278 of file PipelineManager.hpp.

◆ feDomainExplicitRhs

boost::shared_ptr<FEMethod> MoFEM::PipelineManager::feDomainExplicitRhs
private

Element to assemble explict Rhs for IMEX solver.

Definition at line 287 of file PipelineManager.hpp.

◆ feDomainLhs

boost::shared_ptr<FEMethod> MoFEM::PipelineManager::feDomainLhs
private

Element to assemble LHS side by integrating domain.

Definition at line 276 of file PipelineManager.hpp.

◆ feDomainRhs

boost::shared_ptr<FEMethod> MoFEM::PipelineManager::feDomainRhs
private

Element to assemble RHS side by integrating domain.

Definition at line 274 of file PipelineManager.hpp.

◆ feSkeletonExplicitRhs

boost::shared_ptr<FEMethod> MoFEM::PipelineManager::feSkeletonExplicitRhs
private

Element to assemble explict Rhs for IMEX solver

Definition at line 292 of file PipelineManager.hpp.

◆ feSkeletonLhs

boost::shared_ptr<FEMethod> MoFEM::PipelineManager::feSkeletonLhs
private

Element to assemble LHS side by integrating skeleton.

Definition at line 284 of file PipelineManager.hpp.

◆ feSkeletonRhs

boost::shared_ptr<FEMethod> MoFEM::PipelineManager::feSkeletonRhs
private

Element to assemble RHS side by integrating skeleton.

Definition at line 282 of file PipelineManager.hpp.


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