v0.14.0
BaseFunction.hpp
Go to the documentation of this file.
1 /** \file BaseFunction.hpp
2 \brief General implementation of base function
3 
4 */
5 
6 
7 
8 #ifndef __BASEFUNCTION_HPP__
9 #define __BASEFUNCTION_HPP__
10 
11 namespace MoFEM {
12 
14 
15  using UnknownInterface::UnknownInterface;
16 
17  virtual MoFEMErrorCode
18  query_interface(boost::typeindex::type_index type_index,
19  UnknownInterface **iface) const = 0;
20 
21  virtual ~BaseFunctionUnknownInterface() = default;
22 };
23 
24 /**
25  * \brief Base class used to exchange data between element data structures and
26  * class calculating base functions \ingroup mofem_base_functions
27  */
29 
30  MoFEMErrorCode query_interface(boost::typeindex::type_index type_index,
31  UnknownInterface **iface) const;
32 
33  using BaseFunctionUnknownInterface::BaseFunctionUnknownInterface;
34 };
35 
36 /**
37  * \brief Base class if inherited used to calculate base functions
38  * \ingroup mofem_base_functions
39  */
41 
42  MoFEMErrorCode query_interface(boost::typeindex::type_index type_index,
43  MoFEM::UnknownInterface **iface) const;
44 
45  using BaseFunctionUnknownInterface::BaseFunctionUnknownInterface;
46 
48  boost::shared_ptr<BaseFunctionCtx> ctx_ptr);
49 
50  virtual MoFEMErrorCode getValue(MatrixDouble &pts_x, MatrixDouble &pts_t,
51  boost::shared_ptr<BaseFunctionCtx> ctx_ptr);
52 };
53 
54 } // namespace MoFEM
55 
56 #endif //__BASEFUNCTION_HPP__
57 
58 /**
59  * \defgroup mofem_base_functions Base functions
60  *
61  * \brief Calculation of base functions at integration points.
62  *
63  * \ingroup mofem
64  **/
MoFEM::BaseFunction::query_interface
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, MoFEM::UnknownInterface **iface) const
Definition: BaseFunction.cpp:17
MoFEM::Exceptions::MoFEMErrorCode
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
Definition: Exceptions.hpp:56
MoFEM::Types::MatrixDouble
UBlasMatrix< double > MatrixDouble
Definition: Types.hpp:77
MoFEM::BaseFunction
Base class if inherited used to calculate base functions.
Definition: BaseFunction.hpp:40
MoFEM::BaseFunctionCtx::query_interface
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, UnknownInterface **iface) const
Definition: BaseFunction.cpp:10
MoFEM::BaseFunctionCtx
Base class used to exchange data between element data structures and class calculating base functions...
Definition: BaseFunction.hpp:28
MoFEM::BaseFunction::getValue
virtual MoFEMErrorCode getValue(MatrixDouble &pts, boost::shared_ptr< BaseFunctionCtx > ctx_ptr)
Definition: BaseFunction.cpp:24
MoFEM
implementation of Data Operators for Forces and Sources
Definition: Common.hpp:10
MoFEM::BaseFunctionUnknownInterface::~BaseFunctionUnknownInterface
virtual ~BaseFunctionUnknownInterface()=default
MoFEM::BaseFunctionUnknownInterface::query_interface
virtual MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, UnknownInterface **iface) const =0
MoFEM::BaseFunctionUnknownInterface
Definition: BaseFunction.hpp:13
MoFEM::UnknownInterface
base class for all interface classes
Definition: UnknownInterface.hpp:34