v0.14.0
Loading...
Searching...
No Matches
JacobiPolynomial.hpp
Go to the documentation of this file.
1/** \file JacobiPolynomial.hpp
2\brief Implementation of Legendre polynomial
3
4*/
5
6
7
8#ifndef __JACOBIPOLYNOMIALS_HPP__
9#define __JACOBIPOLYNOMIALS_HPP__
10
11namespace MoFEM {
12
13/**
14 * \brief Class used to give arguments to Legendre base functions
15 * \ingroup mofem_base_functions
16 */
18
19 MoFEMErrorCode query_interface(boost::typeindex::type_index type_index,
20 UnknownInterface **iface) const;
21
22 int P;
23 double *diffX;
24 double *diffT;
25 int dIm;
26
27 double aLpha;
28
29 boost::shared_ptr<MatrixDouble> baseFunPtr;
30 boost::shared_ptr<MatrixDouble> baseDiffFunPtr;
31
32 PetscErrorCode (*basePolynomialsType1)(int p, double alpha, double x,
33 double t, double *diff_x,
34 double *diff_t, double *L,
35 double *diffL, const int dim);
36
37 JacobiPolynomialCtx(int p, double *diff_x, double *diff_t, int dim,
38 double alpha,
39 boost::shared_ptr<MatrixDouble> &base_fun_ptr,
40 boost::shared_ptr<MatrixDouble> &base_diff_fun_ptr)
41 : P(p), diffX(diff_x), diffT(diff_t), dIm(dim), aLpha(alpha),
42 baseFunPtr(base_fun_ptr), baseDiffFunPtr(base_diff_fun_ptr),
45};
46
47/**
48 * \brief Calculating Legendre base functions
49 * \ingroup mofem_base_functions
50 */
52
53 MoFEMErrorCode query_interface(boost::typeindex::type_index type_index,
54 UnknownInterface **iface) const;
55
58
60 boost::shared_ptr<BaseFunctionCtx> ctx_ptr);
61};
62
64
65 MoFEMErrorCode query_interface(boost::typeindex::type_index type_index,
66 UnknownInterface **iface) const;
67
69 int p, double *diff_x, double *diff_t, int dim, double alpha,
70 boost::shared_ptr<MatrixDouble> &base_fun_ptr,
71 boost::shared_ptr<MatrixDouble> &base_diff_fun_ptr)
72 : JacobiPolynomialCtx(p, diff_x, diff_t, dim, alpha, base_fun_ptr,
73 base_diff_fun_ptr) {
75 }
77};
78
80
81 MoFEMErrorCode query_interface(boost::typeindex::type_index type_index,
82 UnknownInterface **iface) const;
83
86
88 boost::shared_ptr<BaseFunctionCtx> ctx_ptr);
89};
90
91} // namespace MoFEM
92
93#endif //__JACOBIPOLYNOMIALS_HPP__
static Index< 'p', 3 > p
PetscErrorCode IntegratedJacobi_polynomials(int p, double alpha, double x, double t, double *diff_x, double *diff_t, double *L, double *diffL, const int dim)
Calculate integrated Jacobi approximation basis.
PetscErrorCode Jacobi_polynomials(int p, double alpha, double x, double t, double *diff_x, double *diff_t, double *L, double *diffL, const int dim)
Calculate Jacobi approximation basis.
const int dim
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
Definition: Exceptions.hpp:56
UBlasMatrix< double > MatrixDouble
Definition: Types.hpp:77
implementation of Data Operators for Forces and Sources
Definition: Common.hpp:10
constexpr double t
plate stiffness
Definition: plate.cpp:59
Base class used to exchange data between element data structures and class calculating base functions...
Base class if inherited used to calculate base functions.
IntegratedJacobiPolynomialCtx(int p, double *diff_x, double *diff_t, int dim, double alpha, boost::shared_ptr< MatrixDouble > &base_fun_ptr, boost::shared_ptr< MatrixDouble > &base_diff_fun_ptr)
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, UnknownInterface **iface) const
MoFEMErrorCode getValue(MatrixDouble &pts_x, MatrixDouble &pts_t, boost::shared_ptr< BaseFunctionCtx > ctx_ptr)
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, UnknownInterface **iface) const
Class used to give arguments to Legendre base functions.
boost::shared_ptr< MatrixDouble > baseFunPtr
PetscErrorCode(* basePolynomialsType1)(int p, double alpha, double x, double t, double *diff_x, double *diff_t, double *L, double *diffL, const int dim)
boost::shared_ptr< MatrixDouble > baseDiffFunPtr
JacobiPolynomialCtx(int p, double *diff_x, double *diff_t, int dim, double alpha, boost::shared_ptr< MatrixDouble > &base_fun_ptr, boost::shared_ptr< MatrixDouble > &base_diff_fun_ptr)
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, UnknownInterface **iface) const
Calculating Legendre base functions.
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, UnknownInterface **iface) const
MoFEMErrorCode getValue(MatrixDouble &pts_x, MatrixDouble &pts_t, boost::shared_ptr< BaseFunctionCtx > ctx_ptr)
base class for all interface classes