v0.9.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 /* This file is part of MoFEM.
7  * MoFEM is free software: you can redistribute it and/or modify it under
8  * the terms of the GNU Lesser General Public License as published by the
9  * Free Software Foundation, either version 3 of the License, or (at your
10  * option) any later version.
11  *
12  * MoFEM is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
15  * License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with MoFEM. If not, see <http://www.gnu.org/licenses/>. */
19 
20 #ifndef __BASEFUNCTION_HPP__
21 #define __BASEFUNCTION_HPP__
22 
23 namespace MoFEM {
24 
27 
29 
30  virtual MoFEMErrorCode
31  query_interface(const MOFEMuuid &uuid,
32  BaseFunctionUnknownInterface **iface) const = 0;
33 
34  virtual ~BaseFunctionUnknownInterface() = default;
35 };
36 
37 /**
38  * \brief Base class used to exchange data between element data structures and
39  * class calculating base functions \ingroup mofem_base_functions
40  */
42 
44  BaseFunctionUnknownInterface **iface) const;
45 
47 };
48 
49 /**
50  * \brief Base class if inherited used to calculate base functions
51  * \ingroup mofem_base_functions
52  */
54 
56  query_interface(const MOFEMuuid &uuid,
58 
60 
62  boost::shared_ptr<BaseFunctionCtx> ctx_ptr);
63 
64  virtual MoFEMErrorCode getValue(MatrixDouble &pts_x, MatrixDouble &pts_t,
65  boost::shared_ptr<BaseFunctionCtx> ctx_ptr);
66 };
67 
68 } // namespace MoFEM
69 
70 #endif //__BASEFUNCTION_HPP__
71 
72 /**
73  * \defgroup mofem_base_functions Base functions
74  *
75  * \brief Calculation of base functions at integration points.
76  *
77  * \ingroup mofem
78  **/
MoFEM interface unique ID.
MoFEMErrorCode query_interface(const MOFEMuuid &uuid, BaseFunctionUnknownInterface **iface) const
MoFEMErrorCode query_interface(const MOFEMuuid &uuid, MoFEM::BaseFunctionUnknownInterface **iface) const
ublas::matrix< double, ublas::row_major, DoubleAllocator > MatrixDouble
Definition: Types.hpp:74
std::bitset< BITINTERFACEUID_SIZE > BitIntefaceId
Definition: Types.hpp:56
implementation of Data Operators for Forces and Sources
Definition: Common.hpp:21
virtual ~BaseFunctionUnknownInterface()=default
Base class if inherited used to calculate base functions.
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
Definition: Exceptions.hpp:66
Base class used to exchange data between element data structures and class calculating base functions...
static const MOFEMuuid IDD_UNKNOWN_BASE_FUNCTION
virtual MoFEMErrorCode query_interface(const MOFEMuuid &uuid, BaseFunctionUnknownInterface **iface) const =0
virtual MoFEMErrorCode getValue(MatrixDouble &pts, boost::shared_ptr< BaseFunctionCtx > ctx_ptr)