v0.9.0
LobattoPolynomial.hpp
Go to the documentation of this file.
1 /** \file LobattoPolynomial.hpp
2 \brief Implementation of Lobatto polynomial
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 __LOBATTOPOLYNOMIALS_HPP__
21 #define __LOBATTOPOLYNOMIALS_HPP__
22 
23 namespace MoFEM {
24 
29 
30 /**
31  * \brief Class used to give arguments to Lobatto base functions
32  * \ingroup mofem_base_functions
33  */
35 
37  BaseFunctionUnknownInterface **iface) const;
38 
39  LobattoPolynomialCtx(int p, double *diff_s, int dim,
40  boost::shared_ptr<MatrixDouble> base_fun_ptr,
41  boost::shared_ptr<MatrixDouble> base_diff_fun_ptr)
42  : LegendrePolynomialCtx(p, diff_s, dim, base_fun_ptr, base_diff_fun_ptr) {
44  }
46 };
47 
48 /**
49  * \brief Calculating Lobatto base functions
50  * \ingroup mofem_base_functions
51  */
53 
55  BaseFunctionUnknownInterface **iface) const;
56 
59 
61  boost::shared_ptr<BaseFunctionCtx> ctx_ptr);
62 };
63 
64 /**
65  * \brief Class used to give arguments to Kernel Lobatto base functions
66  * \ingroup mofem_base_functions
67  */
69 
71  BaseFunctionUnknownInterface **iface) const;
72 
73  KernelLobattoPolynomialCtx(int p, double *diff_s, int dim,
74  boost::shared_ptr<MatrixDouble> base_fun_ptr,
75  boost::shared_ptr<MatrixDouble> base_diff_fun_ptr)
76  : LegendrePolynomialCtx(p, diff_s, dim, base_fun_ptr, base_diff_fun_ptr) {
78  }
80 };
81 
82 /**
83  * \brief Calculating Lobatto base functions
84  * \ingroup mofem_base_functions
85  */
87 
89  BaseFunctionUnknownInterface **iface) const;
90 
93 
95  boost::shared_ptr<BaseFunctionCtx> ctx_ptr);
96 };
97 
98 } // namespace MoFEM
99 
100 #endif
Calculating Legendre base functions.
PetscErrorCode(* basePolynomialsType0)(int p, double s, double *diff_s, double *L, double *diffL, const int dim)
MoFEM interface unique ID.
Calculating Lobatto base functions.
MoFEMErrorCode query_interface(const MOFEMuuid &uuid, BaseFunctionUnknownInterface **iface) const
ublas::matrix< double, ublas::row_major, DoubleAllocator > MatrixDouble
Definition: Types.hpp:74
Class used to give arguments to Kernel Lobatto base functions.
Class used to give arguments to Lobatto base functions.
MoFEMErrorCode query_interface(const MOFEMuuid &uuid, BaseFunctionUnknownInterface **iface) const
std::bitset< BITINTERFACEUID_SIZE > BitIntefaceId
Definition: Types.hpp:56
implementation of Data Operators for Forces and Sources
Definition: Common.hpp:21
MoFEMErrorCode getValue(MatrixDouble &pts, boost::shared_ptr< BaseFunctionCtx > ctx_ptr)
PetscErrorCode LobattoKernel_polynomials(int p, double s, double *diff_s, double *L, double *diffL, const int dim)
Calculate Kernel Lobatto base functions.
MoFEMErrorCode getValue(MatrixDouble &pts, boost::shared_ptr< BaseFunctionCtx > ctx_ptr)
KernelLobattoPolynomialCtx(int p, double *diff_s, int dim, boost::shared_ptr< MatrixDouble > base_fun_ptr, boost::shared_ptr< MatrixDouble > base_diff_fun_ptr)
static const MOFEMuuid IDD_LOBATTO_BASE_FUNCTION
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
Definition: Exceptions.hpp:66
LobattoPolynomialCtx(int p, double *diff_s, int dim, boost::shared_ptr< MatrixDouble > base_fun_ptr, boost::shared_ptr< MatrixDouble > base_diff_fun_ptr)
Calculating Lobatto base functions.
MoFEMErrorCode query_interface(const MOFEMuuid &uuid, BaseFunctionUnknownInterface **iface) const
Class used to give arguments to Legendre base functions.
PetscErrorCode Lobatto_polynomials(int p, double s, double *diff_s, double *L, double *diffL, const int dim)
Calculate Lobatto base functions.
MoFEMErrorCode query_interface(const MOFEMuuid &uuid, BaseFunctionUnknownInterface **iface) const
static const MOFEMuuid IDD_KERNEL_BASE_FUNCTION