The ReconstructionKernel class allows to evaluate the weight of a reconstruction polynomial previously assembled. More...
Public Member Functions | |
ReconstructionKernel () | |
ReconstructionKernel (const ReconstructionKernel &other) | |
ReconstructionKernel (ReconstructionKernel &&other)=default | |
ReconstructionKernel (uint8_t degree, uint8_t dimensions, int nEquations) | |
void | assemblePolynomial (const std::array< double, 3 > &origin, const double *values, ReconstructionPolynomial *polynomial) const |
void | assemblePolynomial (const std::array< double, 3 > &origin, int nFields, const double **values, ReconstructionPolynomial *polynomial) const |
void | assemblePolynomial (uint8_t degree, const std::array< double, 3 > &origin, const double *values, ReconstructionPolynomial *polynomial) const |
void | assemblePolynomial (uint8_t degree, const std::array< double, 3 > &origin, int nFields, const double **values, ReconstructionPolynomial *polynomial) const |
void | computeDerivativeLimitedWeights (const std::array< double, 3 > &origin, const std::array< double, 3 > &point, const std::array< double, 3 > &direction, const double *limiters, double *derivativeWeights) const |
void | computeDerivativeLimitedWeights (int nEquations, uint8_t degree, const std::array< double, 3 > &origin, const std::array< double, 3 > &point, const std::array< double, 3 > &direction, const double *limiters, double *derivativeWeights) const |
void | computeDerivativeLimitedWeights (uint8_t degree, const std::array< double, 3 > &origin, const std::array< double, 3 > &point, const std::array< double, 3 > &direction, const double *limiters, double *derivativeWeights) const |
void | computeDerivativeWeights (const std::array< double, 3 > &origin, const std::array< double, 3 > &point, const std::array< double, 3 > &direction, double *derivativeWeights) const |
void | computeDerivativeWeights (int nEquations, uint8_t degree, const std::array< double, 3 > &origin, const std::array< double, 3 > &point, const std::array< double, 3 > &direction, double *derivativeWeights) const |
void | computeDerivativeWeights (uint8_t degree, const std::array< double, 3 > &origin, const std::array< double, 3 > &point, const std::array< double, 3 > &direction, double *derivativeWeights) const |
void | computeGradientLimitedWeights (const std::array< double, 3 > &origin, const std::array< double, 3 > &point, const double *limiters, std::array< double, 3 > *gradientWeights) const |
void | computeGradientLimitedWeights (int nEquations, uint8_t degree, const std::array< double, 3 > &origin, const std::array< double, 3 > &point, const double *limiters, std::array< double, 3 > *gradientWeights) const |
void | computeGradientLimitedWeights (uint8_t degree, const std::array< double, 3 > &origin, const std::array< double, 3 > &point, const double *limiters, std::array< double, 3 > *gradientWeights) const |
void | computeGradientWeights (const std::array< double, 3 > &origin, const std::array< double, 3 > &point, std::array< double, 3 > *gradientWeights) const |
void | computeGradientWeights (int nEquations, uint8_t degree, const std::array< double, 3 > &origin, const std::array< double, 3 > &point, std::array< double, 3 > *gradientWeights) const |
void | computeGradientWeights (uint8_t degree, const std::array< double, 3 > &origin, const std::array< double, 3 > &point, std::array< double, 3 > *gradientWeights) const |
void | computeValueLimitedWeights (const std::array< double, 3 > &origin, const std::array< double, 3 > &point, const double *limiters, double *valueWeights) const |
void | computeValueLimitedWeights (int nEquations, uint8_t degree, const std::array< double, 3 > &origin, const std::array< double, 3 > &point, const double *limiters, double *valueWeights) const |
void | computeValueLimitedWeights (uint8_t degree, const std::array< double, 3 > &origin, const std::array< double, 3 > &point, const double *limiters, double *valueWeights) const |
void | computeValueWeights (const std::array< double, 3 > &origin, const std::array< double, 3 > &point, double *valueWeights) const |
void | computeValueWeights (int nEquations, uint8_t degree, const std::array< double, 3 > &origin, const std::array< double, 3 > &point, double *valueWeights) const |
void | computeValueWeights (uint8_t degree, const std::array< double, 3 > &origin, const std::array< double, 3 > &point, double *valueWeights) const |
void | display (std::ostream &out, double tolerance=1.e-10) const |
uint16_t | getCoefficientCount () const |
uint8_t | getDegree () const |
uint8_t | getDimensions () const |
int | getEquationCount () const |
double * | getPolynomialWeights () |
const double * | getPolynomialWeights () const |
void | initialize (uint8_t degree, uint8_t dimensions, int nEquations, bool release=true) |
ReconstructionKernel & | operator= (const ReconstructionKernel &other) |
ReconstructionKernel & | operator= (ReconstructionKernel &&other)=default |
void | swap (ReconstructionKernel &other) noexcept |
void | updatePolynomial (const double *values, ReconstructionPolynomial *polynomial) const |
void | updatePolynomial (int nFields, const double **values, ReconstructionPolynomial *polynomial) const |
void | updatePolynomial (uint8_t degree, const double *values, ReconstructionPolynomial *polynomial) const |
void | updatePolynomial (uint8_t degree, int nFields, const double **values, ReconstructionPolynomial *polynomial) const |
Protected Member Functions | |
void | applyLimiter (uint8_t degree, const double *limiters, double *coeffs) const |
The ReconstructionKernel class allows to evaluate the weight of a reconstruction polynomial previously assembled.
Definition at line 169 of file reconstruction.hpp.
bitpit::ReconstructionKernel::ReconstructionKernel | ( | ) |
Constructor.
Definition at line 2016 of file reconstruction.cpp.
bitpit::ReconstructionKernel::ReconstructionKernel | ( | uint8_t | degree, |
uint8_t | dimensions, | ||
int | nEquations ) |
Constructor.
degree | is the degree of the polynomial |
dimensions | is the number of space dimensions |
nEquations | is the number of equations that defines the reconstruction |
Definition at line 2029 of file reconstruction.cpp.
bitpit::ReconstructionKernel::ReconstructionKernel | ( | const ReconstructionKernel & | other | ) |
Copy constructor
other | is another reconstruction whose content is copied in this reconstruction |
Definition at line 2041 of file reconstruction.cpp.
|
protected |
Apply the limiter to the given coefficients.
It is necessary to provide one scale factor for each polynomial degree greater than zero (a reconstruction using 2nd degree polynomials will need two scale factors, one for the 1st degree coefficients and one for the 2nd degree coefficients).
degree | is the degree of the polynomial | |
limiters | are the scale factors of the limiter | |
[in,out] | coeffs | are the coefficients to be limited |
Definition at line 3067 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::assemblePolynomial | ( | const std::array< double, 3 > & | origin, |
const double * | values, | ||
ReconstructionPolynomial * | polynomial ) const |
Assembles the polynomial for the specified values.
Before computing polynomial coefficients, the polynomial will be properly initialized.
The values need to be passed in the same order as the equations.
origin | is the point chosen as origin of the reconstruction | |
values | are the values associated with the equations | |
[out] | polynomial | on output will contain the polynomial |
Definition at line 2193 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::assemblePolynomial | ( | const std::array< double, 3 > & | origin, |
int | nFields, | ||
const double ** | values, | ||
ReconstructionPolynomial * | polynomial ) const |
Assembles the polynomial for the specified values.
Before computing polynomial coefficients, the polynomial will be properly initialized and possible unneeded memory hold by the polynomial will be released.
The values need to be passed in the same order as the equations.
origin | is the point chosen as origin of the reconstruction | |
nFields | is the number of fields associated with the polynomial | |
values | are the values associated with the equations, values are grouped by equation, this means that the first element will contain all the values associated with the first equation, the second element will contain the values associated with the second equation, and so on and so forth | |
[out] | polynomial | on output will contain the polynomial |
Definition at line 2225 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::assemblePolynomial | ( | uint8_t | degree, |
const std::array< double, 3 > & | origin, | ||
const double * | values, | ||
ReconstructionPolynomial * | polynomial ) const |
Assembles the polynomial for the specified values.
Before computing polynomial coefficients, the polynomial will be properly initialized.
The degree of the polynomial cannot be higher than the degree of the kernel.
The values need to be passed in the same order as the equations.
degree | is the degree of the polynomial | |
origin | is the point chosen as origin of the reconstruction | |
values | are the values associated with the equations | |
[out] | polynomial | on output will contain the polynomial |
Definition at line 2255 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::assemblePolynomial | ( | uint8_t | degree, |
const std::array< double, 3 > & | origin, | ||
int | nFields, | ||
const double ** | values, | ||
ReconstructionPolynomial * | polynomial ) const |
Assembles the polynomial for the specified values.
Before computing polynomial coefficients, the polynomial will be properly initialized.
The degree of the polynomial cannot be higher than the degree of the kernel.
The values need to be passed in the same order as the equations.
degree | is the degree of the polynomial | |
origin | is the point chosen as origin of the reconstruction | |
values | are the values associated with the equations, values are grouped by equation, this means that the first element will contain all the values associated with the first equation, the second element will contain the values associated with the second equation, and so on and so forth | |
[out] | polynomial | on output will contain the polynomial |
Definition at line 2288 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeDerivativeLimitedWeights | ( | const std::array< double, 3 > & | origin, |
const std::array< double, 3 > & | point, | ||
const std::array< double, 3 > & | direction, | ||
const double * | limiters, | ||
double * | derivativeWeights ) const |
Computes the weights for evaluating the limited directional derivative at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the derivative at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
If a valid pointer to the limiter scale factor is passed, a limited reconstruction will be used. It is necessary to provide one scale factor for each polynomial degree greater than zero (a reconstruction using 2nd degree polynomials will need two scale factors, one for the 1st degree coefficients and one for the 2nd degree coefficients).
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
direction | is the direction of the derivative | |
limiters | are the scale factors of the limiters | |
[out] | derivativeWeights | on output will contain the weights of the derivative |
Definition at line 2745 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeDerivativeLimitedWeights | ( | int | nEquations, |
uint8_t | degree, | ||
const std::array< double, 3 > & | origin, | ||
const std::array< double, 3 > & | point, | ||
const std::array< double, 3 > & | direction, | ||
const double * | limiters, | ||
double * | derivativeWeights ) const |
Computes the weights for evaluating the limited directional derivative at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the derivative at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
The degree of the reconstruction has to be less than or equal to the degree used in the assembly step.
If a valid pointer to the limiter scale factor is passed, a limited reconstruction will be used. It is necessary to provide one scale factor for each polynomial degree greater than zero (a reconstruction using 2nd degree polynomials will need two scale factors, one for the 1st degree coefficients and one for the 2nd degree coefficients).
nEquations | is the number of equations that will be considered | |
degree | is the degree of the polynomial | |
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
direction | is the direction of the derivative | |
limiters | are the scale factors of the limiters | |
[out] | derivativeWeights | on output will contain the weights of the derivative |
Definition at line 2816 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeDerivativeLimitedWeights | ( | uint8_t | degree, |
const std::array< double, 3 > & | origin, | ||
const std::array< double, 3 > & | point, | ||
const std::array< double, 3 > & | direction, | ||
const double * | limiters, | ||
double * | derivativeWeights ) const |
Computes the weights for evaluating the limited directional derivative at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the derivative at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
The degree of the reconstruction has to be less than or equal to the degree used in the assembly step.
If a valid pointer to the limiter scale factor is passed, a limited reconstruction will be used. It is necessary to provide one scale factor for each polynomial degree greater than zero (a reconstruction using 2nd degree polynomials will need two scale factors, one for the 1st degree coefficients and one for the 2nd degree coefficients).
degree | is the degree of the polynomial | |
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
direction | is the direction of the derivative | |
limiters | are the scale factors of the limiters | |
[out] | derivativeWeights | on output will contain the weights of the derivative |
Definition at line 2780 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeDerivativeWeights | ( | const std::array< double, 3 > & | origin, |
const std::array< double, 3 > & | point, | ||
const std::array< double, 3 > & | direction, | ||
double * | derivativeWeights ) const |
Computes the weights for evaluating the directional derivative at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the derivative at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
direction | is the direction of the derivative | |
[out] | derivativeWeights | on output will contain the weights of the derivative |
Definition at line 2660 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeDerivativeWeights | ( | int | nEquations, |
uint8_t | degree, | ||
const std::array< double, 3 > & | origin, | ||
const std::array< double, 3 > & | point, | ||
const std::array< double, 3 > & | direction, | ||
double * | derivativeWeights ) const |
Computes the weights for evaluating the directional derivative at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the derivative at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
The degree of the reconstruction has to be less than or equal to the degree used in the assembly step.
nEquations | is the number of equations that will be considered | |
degree | is the degree of the polynomial | |
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
direction | is the direction of the derivative | |
[out] | derivativeWeights | on output will contain the weights of the derivative |
Definition at line 2715 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeDerivativeWeights | ( | uint8_t | degree, |
const std::array< double, 3 > & | origin, | ||
const std::array< double, 3 > & | point, | ||
const std::array< double, 3 > & | direction, | ||
double * | derivativeWeights ) const |
Computes the weights for evaluating the directional derivative at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the derivative at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
The degree of the reconstruction has to be less than or equal to the degree used in the assembly step.
degree | is the degree of the polynomial | |
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
direction | is the direction of the derivative | |
[out] | derivativeWeights | on output will contain the weights of the derivative |
Definition at line 2687 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeGradientLimitedWeights | ( | const std::array< double, 3 > & | origin, |
const std::array< double, 3 > & | point, | ||
const double * | limiters, | ||
std::array< double, 3 > * | gradientWeights ) const |
Computes the weights for evaluating the limited gradient at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the derivative at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
If a valid pointer to the limiter scale factor is passed, a limited reconstruction will be used. It is necessary to provide one scale factor for each polynomial degree greater than zero (a reconstruction using 2nd degree polynomials will need two scale factors, one for the 1st degree coefficients and one for the 2nd degree coefficients).
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
[out] | gradientWeights | on output will contain the weights of the gradient |
Definition at line 2942 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeGradientLimitedWeights | ( | int | nEquations, |
uint8_t | degree, | ||
const std::array< double, 3 > & | origin, | ||
const std::array< double, 3 > & | point, | ||
const double * | limiters, | ||
std::array< double, 3 > * | gradientWeights ) const |
Computes the weights for evaluating the limited gradient at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the derivative at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
The degree of the reconstruction has to be less than or equal to the degree used in the assembly step.
If a valid pointer to the limiter scale factor is passed, a limited reconstruction will be used. It is necessary to provide one scale factor for each polynomial degree greater than zero (a reconstruction using 2nd degree polynomials will need two scale factors, one for the 1st degree coefficients and one for the 2nd degree coefficients).
nEquations | is the number of equations that will be considered | |
degree | is the degree of the polynomial | |
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
[out] | gradientWeights | on output will contain the weights of the gradient |
Definition at line 3005 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeGradientLimitedWeights | ( | uint8_t | degree, |
const std::array< double, 3 > & | origin, | ||
const std::array< double, 3 > & | point, | ||
const double * | limiters, | ||
std::array< double, 3 > * | gradientWeights ) const |
Computes the weights for evaluating the limited gradient at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the derivative at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
The degree of the reconstruction has to be less than or equal to the degree used in the assembly step.
If a valid pointer to the limiter scale factor is passed, a limited reconstruction will be used. It is necessary to provide one scale factor for each polynomial degree greater than zero (a reconstruction using 2nd degree polynomials will need two scale factors, one for the 1st degree coefficients and one for the 2nd degree coefficients).
degree | is the degree of the polynomial | |
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
[out] | gradientWeights | on output will contain the weights of the gradient |
Definition at line 2973 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeGradientWeights | ( | const std::array< double, 3 > & | origin, |
const std::array< double, 3 > & | point, | ||
std::array< double, 3 > * | gradientWeights ) const |
Computes the weights for evaluating the gradient at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the derivative at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
[out] | gradientWeights | on output will contain the weights of the gradient |
Definition at line 2864 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeGradientWeights | ( | int | nEquations, |
uint8_t | degree, | ||
const std::array< double, 3 > & | origin, | ||
const std::array< double, 3 > & | point, | ||
std::array< double, 3 > * | gradientWeights ) const |
Computes the weights for evaluating the gradient at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the derivative at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
The degree of the reconstruction has to be less than or equal to the degree used in the assembly step.
nEquations | is the number of equations that will be considered | |
degree | is the degree of the polynomial | |
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
[out] | gradientWeights | on output will contain the weights of the gradient |
Definition at line 2915 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeGradientWeights | ( | uint8_t | degree, |
const std::array< double, 3 > & | origin, | ||
const std::array< double, 3 > & | point, | ||
std::array< double, 3 > * | gradientWeights ) const |
Computes the weights for evaluating the gradient at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the derivative at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
The degree of the reconstruction has to be less than or equal to the degree used in the assembly step.
degree | is the degree of the polynomial | |
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
[out] | gradientWeights | on output will contain the weights of the gradient |
Definition at line 2889 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeValueLimitedWeights | ( | const std::array< double, 3 > & | origin, |
const std::array< double, 3 > & | point, | ||
const double * | limiters, | ||
double * | valueWeights ) const |
Computes the weights for evaluating the limited value at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the value at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
If a valid pointer to the limiter scale factor is passed, a limited reconstruction will be used. It is necessary to provide one scale factor for each polynomial degree greater than zero (a reconstruction using 2nd degree polynomials will need two scale factors, one for the 1st degree coefficients and one for the 2nd degree coefficients).
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
limiters | are the scale factors of the limiter | |
[out] | valueWeights | on output will contain the weights of the reconstruction |
Definition at line 2546 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeValueLimitedWeights | ( | int | nEquations, |
uint8_t | degree, | ||
const std::array< double, 3 > & | origin, | ||
const std::array< double, 3 > & | point, | ||
const double * | limiters, | ||
double * | valueWeights ) const |
Computes the weights for evaluating the limited value at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the value at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
The degree of the reconstruction has to be less than or equal to the degree used in the assembly step.
If a valid pointer to the limiter scale factor is passed, a limited reconstruction will be used. It is necessary to provide one scale factor for each polynomial degree greater than zero (a reconstruction using 2nd degree polynomials will need two scale factors, one for the 1st degree coefficients and one for the 2nd degree coefficients).
nEquations | is the number of equations that will be considered | |
degree | is the degree of the polynomial | |
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
limiters | are the scale factors of the limiter | |
[out] | valueWeights | on output will contain the weights of the reconstruction |
Definition at line 2607 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeValueLimitedWeights | ( | uint8_t | degree, |
const std::array< double, 3 > & | origin, | ||
const std::array< double, 3 > & | point, | ||
const double * | limiters, | ||
double * | valueWeights ) const |
Computes the weights for evaluating the limited value at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the value at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
If a valid pointer to the limiter scale factor is passed, a limited reconstruction will be used. It is necessary to provide one scale factor for each polynomial degree greater than zero (a reconstruction using 2nd degree polynomials will need two scale factors, one for the 1st degree coefficients and one for the 2nd degree coefficients).
degree | is the degree of the polynomial | |
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
limiters | are the scale factors of the limiter | |
[out] | valueWeights | on output will contain the weights of the reconstruction |
Definition at line 2574 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeValueWeights | ( | const std::array< double, 3 > & | origin, |
const std::array< double, 3 > & | point, | ||
double * | valueWeights ) const |
Computes the weights for evaluating the value at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the value at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
[out] | valueWeights | on output will contain the weights of the reconstruction |
Definition at line 2469 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeValueWeights | ( | int | nEquations, |
uint8_t | degree, | ||
const std::array< double, 3 > & | origin, | ||
const std::array< double, 3 > & | point, | ||
double * | valueWeights ) const |
Computes the weights for evaluating the value at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the value at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
The degree of the reconstruction has to be less than or equal to the degree used in the assembly step.
nEquations | is the number of equations that will be considered | |
degree | is the degree of the polynomial | |
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
[out] | valueWeights | on output will contain the weights of the reconstruction |
Definition at line 2519 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::computeValueWeights | ( | uint8_t | degree, |
const std::array< double, 3 > & | origin, | ||
const std::array< double, 3 > & | point, | ||
double * | valueWeights ) const |
Computes the weights for evaluating the value at a given point.
In other words, when multiplying the values associated with the support with their corresponding weights, the value at point is retrieved.
Weights are computed according the order in which the equations have been added in the assembly step.
The degree of the reconstruction has to be less than or equal to the degree used in the assembly step.
degree | is the degree of the polynomial | |
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the reconstruction will be evaluated | |
[out] | valueWeights | on output will contain the weights of the reconstruction |
Definition at line 2493 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::display | ( | std::ostream & | out, |
double | tolerance = 1.e-10 ) const |
Displays reconstruction polynomial information to an output stream.
out | is the output stream |
tolerance | is the tolerance below which the weight will not be displayed |
Definition at line 3095 of file reconstruction.cpp.
uint16_t bitpit::ReconstructionKernel::getCoefficientCount | ( | ) | const |
Get the number of coefficients of the reconstruction polynomial.
Definition at line 2142 of file reconstruction.cpp.
uint8_t bitpit::ReconstructionKernel::getDegree | ( | ) | const |
Get the degree of the polynomial.
Definition at line 2122 of file reconstruction.cpp.
uint8_t bitpit::ReconstructionKernel::getDimensions | ( | ) | const |
Get the number of space dimensions.
Definition at line 2132 of file reconstruction.cpp.
int bitpit::ReconstructionKernel::getEquationCount | ( | ) | const |
Get the number of equations associated with the reconstruction.
Definition at line 2152 of file reconstruction.cpp.
double * bitpit::ReconstructionKernel::getPolynomialWeights | ( | ) |
Returns a pointer to the internal weight that are used to evaluate the polynomial coefficients.
Definition at line 2176 of file reconstruction.cpp.
const double * bitpit::ReconstructionKernel::getPolynomialWeights | ( | ) | const |
Returns a constant pointer to the internal weight that are used to evaluate the polynomial coefficients.
Definition at line 2164 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::initialize | ( | uint8_t | degree, |
uint8_t | dimensions, | ||
int | nEquations, | ||
bool | release = true ) |
Initialize the kernel.
degree | is the degree of the polynomial |
dimensions | is the number of space dimensions |
nEquations | is the number of equations that defines the reconstruction |
release | if true, possible unneeded memory hold by the kernel will be released, otherwise the kernel will be initialized but possible unneeded memory will not be released |
Definition at line 2090 of file reconstruction.cpp.
ReconstructionKernel & bitpit::ReconstructionKernel::operator= | ( | const ReconstructionKernel & | other | ) |
Copy-assignment operator.
other | is another reconstruction whose content is copied in this reconstruction |
Definition at line 2056 of file reconstruction.cpp.
|
noexcept |
Exchanges the content of the reconstruction by the content the specified other reconstruction.
other | is another reconstruction whose content is swapped with that of this reconstruction |
Definition at line 2071 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::updatePolynomial | ( | const double * | values, |
ReconstructionPolynomial * | polynomial ) const |
Updates the polynomial for the specified values.
Before computing polynomial coefficients, the polynomial will not be initialized.
The values need to be passed in the same order as the equations.
values | are the values associated with the equations | |
[out] | polynomial | on output will contain the polynomial |
Definition at line 2312 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::updatePolynomial | ( | int | nFields, |
const double ** | values, | ||
ReconstructionPolynomial * | polynomial ) const |
Updates the polynomial for the specified values.
Before computing polynomial coefficients, the polynomial will not be initialized.
The values need to be passed in the same order as the equations.
values | are the values associated with the equations, values are grouped by equation, this means that the first element will contain all the values associated with the first equation, the second element will contain the values associated with the second equation, and so on and so forth | |
[out] | polynomial | on output will contain the polynomial |
Definition at line 2333 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::updatePolynomial | ( | uint8_t | degree, |
const double * | values, | ||
ReconstructionPolynomial * | polynomial ) const |
Updates the polynomial for the specified values.
Before computing polynomial coefficients, the polynomial will not be initialized.
The degree of the polynomial cannot be higher than the degree of the kernel.
The values need to be passed in the same order as the equations.
degree | is the degree of the polynomial | |
values | are the values associated with the equations | |
[out] | polynomial | on output will contain the polynomial |
Definition at line 2354 of file reconstruction.cpp.
void bitpit::ReconstructionKernel::updatePolynomial | ( | uint8_t | degree, |
int | nFields, | ||
const double ** | values, | ||
ReconstructionPolynomial * | polynomial ) const |
Updates the polynomial for the specified values.
Before computing polynomial coefficients, the polynomial will not be initialized.
The degree of the polynomial cannot be higher than the degree of the kernel.
The values need to be passed in the same order as the equations.
degree | is the degree of the polynomial | |
nFields | is the number of fields associated with the polynomial | |
values | are the values associated with the equations, values are grouped by equation, this means that the first element will contain all the values associated with the first equation, the second element will contain the values associated with the second equation, and so on and so forth | |
[out] | polynomial | on output will contain the polynomial |
Definition at line 2409 of file reconstruction.cpp.