|  | v0.15.0 | 
Evaluating BB polynomial. More...
#include "src/approximation/BernsteinBezier.hpp"
| Public Member Functions | |
| template<int D, int Side> | |
| MoFEMErrorCode | generateIndicesVertex (const int N, int *alpha) | 
| template<int D, int Side> | |
| MoFEMErrorCode | generateIndicesEdgeOnSimplex (const int N, int *alpha) | 
| template<int D, int Side> | |
| MoFEMErrorCode | generateIndicesTriOnSimplex (const int N, int *alpha) | 
| template<int D> | |
| MoFEMErrorCode | genrateDerivativeIndices (const int N, const int n_alpha, const int *alpha, const int *diff, const int n_alpha_diff, const int *alpha_diff, double *c) | 
| template<int D> | |
| MoFEMErrorCode | domainPoints (const int N, const int n_x, const int n_alpha, const int *alpha, const double *x_k, double *x_alpha) | 
| template<int D, bool GRAD_BASE> | |
| MoFEMErrorCode | baseFunctions (const int N, const int gdim, const int n_alpha, const int *alpha, const double *lambda, const double *grad_lambda, double *base, double *grad_base) | 
| Static Public Member Functions | |
| static MoFEMErrorCode | domainPoints3d (const int N, const int n_x, const int n_alpha, const int *alpha, const double *x_k, double *x_alpha) | 
| Genrate BB points in 3d. | |
| Edge BB functions | |
| static MoFEMErrorCode | generateIndicesVertexEdge (const int N, int *alpha) | 
| static MoFEMErrorCode | generateIndicesEdgeEdge (const int N, int *alpha) | 
| static MoFEMErrorCode | baseFunctionsEdge (const int N, const int gdim, const int n_alpha, const int *alpha, const double *lambda, const double *grad_lambda, double *base, double *grad_base) | 
| static MoFEMErrorCode | genrateDerivativeIndicesEdges (const int N, const int n_alpha, const int *alpha, const int *diff, const int n_alpha_diff, const int *alpha_diff, double *c) | 
| Triangle BB functions | |
| static MoFEMErrorCode | generateIndicesVertexTri (const int N, int *alpha) | 
| static MoFEMErrorCode | generateIndicesEdgeTri (const int N[], int *alpha[]) | 
| static MoFEMErrorCode | generateIndicesEdgeTri (const int side, const int N, int *alpha) | 
| static MoFEMErrorCode | generateIndicesTriTri (const int N, int *alpha) | 
| static MoFEMErrorCode | baseFunctionsTri (const int N, const int gdim, const int n_alpha, const int *alpha, const double *lambda, const double *grad_lambda, double *base, double *grad_base) | 
| static MoFEMErrorCode | genrateDerivativeIndicesTri (const int N, const int n_alpha, const int *alpha, const int *diff, const int n_alpha_diff, const int *alpha_diff, double *c) | 
| Tetrahedron BB functions | |
| static MoFEMErrorCode | generateIndicesVertexTet (const int N, int *alpha) | 
| static MoFEMErrorCode | generateIndicesEdgeTet (const int N[], int *alpha[]) | 
| static MoFEMErrorCode | generateIndicesEdgeTet (const int side, const int N, int *alpha) | 
| static MoFEMErrorCode | generateIndicesTriTet (const int N[], int *alpha[]) | 
| static MoFEMErrorCode | generateIndicesTriTet (const int side, const int N, int *alpha) | 
| static MoFEMErrorCode | generateIndicesTetTet (const int N, int *alpha) | 
| static MoFEMErrorCode | baseFunctionsTet (const int N, const int gdim, const int n_alpha, const int *alpha, const double *lambda, const double *grad_lambda, double *base, double *grad_base) | 
| static MoFEMErrorCode | genrateDerivativeIndicesTet (const int N, const int n_alpha, const int *alpha, const int *diff, const int n_alpha_diff, const int *alpha_diff, double *c) | 
| Static Private Member Functions | |
| template<int D, int Side> | |
| static MoFEMErrorCode | generateIndicesVertex (const int N, int *alpha) | 
| Generate BB indices on vertices. | |
| template<int D, int Side> | |
| static MoFEMErrorCode | generateIndicesEdgeOnSimplex (const int N, int *alpha) | 
| Genarte BB incices od simplex edges. | |
| template<int D, int Side> | |
| static MoFEMErrorCode | generateIndicesTriOnSimplex (const int N, int *alpha) | 
| Generate BB indices on simples triangles. | |
| static MoFEMErrorCode | generateIndicesTetOnSimplex (const int N, int *alpha) | 
| Genarte BB indices on simplex. | |
| template<int D> | |
| static MoFEMErrorCode | genrateDerivativeIndices (const int N, const int n_alpha, const int *alpha, const int *diff, const int n_alpha_diff, const int *alpha_diff, double *c) | 
| Brief calculate coefficients for directive of base functions. | |
| template<int D> | |
| static MoFEMErrorCode | domainPoints (const int N, const int n_x, const int n_alpha, const int *alpha, const double *x_k, double *x_alpha) | 
| Evaluate coordinates of BB points. | |
| template<int D, bool GRAD_BASE> | |
| static MoFEMErrorCode | baseFunctions (const int N, const int gdim, const int n_alpha, const int *alpha, const double *lambda, const double *grad_lambda, double *base, double *grad_base) | 
| BB base function. | |
Evaluating BB polynomial.
Low level class for evaluation of Bernstein-Bezier polynomials and associated tools useful for fast intergartion.
Definition at line 20 of file BernsteinBezier.hpp.
| 
 | inlinestaticprivate | 
BB base function.
| D | dimension | 
| GRAD_BASE | true to calculate base | 
| N | polynomial order | 
| gdim | number of evaluation points | 
| n_alpha | number BB base functions | 
| alpha | BB coefficients | 
| lambda | barycentric coefficients at evaluating points | 
| grad_lambda | gradients of barycentric over spatial coordinates | 
| base | base function | 
| grad_base | vector base functions | 
| MoFEMErrorCode MoFEM::BernsteinBezier::baseFunctions | ( | const int | N, | 
| const int | gdim, | ||
| const int | n_alpha, | ||
| const int * | alpha, | ||
| const double * | lambda, | ||
| const double * | grad_lambda, | ||
| double * | base, | ||
| double * | grad_base | ||
| ) | 
Definition at line 292 of file BernsteinBezier.cpp.
| 
 | static | 
| 
 | static | 
| 
 | static | 
| 
 | inlinestaticprivate | 
Evaluate coordinates of BB points.
| D | dimension | 
| N | polynomail order | 
| n_x | |
| n_alpha | |
| alpha | |
| x_k | cartesian coordinates of simplex nodes | 
| x_alpha | BB points | 
| MoFEMErrorCode MoFEM::BernsteinBezier::domainPoints | ( | const int | N, | 
| const int | n_x, | ||
| const int | n_alpha, | ||
| const int * | alpha, | ||
| const double * | x_k, | ||
| double * | x_alpha | ||
| ) | 
Definition at line 258 of file BernsteinBezier.cpp.
| 
 | static | 
Genrate BB points in 3d.
| N | |
| n_x | |
| n_alpha | |
| alpha | |
| x_k | |
| x_alpha | 
Definition at line 282 of file BernsteinBezier.cpp.
| 
 | static | 
Definition at line 85 of file BernsteinBezier.cpp.
| 
 | inlinestaticprivate | 
Genarte BB incices od simplex edges.
| D | |
| Side | 
| N | |
| alpha | 
| MoFEMErrorCode MoFEM::BernsteinBezier::generateIndicesEdgeOnSimplex | ( | const int | N, | 
| int * | alpha | ||
| ) | 
Definition at line 16 of file BernsteinBezier.cpp.
| 
 | static | 
Definition at line 138 of file BernsteinBezier.cpp.
| 
 | static | 
Definition at line 150 of file BernsteinBezier.cpp.
| 
 | static | 
Definition at line 99 of file BernsteinBezier.cpp.
| 
 | static | 
Definition at line 108 of file BernsteinBezier.cpp.
| 
 | staticprivate | 
Genarte BB indices on simplex.
\[ \frac{\partial^{|\mathbf{v}|} \phi^n_{\pmb\alpha}}{\partial \pmb\lambda^\mathbf{v}}= \mathbf{c}_{\pmb\alpha\pmb\beta} \phi^{n-|\mathbf{v}|}_{\pmb\beta} \]
| N | |
| alpha | 
Definition at line 59 of file BernsteinBezier.cpp.
| 
 | static | 
Definition at line 201 of file BernsteinBezier.cpp.
| 
 | inlinestaticprivate | 
Generate BB indices on simples triangles.
| D | |
| Side | 
| N | |
| alpha | 
| MoFEMErrorCode MoFEM::BernsteinBezier::generateIndicesTriOnSimplex | ( | const int | N, | 
| int * | alpha | ||
| ) | 
Definition at line 34 of file BernsteinBezier.cpp.
| 
 | static | 
Definition at line 173 of file BernsteinBezier.cpp.
| 
 | static | 
Definition at line 183 of file BernsteinBezier.cpp.
| 
 | static | 
Definition at line 124 of file BernsteinBezier.cpp.
| 
 | inlinestaticprivate | 
Generate BB indices on vertices.
| D | |
| Side | 
| N | |
| alpha | 
| MoFEMErrorCode MoFEM::BernsteinBezier::generateIndicesVertex | ( | const int | N, | 
| int * | alpha | ||
| ) | 
Definition at line 9 of file BernsteinBezier.cpp.
| 
 | static | 
Definition at line 77 of file BernsteinBezier.cpp.
| 
 | static | 
Definition at line 128 of file BernsteinBezier.cpp.
| 
 | static | 
Definition at line 90 of file BernsteinBezier.cpp.
| 
 | staticprivate | 
Brief calculate coefficients for directive of base functions.
\[ \]
| D | 
| N | |
| n_alpha | |
| alpha | |
| diff | |
| n_alpha_diff | |
| alpha_diff | |
| c | 
| MoFEMErrorCode MoFEM::BernsteinBezier::genrateDerivativeIndices | ( | const int | N, | 
| const int | n_alpha, | ||
| const int * | alpha, | ||
| const int * | diff, | ||
| const int | n_alpha_diff, | ||
| const int * | alpha_diff, | ||
| double * | c | ||
| ) | 
Definition at line 206 of file BernsteinBezier.cpp.
| 
 | static | 
Definition at line 235 of file BernsteinBezier.cpp.
| 
 | static | 
Definition at line 249 of file BernsteinBezier.cpp.
| 
 | static | 
Definition at line 242 of file BernsteinBezier.cpp.
