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

Basic interface. More...

#include <src/interfaces/Basic.hpp>

Inheritance diagram for MoFEM::Basic:
[legend]
Collaboration diagram for MoFEM::Basic:
[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
 
 Basic (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...
 
template<>
MoFEMErrorCode setDomainLhsIntegrationRule (Basic::RuleHookFun rule)
 
template<>
MoFEMErrorCode setDomainRhsIntegrationRule (Basic::RuleHookFun rule)
 
template<>
MoFEMErrorCode setBoundaryLhsIntegrationRule (Basic::RuleHookFun rule)
 
template<>
MoFEMErrorCode setBoundaryRhsIntegrationRule (Basic::RuleHookFun rule)
 
template<>
MoFEMErrorCode setSkeletonLhsIntegrationRule (Basic::RuleHookFun rule)
 
template<>
MoFEMErrorCode setSkeletonRhsIntegrationRule (Basic::RuleHookFun rule)
 
template<>
boost::ptr_vector< Basic::UserDataOperator > & getOpDomainLhsPipeline ()
 
template<>
boost::ptr_vector< Basic::UserDataOperator > & getOpDomainRhsPipeline ()
 
template<>
boost::ptr_vector< Basic::UserDataOperator > & getOpBoundaryLhsPipeline ()
 
template<>
boost::ptr_vector< Basic::UserDataOperator > & getOpBoundaryRhsPipeline ()
 
template<>
boost::ptr_vector< Basic::UserDataOperator > & getOpSkeletonLhsPipeline ()
 
template<>
boost::ptr_vector< Basic::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

Basic interface.

Examples
basic_approx.cpp, basic_contact.cpp, basic_elastic.cpp, basic_helmholtz.cpp, basic_moment_of_inertia.cpp, basic_plastic.cpp, basic_poisson.cpp, basic_radiation.cpp, hcurl_check_approx_in_2d.cpp, hcurl_curl_operator.cpp, hdiv_divergence_operator.cpp, and scalar_check_approximation_2d.cpp.

Definition at line 36 of file Basic.hpp.

Member Typedef Documentation

◆ EdgeEle1D

Definition at line 51 of file Basic.hpp.

◆ EdgeEle2D

Examples
basic_contact.cpp.

Definition at line 50 of file Basic.hpp.

◆ FaceEle2D

using MoFEM::Basic::FaceEle2D = MoFEM::FaceElementForcesAndSourcesCoreSwitch< FaceElementForcesAndSourcesCore::NO_CONTRAVARIANT_TRANSFORM_HDIV | FaceElementForcesAndSourcesCore::NO_COVARIANT_TRANSFORM_HCURL>
Examples
basic_contact.cpp.

Definition at line 48 of file Basic.hpp.

◆ RuleHookFun

Definition at line 44 of file Basic.hpp.

◆ UserDataOperator

Definition at line 43 of file Basic.hpp.

Constructor & Destructor Documentation

◆ Basic()

MoFEM::Basic::Basic ( const MoFEM::Core core)

Definition at line 34 of file Basic.cpp.

34 : cOre(const_cast<Core &>(core)) {}
MoFEM::Core & cOre
Definition: Basic.hpp:184

Member Function Documentation

◆ createBoundaryFEPipeline() [1/4]

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

Definition at line 242 of file Basic.hpp.

242  {
243  static_assert(DIM == 1 || DIM == 2 || DIM == 3, "not implemented");
244  fe = boost::make_shared<FEMethod>();
245  return fe;
246 }

◆ createBoundaryFEPipeline() [2/4]

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

Definition at line 250 of file Basic.hpp.

250  {
251  if (!fe)
252  fe = boost::make_shared<FaceElementForcesAndSourcesCore>(cOre);
253  return fe;
254 }
MoFEM::Core & cOre
Definition: Basic.hpp:184

◆ createBoundaryFEPipeline() [3/4]

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

Definition at line 258 of file Basic.hpp.

258  {
259  if (!fe)
260  fe = boost::make_shared<EdgeEle2D>(cOre);
261  return fe;
262 }
MoFEM::Core & cOre
Definition: Basic.hpp:184

◆ createBoundaryFEPipeline() [4/4]

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

Definition at line 266 of file Basic.hpp.

266  {
267  if (!fe)
268  fe = boost::make_shared<VertexElementForcesAndSourcesCore>(cOre);
269  return fe;
270 }
MoFEM::Core & cOre
Definition: Basic.hpp:184

◆ createDomainFEPipeline() [1/4]

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

Definition at line 210 of file Basic.hpp.

210  {
211  static_assert(DIM == 1 || DIM == 2 || DIM == 3, "not implemented");
212  fe = boost::make_shared<FEMethod>();
213  return fe;
214 }

◆ createDomainFEPipeline() [2/4]

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

Definition at line 218 of file Basic.hpp.

218  {
219  if (!fe)
220  fe = boost::make_shared<VolumeElementForcesAndSourcesCore>(cOre);
221  return fe;
222 }
MoFEM::Core & cOre
Definition: Basic.hpp:184

◆ createDomainFEPipeline() [3/4]

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

Definition at line 226 of file Basic.hpp.

226  {
227  if (!fe)
228  fe = boost::make_shared<FaceEle2D>(cOre);
229  return fe;
230 }
MoFEM::Core & cOre
Definition: Basic.hpp:184

◆ createDomainFEPipeline() [4/4]

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

Definition at line 234 of file Basic.hpp.

234  {
235  if (!fe)
236  fe = boost::make_shared<EdgeEle1D>(cOre);
237  return fe;
238 }
MoFEM::Core & cOre
Definition: Basic.hpp:184

◆ getBoundaryLhsFE()

boost::shared_ptr< FEMethod > & MoFEM::Basic::getBoundaryLhsFE ( )
Examples
basic_helmholtz.cpp, basic_poisson.cpp, and basic_radiation.cpp.

Definition at line 276 of file Basic.hpp.

276 { return feBoundaryLhs; }
boost::shared_ptr< FEMethod > feBoundaryLhs
Element to assemble LHS side by integrating boundary.
Definition: Basic.hpp:193

◆ getBoundaryRhsFE()

boost::shared_ptr< FEMethod > & MoFEM::Basic::getBoundaryRhsFE ( )
Examples
basic_helmholtz.cpp, basic_poisson.cpp, and basic_radiation.cpp.

Definition at line 278 of file Basic.hpp.

278 { return feBoundaryRhs; }
boost::shared_ptr< FEMethod > feBoundaryRhs
Element to assemble RHS side by integrating boundary.
Definition: Basic.hpp:191

◆ getDomainLhsFE()

boost::shared_ptr< FEMethod > & MoFEM::Basic::getDomainLhsFE ( )
Examples
basic_approx.cpp, basic_elastic.cpp, basic_helmholtz.cpp, basic_poisson.cpp, and basic_radiation.cpp.

Definition at line 272 of file Basic.hpp.

272 { return feDomainLhs; }
boost::shared_ptr< FEMethod > feDomainLhs
Element to assemble LHS side by integrating domain.
Definition: Basic.hpp:189

◆ getDomainRhsFE()

boost::shared_ptr< FEMethod > & MoFEM::Basic::getDomainRhsFE ( )
Examples
basic_approx.cpp, basic_elastic.cpp, basic_helmholtz.cpp, basic_poisson.cpp, and basic_radiation.cpp.

Definition at line 274 of file Basic.hpp.

274 { return feDomainRhs; }
boost::shared_ptr< FEMethod > feDomainRhs
Element to assemble RHS side by integrating domain.
Definition: Basic.hpp:187

◆ getOpBoundaryLhsPipeline()

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

Definition at line 498 of file Basic.hpp.

498  {
499  switch (cOre.getInterface<Simple>()->getDim()) {
500  case 1:
501  return getOpBoundaryLhsPipeline<1>();
502  case 2:
503  return getOpBoundaryLhsPipeline<2>();
504  case 3:
505  break;
506  default:
507  THROW_MESSAGE("Not implemented");
508  }
509  return getOpBoundaryLhsPipeline<3>();
510 }
MoFEM::Core & cOre
Definition: Basic.hpp:184
#define THROW_MESSAGE(a)
Throw MoFEM exception.
Definition: definitions.h:625
MoFEMErrorCode getInterface(const MOFEMuuid &uuid, IFACE *&iface) const
Get interface by uuid and return reference to pointer of interface.

◆ getOpBoundaryRhsPipeline()

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

Definition at line 522 of file Basic.hpp.

522  {
523  switch (cOre.getInterface<Simple>()->getDim()) {
524  case 1:
525  return getOpBoundaryRhsPipeline<1>();
526  case 2:
527  return getOpBoundaryRhsPipeline<2>();
528  case 3:
529  break;
530  default:
531  THROW_MESSAGE("Not implemented");
532  }
533  return getOpBoundaryRhsPipeline<3>();
534 }
MoFEM::Core & cOre
Definition: Basic.hpp:184
#define THROW_MESSAGE(a)
Throw MoFEM exception.
Definition: definitions.h:625
MoFEMErrorCode getInterface(const MOFEMuuid &uuid, IFACE *&iface) const
Get interface by uuid and return reference to pointer of interface.

◆ getOpDomainLhsPipeline()

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

Definition at line 450 of file Basic.hpp.

450  {
451  switch (cOre.getInterface<Simple>()->getDim()) {
452  case 1:
453  return getOpDomainLhsPipeline<1>();
454  case 2:
455  return getOpDomainLhsPipeline<2>();
456  case 3:
457  break;
458  default:
459  THROW_MESSAGE("Not implemented");
460  }
461  return getOpDomainLhsPipeline<3>();
462 }
MoFEM::Core & cOre
Definition: Basic.hpp:184
#define THROW_MESSAGE(a)
Throw MoFEM exception.
Definition: definitions.h:625
MoFEMErrorCode getInterface(const MOFEMuuid &uuid, IFACE *&iface) const
Get interface by uuid and return reference to pointer of interface.

◆ getOpDomainRhsPipeline()

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

Definition at line 474 of file Basic.hpp.

474  {
475  switch (cOre.getInterface<Simple>()->getDim()) {
476  case 1:
477  return getOpDomainRhsPipeline<1>();
478  case 2:
479  return getOpDomainRhsPipeline<2>();
480  case 3:
481  break;
482  default:
483  THROW_MESSAGE("Not implemented");
484  }
485  return getOpDomainRhsPipeline<3>();
486 }
MoFEM::Core & cOre
Definition: Basic.hpp:184
#define THROW_MESSAGE(a)
Throw MoFEM exception.
Definition: definitions.h:625
MoFEMErrorCode getInterface(const MOFEMuuid &uuid, IFACE *&iface) const
Get interface by uuid and return reference to pointer of interface.

◆ getOpSkeletonLhsPipeline()

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

Definition at line 546 of file Basic.hpp.

546  {
547  switch (cOre.getInterface<Simple>()->getDim()) {
548  case 1:
549  return getOpSkeletonLhsPipeline<1>();
550  case 2:
551  return getOpSkeletonLhsPipeline<2>();
552  case 3:
553  break;
554  default:
555  THROW_MESSAGE("Not implemented");
556  }
557  return getOpSkeletonLhsPipeline<3>();
558 }
MoFEM::Core & cOre
Definition: Basic.hpp:184
#define THROW_MESSAGE(a)
Throw MoFEM exception.
Definition: definitions.h:625
MoFEMErrorCode getInterface(const MOFEMuuid &uuid, IFACE *&iface) const
Get interface by uuid and return reference to pointer of interface.

◆ getOpSkeletonRhsPipeline()

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

Definition at line 570 of file Basic.hpp.

570  {
571  switch (cOre.getInterface<Simple>()->getDim()) {
572  case 1:
573  return getOpSkeletonRhsPipeline<1>();
574  case 2:
575  return getOpSkeletonRhsPipeline<2>();
576  case 3:
577  break;
578  default:
579  THROW_MESSAGE("Not implemented");
580  }
581  return getOpSkeletonRhsPipeline<3>();
582 }
MoFEM::Core & cOre
Definition: Basic.hpp:184
#define THROW_MESSAGE(a)
Throw MoFEM exception.
Definition: definitions.h:625
MoFEMErrorCode getInterface(const MOFEMuuid &uuid, IFACE *&iface) const
Get interface by uuid and return reference to pointer of interface.

◆ getSkeletonLhsFE()

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

Definition at line 280 of file Basic.hpp.

280 { return feSkeletonLhs; }
boost::shared_ptr< FEMethod > feSkeletonLhs
Element to assemble LHS side by integrating skeleton.
Definition: Basic.hpp:197

◆ getSkeletonRhsFE()

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

Definition at line 282 of file Basic.hpp.

282 { return feSkeletonRhs; }
boost::shared_ptr< FEMethod > feSkeletonRhs
Element to assemble RHS side by integrating skeleton.
Definition: Basic.hpp:195

◆ query_interface()

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

Implements MoFEM::UnknownInterface.

Definition at line 22 of file Basic.cpp.

23  {
25  *iface = NULL;
26  if (uuid == IDD_MOFEMBasic) {
27  *iface = const_cast<Basic *>(this);
29  }
30  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY, "unknown interface");
32 }
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:506
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:513
static const MOFEMuuid IDD_MOFEMBasic
Definition: Basic.hpp:29

◆ setBoundaryLhsIntegrationRule() [1/2]

template<int DIM>
MoFEMErrorCode MoFEM::Basic::setBoundaryLhsIntegrationRule ( Basic::RuleHookFun  rule)
Examples
basic_contact.cpp, basic_helmholtz.cpp, basic_poisson.cpp, and basic_radiation.cpp.

Definition at line 337 of file Basic.hpp.

337  {
339  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
340  createBoundaryFEPipeline<DIM>(feBoundaryLhs))
341  ->getRuleHook = rule;
343 }
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:482
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:412
boost::shared_ptr< FEMethod > feBoundaryLhs
Element to assemble LHS side by integrating boundary.
Definition: Basic.hpp:193

◆ setBoundaryLhsIntegrationRule() [2/2]

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

Definition at line 347 of file Basic.hpp.

347  {
349  switch (cOre.getInterface<Simple>()->getDim()) {
350  case 1:
351  return setBoundaryLhsIntegrationRule<1>(rule);
352  case 2:
353  return setBoundaryLhsIntegrationRule<2>(rule);
354  case 3:
355  return setBoundaryLhsIntegrationRule<3>(rule);
356  default:
357  THROW_MESSAGE("Not implemented");
358  }
360 }
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:482
MoFEM::Core & cOre
Definition: Basic.hpp:184
#define THROW_MESSAGE(a)
Throw MoFEM exception.
Definition: definitions.h:625
MoFEMErrorCode getInterface(const MOFEMuuid &uuid, IFACE *&iface) const
Get interface by uuid and return reference to pointer of interface.
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:412

◆ setBoundaryRhsIntegrationRule() [1/2]

template<int DIM>
MoFEMErrorCode MoFEM::Basic::setBoundaryRhsIntegrationRule ( Basic::RuleHookFun  rule)
Examples
basic_contact.cpp, basic_poisson.cpp, and basic_radiation.cpp.

Definition at line 363 of file Basic.hpp.

363  {
365  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
366  createBoundaryFEPipeline<DIM>(feBoundaryRhs))
367  ->getRuleHook = rule;
369 }
boost::shared_ptr< FEMethod > feBoundaryRhs
Element to assemble RHS side by integrating boundary.
Definition: Basic.hpp:191
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:482
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:412

◆ setBoundaryRhsIntegrationRule() [2/2]

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

Definition at line 373 of file Basic.hpp.

373  {
375  switch (cOre.getInterface<Simple>()->getDim()) {
376  case 1:
377  return setBoundaryRhsIntegrationRule<1>(rule);
378  case 2:
379  return setBoundaryRhsIntegrationRule<2>(rule);
380  case 3:
381  return setBoundaryRhsIntegrationRule<3>(rule);
382  default:
383  THROW_MESSAGE("Not implemented");
384  }
386 }
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:482
MoFEM::Core & cOre
Definition: Basic.hpp:184
#define THROW_MESSAGE(a)
Throw MoFEM exception.
Definition: definitions.h:625
MoFEMErrorCode getInterface(const MOFEMuuid &uuid, IFACE *&iface) const
Get interface by uuid and return reference to pointer of interface.
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:412

◆ setDomainLhsIntegrationRule() [1/2]

template<int DIM>
MoFEMErrorCode MoFEM::Basic::setDomainLhsIntegrationRule ( Basic::RuleHookFun  rule)
Examples
basic_approx.cpp, basic_contact.cpp, basic_elastic.cpp, basic_helmholtz.cpp, basic_plastic.cpp, basic_poisson.cpp, and basic_radiation.cpp.

Definition at line 285 of file Basic.hpp.

285  {
287  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
288  createDomainFEPipeline<DIM>(feDomainLhs))
289  ->getRuleHook = rule;
291 }
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:482
boost::shared_ptr< FEMethod > feDomainLhs
Element to assemble LHS side by integrating domain.
Definition: Basic.hpp:189
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:412

◆ setDomainLhsIntegrationRule() [2/2]

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

Definition at line 295 of file Basic.hpp.

295  {
297  switch (cOre.getInterface<Simple>()->getDim()) {
298  case 1:
299  return setDomainLhsIntegrationRule<1>(rule);
300  case 2:
301  return setDomainLhsIntegrationRule<2>(rule);
302  case 3:
303  return setDomainLhsIntegrationRule<3>(rule);
304  default:
305  THROW_MESSAGE("Not implemented");
306  }
308 }
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:482
MoFEM::Core & cOre
Definition: Basic.hpp:184
#define THROW_MESSAGE(a)
Throw MoFEM exception.
Definition: definitions.h:625
MoFEMErrorCode getInterface(const MOFEMuuid &uuid, IFACE *&iface) const
Get interface by uuid and return reference to pointer of interface.
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:412

◆ setDomainRhsIntegrationRule() [1/2]

template<int DIM>
MoFEMErrorCode MoFEM::Basic::setDomainRhsIntegrationRule ( Basic::RuleHookFun  rule)
Examples
basic_approx.cpp, basic_contact.cpp, basic_elastic.cpp, basic_helmholtz.cpp, basic_moment_of_inertia.cpp, basic_plastic.cpp, basic_poisson.cpp, and basic_radiation.cpp.

Definition at line 311 of file Basic.hpp.

311  {
313  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
314  createDomainFEPipeline<DIM>(feDomainRhs))
315  ->getRuleHook = rule;
317 }
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:482
boost::shared_ptr< FEMethod > feDomainRhs
Element to assemble RHS side by integrating domain.
Definition: Basic.hpp:187
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:412

◆ setDomainRhsIntegrationRule() [2/2]

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

Definition at line 321 of file Basic.hpp.

321  {
323  switch (cOre.getInterface<Simple>()->getDim()) {
324  case 1:
325  return setDomainRhsIntegrationRule<1>(rule);
326  case 2:
327  return setDomainRhsIntegrationRule<2>(rule);
328  case 3:
329  return setDomainRhsIntegrationRule<3>(rule);
330  default:
331  THROW_MESSAGE("Not implemented");
332  }
334 }
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:482
MoFEM::Core & cOre
Definition: Basic.hpp:184
#define THROW_MESSAGE(a)
Throw MoFEM exception.
Definition: definitions.h:625
MoFEMErrorCode getInterface(const MOFEMuuid &uuid, IFACE *&iface) const
Get interface by uuid and return reference to pointer of interface.
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:412

◆ setSkeletonLhsIntegrationRule() [1/2]

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

Definition at line 389 of file Basic.hpp.

389  {
391  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
392  createBoundaryFEPipeline<DIM>(feSkeletonLhs))
393  ->getRuleHook = rule;
395 }
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:482
boost::shared_ptr< FEMethod > feSkeletonLhs
Element to assemble LHS side by integrating skeleton.
Definition: Basic.hpp:197
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:412

◆ setSkeletonLhsIntegrationRule() [2/2]

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

Definition at line 399 of file Basic.hpp.

399  {
401  switch (cOre.getInterface<Simple>()->getDim()) {
402  case 1:
403  return setSkeletonLhsIntegrationRule<1>(rule);
404  case 2:
405  return setSkeletonLhsIntegrationRule<2>(rule);
406  case 3:
407  return setSkeletonLhsIntegrationRule<3>(rule);
408  default:
409  THROW_MESSAGE("Not implemented");
410  }
412 }
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:482
MoFEM::Core & cOre
Definition: Basic.hpp:184
#define THROW_MESSAGE(a)
Throw MoFEM exception.
Definition: definitions.h:625
MoFEMErrorCode getInterface(const MOFEMuuid &uuid, IFACE *&iface) const
Get interface by uuid and return reference to pointer of interface.
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:412

◆ setSkeletonRhsIntegrationRule() [1/2]

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

Definition at line 415 of file Basic.hpp.

415  {
417  boost::dynamic_pointer_cast<ForcesAndSourcesCore>(
418  createBoundaryFEPipeline<DIM>(feSkeletonRhs))
419  ->getRuleHook = rule;
421 }
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:482
boost::shared_ptr< FEMethod > feSkeletonRhs
Element to assemble RHS side by integrating skeleton.
Definition: Basic.hpp:195
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:412

◆ setSkeletonRhsIntegrationRule() [2/2]

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

Definition at line 425 of file Basic.hpp.

425  {
427  switch (cOre.getInterface<Simple>()->getDim()) {
428  case 1:
429  return setSkeletonRhsIntegrationRule<1>(rule);
430  case 2:
431  return setSkeletonRhsIntegrationRule<2>(rule);
432  case 3:
433  return setSkeletonRhsIntegrationRule<3>(rule);
434  default:
435  THROW_MESSAGE("Not implemented");
436  }
438 }
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:482
MoFEM::Core & cOre
Definition: Basic.hpp:184
#define THROW_MESSAGE(a)
Throw MoFEM exception.
Definition: definitions.h:625
MoFEMErrorCode getInterface(const MOFEMuuid &uuid, IFACE *&iface) const
Get interface by uuid and return reference to pointer of interface.
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:412

Member Data Documentation

◆ cOre

MoFEM::Core& MoFEM::Basic::cOre
private

Definition at line 184 of file Basic.hpp.

◆ feBoundaryLhs

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

Element to assemble LHS side by integrating boundary.

Definition at line 193 of file Basic.hpp.

◆ feBoundaryRhs

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

Element to assemble RHS side by integrating boundary.

Definition at line 191 of file Basic.hpp.

◆ feDomainLhs

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

Element to assemble LHS side by integrating domain.

Definition at line 189 of file Basic.hpp.

◆ feDomainRhs

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

Element to assemble RHS side by integrating domain.

Definition at line 187 of file Basic.hpp.

◆ feSkeletonLhs

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

Element to assemble LHS side by integrating skeleton.

Definition at line 197 of file Basic.hpp.

◆ feSkeletonRhs

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

Element to assemble RHS side by integrating skeleton.

Definition at line 195 of file Basic.hpp.


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