v0.10.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

using UserDataOperator = MoFEM::ForcesAndSourcesCore::UserDataOperator
 
using RuleHookFun = MoFEM::ForcesAndSourcesCore::RuleHookFun
 
using FaceEle2D = MoFEM::FaceElementForcesAndSourcesCoreSwitch< FaceElementForcesAndSourcesCore::NO_CONTRAVARIANT_TRANSFORM_HDIV|FaceElementForcesAndSourcesCore::NO_COVARIANT_TRANSFORM_HCURL >
 
using EdgeEle2D = MoFEM::EdgeElementForcesAndSourcesCoreSwitch< EdgeElementForcesAndSourcesCore::NO_COVARIANT_TRANSFORM_HCURL >
 
using EdgeEle1D = EdgeEle2D
 

Public Member Functions

MoFEMErrorCode query_interface (const MOFEMuuid &uuid, 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 ()
 
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>
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...
 
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 (SmartPetscObj< DM > dm=nullptr)
 Create TS (time) solver. More...
 
SmartPetscObj< TS > createTS2 (SmartPetscObj< DM > dm=nullptr)
 Create TS (time) solver for scond orer equation in time. 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<>
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 ()
 
- Public Member Functions inherited from MoFEM::UnknownInterface
template<class IFACE >
MoFEMErrorCode registerInterface (const MOFEMuuid &uuid, bool error_if_registration_failed=true)
 Register interface. More...
 
template<class IFACE , bool VERIFY = false>
MoFEMErrorCode getInterface (const MOFEMuuid &uuid, IFACE *&iface) const
 Get interface by uuid and return reference to pointer of 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
 
virtual MoFEMErrorCode getLibVersion (Version &version) const
 Get library version. More...
 
virtual const MoFEMErrorCode getFileVersion (moab::Interface &moab, Version &version) const
 Get database major version. More...
 
virtual MoFEMErrorCode getInterfaceVersion (Version &version) const
 Get database major version. More...
 
template<>
MoFEMErrorCode getInterface (const MOFEMuuid &uuid, UnknownInterface *&iface) const
 

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...
 

Additional Inherited Members

- Protected Member Functions inherited from MoFEM::UnknownInterface
boost::typeindex::type_index getClassIdx (const MOFEMuuid &uid) const
 Get type name for interface Id. More...
 
MOFEMuuid getUId (const boost::typeindex::type_index &class_idx) const
 Get interface Id for class name. More...
 

Detailed Description

PipelineManager interface.

Examples
contact.cpp, dynamic_elastic.cpp, eigen_elastic.cpp, hcurl_check_approx_in_2d.cpp, hcurl_curl_operator.cpp, hdiv_divergence_operator.cpp, hello_world.cpp, helmholtz.cpp, and scalar_check_approximation_2d.cpp.

Definition at line 36 of file PipelineManager.hpp.

Member Typedef Documentation

◆ EdgeEle1D

Definition at line 51 of file PipelineManager.hpp.

◆ EdgeEle2D

Examples
contact.cpp.

Definition at line 49 of file PipelineManager.hpp.

◆ FaceEle2D

Examples
contact.cpp.

Definition at line 46 of file PipelineManager.hpp.

◆ RuleHookFun

Definition at line 44 of file PipelineManager.hpp.

◆ UserDataOperator

Definition at line 43 of file PipelineManager.hpp.

Constructor & Destructor Documentation

◆ PipelineManager()

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

Definition at line 35 of file PipelineManager.cpp.

36  : cOre(const_cast<Core &>(core)) {}

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 251 of file PipelineManager.hpp.

251  {
252  static_assert(DIM == 1 || DIM == 2 || DIM == 3, "not implemented");
253  fe = boost::make_shared<FEMethod>();
254  return fe;
255 }

◆ createBoundaryFEPipeline() [2/4]

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

Definition at line 251 of file PipelineManager.hpp.

275  {
276  if (!fe)
277  fe = boost::make_shared<VertexElementForcesAndSourcesCore>(cOre);
278  return fe;
279 }

◆ createBoundaryFEPipeline() [3/4]

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

Definition at line 251 of file PipelineManager.hpp.

259  {
260  if (!fe)
261  fe = boost::make_shared<FaceElementForcesAndSourcesCore>(cOre);
262  return fe;
263 }

◆ createBoundaryFEPipeline() [4/4]

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

Definition at line 251 of file PipelineManager.hpp.

267  {
268  if (!fe)
269  fe = boost::make_shared<EdgeEle2D>(cOre);
270  return fe;
271 }

◆ createDomainFEPipeline() [1/4]

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

Definition at line 219 of file PipelineManager.hpp.

219  {
220  static_assert(DIM == 1 || DIM == 2 || DIM == 3, "not implemented");
221  fe = boost::make_shared<FEMethod>();
222  return fe;
223 }

◆ createDomainFEPipeline() [2/4]

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

Definition at line 219 of file PipelineManager.hpp.

227  {
228  if (!fe)
229  fe = boost::make_shared<VolumeElementForcesAndSourcesCore>(cOre);
230  return fe;
231 }

◆ createDomainFEPipeline() [3/4]

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

Definition at line 219 of file PipelineManager.hpp.

243  {
244  if (!fe)
245  fe = boost::make_shared<EdgeEle1D>(cOre);
246  return fe;
247 }

◆ createDomainFEPipeline() [4/4]

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

Definition at line 219 of file PipelineManager.hpp.

235  {
236  if (!fe)
237  fe = boost::make_shared<FaceEle2D>(cOre);
238  return fe;
239 }

◆ getBoundaryLhsFE()

boost::shared_ptr< FEMethod > & MoFEM::PipelineManager::getBoundaryLhsFE ( )
Examples
helmholtz.cpp.

Definition at line 285 of file PipelineManager.hpp.

285 { return feBoundaryLhs; }

◆ getBoundaryRhsFE()

boost::shared_ptr< FEMethod > & MoFEM::PipelineManager::getBoundaryRhsFE ( )
Examples
helmholtz.cpp.

Definition at line 287 of file PipelineManager.hpp.

287 { return feBoundaryRhs; }

◆ getDomainLhsFE()

boost::shared_ptr< FEMethod > & MoFEM::PipelineManager::getDomainLhsFE ( )
Examples
contact.cpp, and helmholtz.cpp.

Definition at line 281 of file PipelineManager.hpp.

281 { return feDomainLhs; }

◆ getDomainRhsFE()

boost::shared_ptr< FEMethod > & MoFEM::PipelineManager::getDomainRhsFE ( )
Examples
contact.cpp, and helmholtz.cpp.

Definition at line 283 of file PipelineManager.hpp.

283 { return feDomainRhs; }

◆ getOpBoundaryLhsPipeline()

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

Definition at line 499 of file PipelineManager.hpp.

507  {
508  switch (cOre.getInterface<Simple>()->getDim()) {
509  case 1:
510  return getOpBoundaryLhsPipeline<1>();
511  case 2:
512  return getOpBoundaryLhsPipeline<2>();
513  case 3:
514  break;
515  default:
516  THROW_MESSAGE("Not implemented");
517  }
518  return getOpBoundaryLhsPipeline<3>();
519 }

◆ getOpBoundaryRhsPipeline()

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

Definition at line 523 of file PipelineManager.hpp.

531  {
532  switch (cOre.getInterface<Simple>()->getDim()) {
533  case 1:
534  return getOpBoundaryRhsPipeline<1>();
535  case 2:
536  return getOpBoundaryRhsPipeline<2>();
537  case 3:
538  break;
539  default:
540  THROW_MESSAGE("Not implemented");
541  }
542  return getOpBoundaryRhsPipeline<3>();
543 }

◆ getOpDomainLhsPipeline()

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

Definition at line 451 of file PipelineManager.hpp.

459  {
460  switch (cOre.getInterface<Simple>()->getDim()) {
461  case 1:
462  return getOpDomainLhsPipeline<1>();
463  case 2:
464  return getOpDomainLhsPipeline<2>();
465  case 3:
466  break;
467  default:
468  THROW_MESSAGE("Not implemented");
469  }
470  return getOpDomainLhsPipeline<3>();
471 }

◆ getOpDomainRhsPipeline()

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

Definition at line 475 of file PipelineManager.hpp.

483  {
484  switch (cOre.getInterface<Simple>()->getDim()) {
485  case 1:
486  return getOpDomainRhsPipeline<1>();
487  case 2:
488  return getOpDomainRhsPipeline<2>();
489  case 3:
490  break;
491  default:
492  THROW_MESSAGE("Not implemented");
493  }
494  return getOpDomainRhsPipeline<3>();
495 }

◆ getOpSkeletonLhsPipeline()

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

Definition at line 547 of file PipelineManager.hpp.

555  {
556  switch (cOre.getInterface<Simple>()->getDim()) {
557  case 1:
558  return getOpSkeletonLhsPipeline<1>();
559  case 2:
560  return getOpSkeletonLhsPipeline<2>();
561  case 3:
562  break;
563  default:
564  THROW_MESSAGE("Not implemented");
565  }
566  return getOpSkeletonLhsPipeline<3>();
567 }

◆ getOpSkeletonRhsPipeline()

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

Definition at line 571 of file PipelineManager.hpp.

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

◆ getSkeletonLhsFE()

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

Definition at line 289 of file PipelineManager.hpp.

289 { return feSkeletonLhs; }

◆ getSkeletonRhsFE()

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

Definition at line 291 of file PipelineManager.hpp.

291 { return feSkeletonRhs; }

◆ query_interface()

MoFEMErrorCode MoFEM::PipelineManager::query_interface ( const MOFEMuuid uuid,
UnknownInterface **  iface 
) const
virtual

Implements MoFEM::UnknownInterface.

Definition at line 23 of file PipelineManager.cpp.

24  {
26  *iface = NULL;
27  if (uuid == IDD_MOFEMBasic) {
28  *iface = const_cast<PipelineManager *>(this);
30  }
31  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY, "unknown interface");
33 }

◆ setBoundaryLhsIntegrationRule() [1/2]

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

Definition at line 355 of file PipelineManager.hpp.

356  {
358  switch (cOre.getInterface<Simple>()->getDim()) {
359  case 1:
360  return setBoundaryLhsIntegrationRule<1>(rule);
361  case 2:
362  return setBoundaryLhsIntegrationRule<2>(rule);
363  case 3:
364  return setBoundaryLhsIntegrationRule<3>(rule);
365  default:
366  THROW_MESSAGE("Not implemented");
367  }
369 }

◆ setBoundaryLhsIntegrationRule() [2/2]

template<int DIM>
MoFEMErrorCode MoFEM::PipelineManager::setBoundaryLhsIntegrationRule ( PipelineManager::RuleHookFun  rule)
Examples
contact.cpp, and helmholtz.cpp.

Definition at line 346 of file PipelineManager.hpp.

346  {
348  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
349  createBoundaryFEPipeline<DIM>(feBoundaryLhs))
350  ->getRuleHook = rule;
352 }

◆ setBoundaryRhsIntegrationRule() [1/2]

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

Definition at line 381 of file PipelineManager.hpp.

382  {
384  switch (cOre.getInterface<Simple>()->getDim()) {
385  case 1:
386  return setBoundaryRhsIntegrationRule<1>(rule);
387  case 2:
388  return setBoundaryRhsIntegrationRule<2>(rule);
389  case 3:
390  return setBoundaryRhsIntegrationRule<3>(rule);
391  default:
392  THROW_MESSAGE("Not implemented");
393  }
395 }

◆ setBoundaryRhsIntegrationRule() [2/2]

template<int DIM>
MoFEMErrorCode MoFEM::PipelineManager::setBoundaryRhsIntegrationRule ( PipelineManager::RuleHookFun  rule)
Examples
contact.cpp.

Definition at line 372 of file PipelineManager.hpp.

372  {
374  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
375  createBoundaryFEPipeline<DIM>(feBoundaryRhs))
376  ->getRuleHook = rule;
378 }

◆ setDomainLhsIntegrationRule() [1/2]

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

Definition at line 303 of file PipelineManager.hpp.

304  {
306  switch (cOre.getInterface<Simple>()->getDim()) {
307  case 1:
308  return setDomainLhsIntegrationRule<1>(rule);
309  case 2:
310  return setDomainLhsIntegrationRule<2>(rule);
311  case 3:
312  return setDomainLhsIntegrationRule<3>(rule);
313  default:
314  THROW_MESSAGE("Not implemented");
315  }
317 }

◆ setDomainLhsIntegrationRule() [2/2]

template<int DIM>
MoFEMErrorCode MoFEM::PipelineManager::setDomainLhsIntegrationRule ( PipelineManager::RuleHookFun  rule)
Examples
contact.cpp, and helmholtz.cpp.

Definition at line 294 of file PipelineManager.hpp.

294  {
296  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
297  createDomainFEPipeline<DIM>(feDomainLhs))
298  ->getRuleHook = rule;
300 }

◆ setDomainRhsIntegrationRule() [1/2]

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

Definition at line 329 of file PipelineManager.hpp.

330  {
332  switch (cOre.getInterface<Simple>()->getDim()) {
333  case 1:
334  return setDomainRhsIntegrationRule<1>(rule);
335  case 2:
336  return setDomainRhsIntegrationRule<2>(rule);
337  case 3:
338  return setDomainRhsIntegrationRule<3>(rule);
339  default:
340  THROW_MESSAGE("Not implemented");
341  }
343 }

◆ setDomainRhsIntegrationRule() [2/2]

template<int DIM>
MoFEMErrorCode MoFEM::PipelineManager::setDomainRhsIntegrationRule ( PipelineManager::RuleHookFun  rule)
Examples
contact.cpp, and helmholtz.cpp.

Definition at line 320 of file PipelineManager.hpp.

320  {
322  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
323  createDomainFEPipeline<DIM>(feDomainRhs))
324  ->getRuleHook = rule;
326 }

◆ setSkeletonLhsIntegrationRule() [1/2]

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

Definition at line 407 of file PipelineManager.hpp.

408  {
410  switch (cOre.getInterface<Simple>()->getDim()) {
411  case 1:
412  return setSkeletonLhsIntegrationRule<1>(rule);
413  case 2:
414  return setSkeletonLhsIntegrationRule<2>(rule);
415  case 3:
416  return setSkeletonLhsIntegrationRule<3>(rule);
417  default:
418  THROW_MESSAGE("Not implemented");
419  }
421 }

◆ setSkeletonLhsIntegrationRule() [2/2]

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

Definition at line 398 of file PipelineManager.hpp.

398  {
400  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
401  createBoundaryFEPipeline<DIM>(feSkeletonLhs))
402  ->getRuleHook = rule;
404 }

◆ setSkeletonRhsIntegrationRule() [1/2]

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

Definition at line 433 of file PipelineManager.hpp.

434  {
436  switch (cOre.getInterface<Simple>()->getDim()) {
437  case 1:
438  return setSkeletonRhsIntegrationRule<1>(rule);
439  case 2:
440  return setSkeletonRhsIntegrationRule<2>(rule);
441  case 3:
442  return setSkeletonRhsIntegrationRule<3>(rule);
443  default:
444  THROW_MESSAGE("Not implemented");
445  }
447 }

◆ setSkeletonRhsIntegrationRule() [2/2]

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

Definition at line 424 of file PipelineManager.hpp.

424  {
426  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
427  createBoundaryFEPipeline<DIM>(feSkeletonRhs))
428  ->getRuleHook = rule;
430 }

Member Data Documentation

◆ cOre

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

Definition at line 193 of file PipelineManager.hpp.

◆ feBoundaryLhs

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

Element to assemble LHS side by integrating boundary.

Definition at line 202 of file PipelineManager.hpp.

◆ feBoundaryRhs

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

Element to assemble RHS side by integrating boundary.

Definition at line 200 of file PipelineManager.hpp.

◆ feDomainLhs

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

Element to assemble LHS side by integrating domain.

Definition at line 198 of file PipelineManager.hpp.

◆ feDomainRhs

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

Element to assemble RHS side by integrating domain.

Definition at line 196 of file PipelineManager.hpp.

◆ feSkeletonLhs

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

Element to assemble LHS side by integrating skeleton.

Definition at line 206 of file PipelineManager.hpp.

◆ feSkeletonRhs

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

Element to assemble RHS side by integrating skeleton.

Definition at line 204 of file PipelineManager.hpp.


The documentation for this struct was generated from the following files:
MoFEMFunctionReturnHot
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:516
MoFEM::PipelineManager::feBoundaryLhs
boost::shared_ptr< FEMethod > feBoundaryLhs
Element to assemble LHS side by integrating boundary.
Definition: PipelineManager.hpp:202
MoFEM::PipelineManager::feBoundaryRhs
boost::shared_ptr< FEMethod > feBoundaryRhs
Element to assemble RHS side by integrating boundary.
Definition: PipelineManager.hpp:200
MoFEM::PipelineManager::cOre
MoFEM::Core & cOre
Definition: PipelineManager.hpp:193
MoFEM::PipelineManager::feSkeletonLhs
boost::shared_ptr< FEMethod > feSkeletonLhs
Element to assemble LHS side by integrating skeleton.
Definition: PipelineManager.hpp:206
MoFEM::PipelineManager::feDomainLhs
boost::shared_ptr< FEMethod > feDomainLhs
Element to assemble LHS side by integrating domain.
Definition: PipelineManager.hpp:198
MoFEM::PipelineManager::feSkeletonRhs
boost::shared_ptr< FEMethod > feSkeletonRhs
Element to assemble RHS side by integrating skeleton.
Definition: PipelineManager.hpp:204
THROW_MESSAGE
#define THROW_MESSAGE(a)
Throw MoFEM exception.
Definition: definitions.h:628
MoFEM::PipelineManager::PipelineManager
PipelineManager(const MoFEM::Core &core)
Definition: PipelineManager.cpp:35
MOFEM_DATA_INCONSISTENCY
@ MOFEM_DATA_INCONSISTENCY
Definition: definitions.h:123
MoFEM::IDD_MOFEMBasic
static const MOFEMuuid IDD_MOFEMBasic
Definition: PipelineManager.hpp:29
MoFEMFunctionBeginHot
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:509
MoFEMFunctionReturn
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:485
MoFEM::Core
CoreTmp< 0 > Core
Definition: Core.hpp:1129
MoFEM::PipelineManager::feDomainRhs
boost::shared_ptr< FEMethod > feDomainRhs
Element to assemble RHS side by integrating domain.
Definition: PipelineManager.hpp:196
MoFEM::UnknownInterface::getInterface
MoFEMErrorCode getInterface(const MOFEMuuid &uuid, IFACE *&iface) const
Get interface by uuid and return reference to pointer of interface.
Definition: UnknownInterface.hpp:130
MoFEMFunctionBegin
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:415