v0.14.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. More... | |
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. More... | |
template<int D, int Side> | |
static MoFEMErrorCode | generateIndicesEdgeOnSimplex (const int N, int *alpha) |
Genarte BB incices od simplex edges. More... | |
template<int D, int Side> | |
static MoFEMErrorCode | generateIndicesTriOnSimplex (const int N, int *alpha) |
Generate BB indices on simples triangles. More... | |
static MoFEMErrorCode | generateIndicesTetOnSimplex (const int N, int *alpha) |
Genarte BB indices on simplex. More... | |
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. More... | |
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. More... | |
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. More... | |
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 294 of file BernsteinBezier.cpp.
|
static |
Definition at line 419 of file BernsteinBezier.cpp.
|
static |
Definition at line 443 of file BernsteinBezier.cpp.
|
static |
Definition at line 431 of file BernsteinBezier.cpp.
|
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 260 of file BernsteinBezier.cpp.
|
static |
Genrate BB points in 3d.
N | |
n_x | |
n_alpha | |
alpha | |
x_k | |
x_alpha |
Definition at line 284 of file BernsteinBezier.cpp.
|
static |
Definition at line 85 of file BernsteinBezier.cpp.
MoFEMErrorCode MoFEM::BernsteinBezier::generateIndicesEdgeOnSimplex | ( | const int | N, |
int * | alpha | ||
) |
Definition at line 16 of file BernsteinBezier.cpp.
|
inlinestaticprivate |
Genarte BB incices od simplex edges.
D | |
Side |
N | |
alpha |
|
static |
|
static |
Definition at line 150 of file BernsteinBezier.cpp.
|
static |
|
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 203 of file BernsteinBezier.cpp.
MoFEMErrorCode MoFEM::BernsteinBezier::generateIndicesTriOnSimplex | ( | const int | N, |
int * | alpha | ||
) |
Definition at line 34 of file BernsteinBezier.cpp.
|
inlinestaticprivate |
Generate BB indices on simples triangles.
D | |
Side |
N | |
alpha |
|
static |
|
static |
Definition at line 184 of file BernsteinBezier.cpp.
|
static |
Definition at line 124 of file BernsteinBezier.cpp.
MoFEMErrorCode MoFEM::BernsteinBezier::generateIndicesVertex | ( | const int | N, |
int * | alpha | ||
) |
Definition at line 9 of file BernsteinBezier.cpp.
|
inlinestaticprivate |
Generate BB indices on vertices.
D | |
Side |
N | |
alpha |
|
static |
|
static |
|
static |
|
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 208 of file BernsteinBezier.cpp.
|
static |
Definition at line 237 of file BernsteinBezier.cpp.
|
static |
Definition at line 251 of file BernsteinBezier.cpp.
|
static |
Definition at line 244 of file BernsteinBezier.cpp.