The ReconstructionPolynomial class allows to apply a reconstruction polynomial previously assembled. More...
Public Member Functions | |
ReconstructionPolynomial () | |
ReconstructionPolynomial (const ReconstructionPolynomial &other) | |
ReconstructionPolynomial (ReconstructionPolynomial &&other)=default | |
ReconstructionPolynomial (uint8_t degree, uint8_t dimensions, const std::array< double, 3 > &origin, int nFields=1) | |
void | clear (bool release=true) |
void | computeDerivative (const std::array< double, 3 > &point, const std::array< double, 3 > &direction, int field, double *derivative) const |
void | computeDerivative (int degree, const std::array< double, 3 > &point, const std::array< double, 3 > &direction, int field, double *derivative) const |
void | computeDerivativeLimited (const std::array< double, 3 > &point, const std::array< double, 3 > &direction, const double *limiters, int field, double *derivative) const |
void | computeDerivativeLimited (int degree, const std::array< double, 3 > &point, const std::array< double, 3 > &direction, const double *limiters, int field, double *derivative) const |
void | computeDerivatives (const std::array< double, 3 > &point, const std::array< double, 3 > &direction, double *derivatives) const |
void | computeDerivatives (const std::array< double, 3 > &point, const std::array< double, 3 > &direction, int nFields, double *derivatives) const |
void | computeDerivatives (const std::array< double, 3 > &point, const std::array< double, 3 > &direction, int nFields, int offset, double *derivatives) const |
void | computeDerivatives (int degree, const std::array< double, 3 > &point, const std::array< double, 3 > &direction, double *derivatives) const |
void | computeDerivatives (int degree, const std::array< double, 3 > &point, const std::array< double, 3 > &direction, int nFields, double *derivatives) const |
void | computeDerivatives (int degree, const std::array< double, 3 > &point, const std::array< double, 3 > &direction, int nFields, int offset, double *derivatives) const |
void | computeDerivativesLimited (const std::array< double, 3 > &point, const std::array< double, 3 > &direction, const double *limiters, double *derivatives) const |
void | computeDerivativesLimited (const std::array< double, 3 > &point, const std::array< double, 3 > &direction, const double *limiters, int nFields, double *derivatives) const |
void | computeDerivativesLimited (const std::array< double, 3 > &point, const std::array< double, 3 > &direction, const double *limiters, int nFields, int offset, double *derivatives) const |
void | computeDerivativesLimited (int degree, const std::array< double, 3 > &point, const std::array< double, 3 > &direction, const double *limiters, double *derivatives) const |
void | computeDerivativesLimited (int degree, const std::array< double, 3 > &point, const std::array< double, 3 > &direction, const double *limiters, int nFields, double *derivatives) const |
void | computeDerivativesLimited (int degree, const std::array< double, 3 > &point, const std::array< double, 3 > &direction, const double *limiters, int nFields, int offset, double *derivatives) const |
void | computeGradient (const std::array< double, 3 > &point, int field, std::array< double, 3 > *gradient) const |
void | computeGradient (int degree, const std::array< double, 3 > &point, int field, std::array< double, 3 > *gradient) const |
void | computeGradientLimited (const std::array< double, 3 > &point, const double *limiters, int field, std::array< double, 3 > *gradient) const |
void | computeGradientLimited (int degree, const std::array< double, 3 > &point, const double *limiters, int field, std::array< double, 3 > *gradient) const |
void | computeGradients (const std::array< double, 3 > &point, int nFields, int offset, std::array< double, 3 > *gradients) const |
void | computeGradients (const std::array< double, 3 > &point, int nFields, std::array< double, 3 > *gradients) const |
void | computeGradients (const std::array< double, 3 > &point, std::array< double, 3 > *gradients) const |
void | computeGradients (int degree, const std::array< double, 3 > &point, int nFields, int offset, std::array< double, 3 > *gradients) const |
void | computeGradients (int degree, const std::array< double, 3 > &point, int nFields, std::array< double, 3 > *gradients) const |
void | computeGradients (int degree, const std::array< double, 3 > &point, std::array< double, 3 > *gradients) const |
void | computeGradientsLimited (const std::array< double, 3 > &point, const double *limiters, int nFields, int offset, std::array< double, 3 > *gradients) const |
void | computeGradientsLimited (const std::array< double, 3 > &point, const double *limiters, int nFields, std::array< double, 3 > *gradients) const |
void | computeGradientsLimited (const std::array< double, 3 > &point, const double *limiters, std::array< double, 3 > *gradients) const |
void | computeGradientsLimited (int degree, const std::array< double, 3 > &point, const double *limiters, int nFields, int offset, std::array< double, 3 > *gradients) const |
void | computeGradientsLimited (int degree, const std::array< double, 3 > &point, const double *limiters, int nFields, std::array< double, 3 > *gradients) const |
void | computeGradientsLimited (int degree, const std::array< double, 3 > &point, const double *limiters, std::array< double, 3 > *gradients) const |
void | computeValue (const std::array< double, 3 > &point, int field, double *values) const |
void | computeValue (int degree, const std::array< double, 3 > &point, int field, double *values) const |
void | computeValueLimited (const std::array< double, 3 > &point, const double *limiters, int field, double *value) const |
void | computeValueLimited (int degree, const std::array< double, 3 > &point, const double *limiters, int field, double *values) const |
void | computeValues (const std::array< double, 3 > &point, double *values) const |
void | computeValues (const std::array< double, 3 > &point, int nFields, double *values) const |
void | computeValues (const std::array< double, 3 > &point, int nFields, int offset, double *values) const |
void | computeValues (int degree, const std::array< double, 3 > &point, double *values) const |
void | computeValues (int degree, const std::array< double, 3 > &point, int nFields, double *values) const |
void | computeValues (int degree, const std::array< double, 3 > &point, int nFields, int offset, double *values) const |
void | computeValuesLimited (const std::array< double, 3 > &point, const double *limiters, double *values) const |
void | computeValuesLimited (const std::array< double, 3 > &point, const double *limiters, int nFields, double *values) const |
void | computeValuesLimited (const std::array< double, 3 > &point, const double *limiters, int nFields, int offset, double *values) const |
void | computeValuesLimited (int degree, const std::array< double, 3 > &point, const double *limiters, double *values) const |
void | computeValuesLimited (int degree, const std::array< double, 3 > &point, const double *limiters, int nFields, double *values) const |
void | computeValuesLimited (int degree, const std::array< double, 3 > &point, const double *limiters, int nFields, int offset, double *values) const |
void | display (std::ostream &out) const |
uint16_t | getCoefficientCount () const |
double * | getCoefficients () |
const double * | getCoefficients () const |
double * | getCoefficients (int field) |
const double * | getCoefficients (int field) const |
uint8_t | getDegree () const |
double * | getDegreeCoefficients (uint8_t degree, int field=0) |
const double * | getDegreeCoefficients (uint8_t degree, int field=0) const |
uint8_t | getDimensions () const |
int | getFieldCount () const |
const std::array< double, 3 > & | getOrigin () const |
void | initialize (uint8_t degree, uint8_t dimensions, const std::array< double, 3 > &origin, int nFields=1, bool release=true) |
ReconstructionPolynomial & | operator= (const ReconstructionPolynomial &other) |
ReconstructionPolynomial & | operator= (ReconstructionPolynomial &&other)=default |
void | swap (ReconstructionPolynomial &other) noexcept |
Static Protected Member Functions | |
static uint16_t | countCoefficients (uint8_t degree, uint8_t dimensions) |
static uint16_t | countDegreeCoefficients (uint8_t degree, uint8_t dimensions) |
static void | evalCellBasisValues (uint8_t degree, uint8_t dimensions, const std::array< double, 3 > &origin, const Cell &cell, const std::array< double, 3 > *vertexCoords, double *csi) |
static void | evalPointBasisDerivatives (uint8_t degree, uint8_t dimensions, const std::array< double, 3 > &origin, const std::array< double, 3 > &point, const std::array< double, 3 > &direction, double *dcsi) |
static void | evalPointBasisValues (uint8_t degree, uint8_t dimensions, const std::array< double, 3 > &origin, const std::array< double, 3 > &point, double *csi) |
static uint16_t | getCoefficientCount (uint8_t degree, uint8_t dimensions) |
static const std::vector< uint16_t > & | getCoefficientsCount (uint8_t dimensions) |
static uint16_t | getDegreeCoefficientCount (uint8_t degree, uint8_t dimensions) |
static const std::vector< uint16_t > & | getDegreeCoefficientsCount (uint8_t dimensions) |
Static Protected Attributes | |
static const uint8_t | MAX_DEGREE = 2 |
static const uint8_t | MAX_DIMENSIONS = 3 |
Friends | |
class | ReconstructionAssembler |
class | ReconstructionKernel |
The ReconstructionPolynomial class allows to apply a reconstruction polynomial previously assembled.
Definition at line 37 of file reconstruction.hpp.
bitpit::ReconstructionPolynomial::ReconstructionPolynomial | ( | ) |
Constructor.
Definition at line 408 of file reconstruction.cpp.
bitpit::ReconstructionPolynomial::ReconstructionPolynomial | ( | uint8_t | degree, |
uint8_t | dimensions, | ||
const std::array< double, 3 > & | origin, | ||
int | nFields = 1 ) |
Constructor.
degree | is the degree of the polynomial |
dimensions | is the number of space dimensions |
nFields | is the number of fields associated with the polynomial |
Definition at line 421 of file reconstruction.cpp.
bitpit::ReconstructionPolynomial::ReconstructionPolynomial | ( | const ReconstructionPolynomial & | other | ) |
Copy constructor
other | is another reconstruction whose content is copied in this reconstruction |
Definition at line 434 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::clear | ( | bool | release = true | ) |
Clear the reconstruction.
release | if true, the memory hold by the polynomial will be released, otherwise the polynomial will be cleared but its memory will not be released |
Definition at line 526 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeDerivative | ( | const std::array< double, 3 > & | point, |
const std::array< double, 3 > & | direction, | ||
int | field, | ||
double * | derivative ) const |
Computes the derivative of the polynomial at the specified point.
point | is the point were the derivatives will be evaluated | |
direction | is the direction of the derivative | |
field | is the field for which derivative will be evaluated | |
[out] | derivative | on output will contain the derivatives |
Definition at line 1079 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeDerivative | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
const std::array< double, 3 > & | direction, | ||
int | field, | ||
double * | derivative ) const |
Computes the derivative of the polynomial at the specified point.
degree | is the degree of the polynomial | |
point | is the point were the derivatives will be evaluated | |
direction | is the direction of the derivative | |
field | is the field for which derivative will be evaluated | |
[out] | derivative | on output will contain the derivatives |
Definition at line 1140 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeDerivativeLimited | ( | const std::array< double, 3 > & | point, |
const std::array< double, 3 > & | direction, | ||
const double * | limiters, | ||
int | field, | ||
double * | derivative ) const |
Computes the limited derivative of the polynomial at the specified point.
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).
point | is the point were the derivatives will be evaluated | |
direction | is the direction of the derivative | |
limiters | are the scale factors of the limiters | |
field | is the field for which derivative will be evaluated | |
[out] | derivative | on output will contain the derivatives |
Definition at line 1268 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeDerivativeLimited | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
const std::array< double, 3 > & | direction, | ||
const double * | limiters, | ||
int | field, | ||
double * | derivative ) const |
Computes the limited derivative of the polynomial at the specified point.
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 | |
point | is the point were the derivatives will be evaluated | |
direction | is the direction of the derivative | |
limiters | are the scale factors of the limiters | |
field | is the field for which derivative will be evaluated | |
[out] | derivative | on output will contain the derivatives |
Definition at line 1357 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeDerivatives | ( | const std::array< double, 3 > & | point, |
const std::array< double, 3 > & | direction, | ||
double * | derivatives ) const |
Computes the derivatives of the polynomial at the specified point.
point | is the point were the derivatives will be evaluated | |
direction | is the direction of the derivatives | |
[out] | derivatives | on output will contain the derivatives |
Definition at line 1093 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeDerivatives | ( | const std::array< double, 3 > & | point, |
const std::array< double, 3 > & | direction, | ||
int | nFields, | ||
double * | derivatives ) const |
Computes the derivatives of the polynomial at the specified point.
point | is the point were the derivatives will be evaluated | |
direction | is the direction of the derivatives | |
nFields | is the number of field for which derivatives will be evaluated | |
[out] | derivatives | on output will contain the derivatives |
Definition at line 1108 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeDerivatives | ( | const std::array< double, 3 > & | point, |
const std::array< double, 3 > & | direction, | ||
int | nFields, | ||
int | offset, | ||
double * | derivatives ) const |
Computes the derivatives of the polynomial at the specified point.
point | is the point were the derivatives will be evaluated | |
direction | is the direction of the derivatives | |
nFields | is the number of field for which derivatives will be evaluated | |
offset | is the offset that will be used when reading field data | |
[out] | derivatives | on output will contain the derivatives |
Definition at line 1124 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeDerivatives | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
const std::array< double, 3 > & | direction, | ||
double * | derivatives ) const |
Computes the derivatives of the polynomial at the specified point.
degree | is the degree of the polynomial | |
point | is the point were the derivatives will be evaluated | |
direction | is the direction of the derivatives | |
[out] | derivatives | on output will contain the derivatives |
Definition at line 1155 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeDerivatives | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
const std::array< double, 3 > & | direction, | ||
int | nFields, | ||
double * | derivatives ) const |
Computes the derivatives of the polynomial at the specified point.
degree | is the degree of the polynomial | |
point | is the point were the derivatives will be evaluated | |
direction | is the direction of the derivatives | |
nFields | is the number of field for which derivatives will be evaluated | |
[out] | derivatives | on output will contain the derivatives |
Definition at line 1171 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeDerivatives | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
const std::array< double, 3 > & | direction, | ||
int | nFields, | ||
int | offset, | ||
double * | derivatives ) const |
Computes the derivatives of the polynomial at the specified point.
degree | is the degree of the polynomial | |
point | is the point were the derivatives will be evaluated | |
direction | is the direction of the derivatives | |
nFields | is the number of field for which derivatives will be evaluated | |
offset | is the offset that will be used when reading field data | |
[out] | derivatives | on output will contain the derivatives |
Definition at line 1188 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeDerivativesLimited | ( | const std::array< double, 3 > & | point, |
const std::array< double, 3 > & | direction, | ||
const double * | limiters, | ||
double * | derivatives ) const |
Computes the limited derivatives of the polynomial at the specified point.
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).
point | is the point were the derivatives will be evaluated | |
direction | is the direction of the derivatives | |
limiters | are the scale factors of the limiters | |
[out] | derivatives | on output will contain the derivatives |
Definition at line 1289 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeDerivativesLimited | ( | const std::array< double, 3 > & | point, |
const std::array< double, 3 > & | direction, | ||
const double * | limiters, | ||
int | nFields, | ||
double * | derivatives ) const |
Computes the limited derivatives of the polynomial at the specified point.
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).
point | is the point were the derivatives will be evaluated | |
direction | is the direction of the derivatives | |
limiters | are the scale factors of the limiters | |
nFields | is the number of field for which derivatives will be evaluated | |
[out] | derivatives | on output will contain the derivatives |
Definition at line 1311 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeDerivativesLimited | ( | const std::array< double, 3 > & | point, |
const std::array< double, 3 > & | direction, | ||
const double * | limiters, | ||
int | nFields, | ||
int | offset, | ||
double * | derivatives ) const |
Computes the limited derivatives of the polynomial at the specified point.
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).
point | is the point were the derivatives will be evaluated | |
direction | is the direction of the derivatives | |
limiters | are the scale factors of the limiters | |
nFields | is the number of field for which derivatives will be evaluated | |
offset | is the offset that will be used when reading field data | |
[out] | derivatives | on output will contain the derivatives |
Definition at line 1334 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeDerivativesLimited | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
const std::array< double, 3 > & | direction, | ||
const double * | limiters, | ||
double * | derivatives ) const |
Computes the limited derivatives of the polynomial at the specified point.
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 | |
point | is the point were the derivatives will be evaluated | |
direction | is the direction of the derivatives | |
limiters | are the scale factors of the limiters | |
[out] | derivatives | on output will contain the derivatives |
Definition at line 1379 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeDerivativesLimited | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
const std::array< double, 3 > & | direction, | ||
const double * | limiters, | ||
int | nFields, | ||
double * | derivatives ) const |
Computes the limited derivatives of the polynomial at the specified point.
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 | |
point | is the point were the derivatives will be evaluated | |
direction | is the direction of the derivatives | |
limiters | are the scale factors of the limiters | |
nFields | is the number of field for which derivatives will be evaluated | |
[out] | derivatives | on output will contain the derivatives |
Definition at line 1402 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeDerivativesLimited | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
const std::array< double, 3 > & | direction, | ||
const double * | limiters, | ||
int | nFields, | ||
int | offset, | ||
double * | derivatives ) const |
Computes the limited derivatives of the polynomial at the specified point.
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 | |
point | is the point were the derivatives will be evaluated | |
direction | is the direction of the derivatives | |
limiters | are the scale factors of the limiters | |
nFields | is the number of field for which derivatives will be evaluated | |
offset | is the offset that will be used when reading field data | |
[out] | derivatives | on output will contain the derivatives |
Definition at line 1426 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeGradient | ( | const std::array< double, 3 > & | point, |
int | field, | ||
std::array< double, 3 > * | gradient ) const |
Computes the gradient of the polynomial at the specified point.
point | is the point were the gradient will be evaluated | |
field | is the field for which gradient will be evaluated | |
[out] | gradient | on output will contain the gradient |
Definition at line 1520 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeGradient | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
int | field, | ||
std::array< double, 3 > * | gradient ) const |
Computes the gradient of the polynomial at the specified point.
degree | is the degree of the polynomial | |
point | is the point were the gradient will be evaluated | |
field | is the field for which gradient will be evaluated | |
[out] | gradient | on output will contain the gradient |
Definition at line 1574 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeGradientLimited | ( | const std::array< double, 3 > & | point, |
const double * | limiters, | ||
int | field, | ||
std::array< double, 3 > * | gradient ) const |
Computes the limited gradient of the polynomial at the specified point.
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).
point | is the point were the gradient will be evaluated | |
limiters | are the scale factors of the limiters | |
field | is the field for which gradient will be evaluated | |
[out] | gradient | on output will contain the gradient |
Definition at line 1716 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeGradientLimited | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
const double * | limiters, | ||
int | field, | ||
std::array< double, 3 > * | gradient ) const |
Computes the limited gradient of the polynomial at the specified point.
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 limiters | |
point | is the point were the gradient will be evaluated | |
field | is the field for which gradient will be evaluated | |
[out] | gradient | on output will contain the gradient |
Definition at line 1797 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeGradients | ( | const std::array< double, 3 > & | point, |
int | nFields, | ||
int | offset, | ||
std::array< double, 3 > * | gradients ) const |
Computes the gradients of the polynomial at the specified point.
point | is the point were the gradients will be evaluated | |
nFields | is the number of field for which gradients will be evaluated | |
offset | is the offset that will be used when reading field data | |
[out] | gradients | on output will contain the gradients |
Definition at line 1559 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeGradients | ( | const std::array< double, 3 > & | point, |
int | nFields, | ||
std::array< double, 3 > * | gradients ) const |
Computes the gradients of the polynomial at the specified point.
point | is the point were the gradients will be evaluated | |
nFields | is the number of field for which gradients will be evaluated | |
[out] | gradients | on output will contain the gradients |
Definition at line 1545 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeGradients | ( | const std::array< double, 3 > & | point, |
std::array< double, 3 > * | gradients ) const |
Computes the gradients of the polynomial at the specified point.
point | is the point were the gradients will be evaluated | |
[out] | gradients | on output will contain the gradients |
Definition at line 1532 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeGradients | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
int | nFields, | ||
int | offset, | ||
std::array< double, 3 > * | gradients ) const |
Computes the gradients of the polynomial at the specified point.
degree | is the degree of the polynomial | |
point | is the point were the gradients will be evaluated | |
nFields | is the number of field for which gradients will be evaluated | |
offset | is the offset that will be used when reading field data | |
[out] | gradients | on output will contain the gradients |
Definition at line 1616 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeGradients | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
int | nFields, | ||
std::array< double, 3 > * | gradients ) const |
Computes the gradients of the polynomial at the specified point.
degree | is the degree of the polynomial | |
point | is the point were the gradients will be evaluated | |
nFields | is the number of field for which gradients will be evaluated | |
[out] | gradients | on output will contain the gradients |
Definition at line 1601 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeGradients | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
std::array< double, 3 > * | gradients ) const |
Computes the gradients of the polynomial at the specified point.
degree | is the degree of the polynomial | |
point | is the point were the gradients will be evaluated | |
[out] | gradients | on output will contain the gradients |
Definition at line 1587 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeGradientsLimited | ( | const std::array< double, 3 > & | point, |
const double * | limiters, | ||
int | nFields, | ||
int | offset, | ||
std::array< double, 3 > * | gradients ) const |
Computes the limited gradients of the polynomial at the specified point.
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).
point | is the point were the gradients will be evaluated | |
limiters | are the scale factors of the limiters | |
nFields | is the number of field for which gradients will be evaluated | |
offset | is the offset that will be used when reading field data | |
[out] | gradients | on output will contain the gradients |
Definition at line 1776 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeGradientsLimited | ( | const std::array< double, 3 > & | point, |
const double * | limiters, | ||
int | nFields, | ||
std::array< double, 3 > * | gradients ) const |
Computes the limited gradients of the polynomial at the specified point.
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).
point | is the point were the gradients will be evaluated | |
limiters | are the scale factors of the limiters | |
nFields | is the number of field for which gradients will be evaluated | |
[out] | gradients | on output will contain the gradients |
Definition at line 1755 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeGradientsLimited | ( | const std::array< double, 3 > & | point, |
const double * | limiters, | ||
std::array< double, 3 > * | gradients ) const |
Computes the limited gradients of the polynomial at the specified point.
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).
point | is the point were the gradients will be evaluated | |
limiters | are the scale factors of the limiters | |
[out] | gradients | on output will contain the gradients |
Definition at line 1735 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeGradientsLimited | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
const double * | limiters, | ||
int | nFields, | ||
int | offset, | ||
std::array< double, 3 > * | gradients ) const |
Computes the limited gradients of the polynomial at the specified point.
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 | |
point | is the point were the gradients will be evaluated | |
limiters | are the scale factors of the limiters | |
nFields | is the number of field for which gradients will be evaluated | |
offset | is the offset that will be used when reading field data | |
[out] | gradients | on output will contain the gradients |
Definition at line 1860 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeGradientsLimited | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
const double * | limiters, | ||
int | nFields, | ||
std::array< double, 3 > * | gradients ) const |
Computes the limited gradients of the polynomial at the specified point.
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 | |
point | is the point were the gradients will be evaluated | |
limiters | are the scale factors of the limiters | |
nFields | is the number of field for which gradients will be evaluated | |
[out] | gradients | on output will contain the gradients |
Definition at line 1838 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeGradientsLimited | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
const double * | limiters, | ||
std::array< double, 3 > * | gradients ) const |
Computes the limited gradients of the polynomial at the specified point.
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 | |
point | is the point were the gradients will be evaluated | |
limiters | are the scale factors of the limiters | |
[out] | gradients | on output will contain the gradients |
Definition at line 1817 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeValue | ( | const std::array< double, 3 > & | point, |
int | field, | ||
double * | value ) const |
Computes the value of the polynomial at the specified point.
point | is the point were the polynomial will be evaluated | |
field | is the field that will be evaluated | |
[out] | value | on output will contain the values of the polynomial |
Definition at line 697 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeValue | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
int | field, | ||
double * | values ) const |
Computes the value of the polynomial at the specified point.
degree | is the degree of the polynomial | |
point | is the point were the polynomial will be evaluated | |
field | is the field that will be evaluated | |
[out] | values | on output will contain the values of the polynomial |
Definition at line 750 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeValueLimited | ( | const std::array< double, 3 > & | point, |
const double * | limiters, | ||
int | field, | ||
double * | values ) const |
Computes the limited value of the polynomial at the specified point.
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).
point | is the point were the polynomial will be evaluated | |
limiters | are the scale factors of the limiters | |
field | is the field that will be evaluated | |
[out] | values | on output will contain the values of the polynomial |
Definition at line 856 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeValueLimited | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
const double * | limiters, | ||
int | field, | ||
double * | values ) const |
Computes the limited value of the polynomial at the specified point.
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 | |
point | is the point were the polynomial will be evaluated | |
limiters | are the scale factors of the limiters | |
field | is the field that will be evaluated | |
[out] | values | on output will contain the values of the polynomial |
Definition at line 937 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeValues | ( | const std::array< double, 3 > & | point, |
double * | values ) const |
Computes the values of the polynomial at the specified point.
point | is the point were the polynomial will be evaluated | |
[out] | values | on output will contain the values of the polynomial |
Definition at line 709 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeValues | ( | const std::array< double, 3 > & | point, |
int | nFields, | ||
double * | values ) const |
Computes the values of the polynomial at the specified point.
point | is the point were the polynomial will be evaluated | |
nFields | is the number of fields that will be evaluated | |
[out] | values | on output will contain the values of the polynomial |
Definition at line 722 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeValues | ( | const std::array< double, 3 > & | point, |
int | nFields, | ||
int | offset, | ||
double * | values ) const |
Computes the values of the polynomial at the specified point.
point | is the point were the polynomial will be evaluated | |
nFields | is the number of fields that will be evaluated | |
offset | is the offset that will be used when reading field data | |
[out] | values | on output will contain the values of the polynomial |
Definition at line 736 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeValues | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
double * | values ) const |
Computes the values of the polynomial at the specified point.
degree | is the degree of the polynomial | |
point | is the point were the polynomial will be evaluated | |
[out] | values | on output will contain the values of the polynomial |
Definition at line 763 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeValues | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
int | nFields, | ||
double * | values ) const |
Computes the values of the polynomial at the specified point.
degree | is the degree of the polynomial | |
point | is the point were the polynomial will be evaluated | |
nFields | is the number of fields that will be evaluated | |
[out] | values | on output will contain the values of the polynomial |
Definition at line 777 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeValues | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
int | nFields, | ||
int | offset, | ||
double * | values ) const |
Computes the values of the polynomial at the specified point.
degree | is the degree of the polynomial | |
point | is the point were the polynomial will be evaluated | |
nFields | is the number of fields that will be evaluated | |
offset | is the offset that will be used when reading field data | |
[out] | values | on output will contain the values of the polynomial |
Definition at line 792 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeValuesLimited | ( | const std::array< double, 3 > & | point, |
const double * | limiters, | ||
double * | values ) const |
Computes the limited values of the polynomial at the specified point.
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).
point | is the point were the polynomial will be evaluated | |
limiters | are the scale factors of the limiters | |
[out] | values | on output will contain the values of the polynomial |
Definition at line 875 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeValuesLimited | ( | const std::array< double, 3 > & | point, |
const double * | limiters, | ||
int | nFields, | ||
double * | values ) const |
Computes the limited values of the polynomial at the specified point.
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).
point | is the point were the polynomial will be evaluated | |
limiters | are the scale factors of the limiters | |
nFields | is the number of fields that will be evaluated | |
[out] | values | on output will contain the values of the polynomial |
Definition at line 895 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeValuesLimited | ( | const std::array< double, 3 > & | point, |
const double * | limiters, | ||
int | nFields, | ||
int | offset, | ||
double * | values ) const |
Computes the limited values of the polynomial at the specified point.
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).
point | is the point were the polynomial will be evaluated | |
limiters | are the scale factors of the limiters | |
nFields | is the number of fields that will be evaluated | |
offset | is the offset that will be used when reading field data | |
[out] | values | on output will contain the values of the polynomial |
Definition at line 916 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeValuesLimited | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
const double * | limiters, | ||
double * | values ) const |
Computes the limited values of the polynomial at the specified point.
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 | |
point | is the point were the polynomial will be evaluated | |
limiters | are the scale factors of the limiters | |
[out] | values | on output will contain the values of the polynomial |
Definition at line 957 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeValuesLimited | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
const double * | limiters, | ||
int | nFields, | ||
double * | values ) const |
Computes the limited values of the polynomial at the specified point.
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 | |
point | is the point were the polynomial will be evaluated | |
limiters | are the scale factors of the limiters | |
nFields | is the number of fields that will be evaluated | |
[out] | values | on output will contain the values of the polynomial |
Definition at line 978 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::computeValuesLimited | ( | int | degree, |
const std::array< double, 3 > & | point, | ||
const double * | limiters, | ||
int | nFields, | ||
int | offset, | ||
double * | values ) const |
Computes the limited values of the polynomial at the specified point.
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 | |
point | is the point were the polynomial will be evaluated | |
limiters | are the scale factors of the limiters | |
nFields | is the number of fields that will be evaluated | |
offset | is the offset that will be used when reading field data | |
[out] | values | on output will contain the values of the polynomial |
Definition at line 1000 of file reconstruction.cpp.
|
staticprotected |
Count the number of coefficients of the reconstruction polynomial up to the specified degree.
degree | is the degree |
dimensions | is the number of space dimensions |
Definition at line 148 of file reconstruction.cpp.
|
staticprotected |
Count the number of coefficients associates with the specified degree of the reconstruction polynomial.
degree | is the degree |
dimensions | is the number of space dimensions |
Definition at line 199 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::display | ( | std::ostream & | out | ) | const |
Displays polynomial information to an output stream.
out | is the output stream |
Definition at line 1972 of file reconstruction.cpp.
|
staticprotected |
Evaluates the values of the basis for cell reconstruction.
Basis functions are evaluated as the volume average of the Taylor series expansion coefficients:
/ (1 / V) | (csi_0 * U_0 + csi_1 * U_1 + csi_2 * U_2 + ... ) dV /
where:
Polynomials of degree 0 and 1 are supported on all type of cells, for pixels and voxels also degree 2 is supported.
degree | is the degree of the polynomial | |
dimensions | is the number of space dimensions | |
cell | is the cell | |
origin | is the point chosen as origin of the reconstruction | |
vertexCoords | are the vertices' coordinates | |
[out] | csi | on output will contain the coefficients of the cell average reconstruction |
Definition at line 338 of file reconstruction.cpp.
|
staticprotected |
Evaluates the derivatives of the basis for point reconstruction.
degree | is the degree of the polynomial | |
dimensions | is the number of space dimensions | |
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the basis will be evaluated | |
direction | is the direction of the derivative | |
point | is the point were the basis will be evaluated | |
[out] | dcsi | on output will contain values of the basis for point derivative reconstruction. |
Definition at line 267 of file reconstruction.cpp.
|
staticprotected |
Evaluates the values of the basis for point reconstruction.
degree | is the degree of the polynomial | |
dimensions | is the number of space dimensions | |
origin | is the point chosen as origin of the reconstruction | |
point | is the point were the basis will be evaluated | |
[out] | csi | on output will contain values of the basis for point reconstruction. |
Definition at line 218 of file reconstruction.cpp.
uint16_t bitpit::ReconstructionPolynomial::getCoefficientCount | ( | ) | const |
Get the number of coefficients of the reconstruction polynomial.
Definition at line 571 of file reconstruction.cpp.
|
staticprotected |
Get the number of coefficients of the reconstruction polynomial up to the specified degree.
degree | is the degree |
dimensions | is the number of space dimensions |
Definition at line 116 of file reconstruction.cpp.
double * bitpit::ReconstructionPolynomial::getCoefficients | ( | ) |
Returns a pointer to the coefficients of the polynomial.
Definition at line 601 of file reconstruction.cpp.
const double * bitpit::ReconstructionPolynomial::getCoefficients | ( | ) | const |
Returns a constant pointer to the coefficients of the polynomial.
Definition at line 591 of file reconstruction.cpp.
double * bitpit::ReconstructionPolynomial::getCoefficients | ( | int | field | ) |
Returns a pointer to the coefficients of the polynomial.
field | is the field associated with the coefficients |
Definition at line 625 of file reconstruction.cpp.
const double * bitpit::ReconstructionPolynomial::getCoefficients | ( | int | field | ) | const |
Returns a constant pointer to the coefficients of the polynomial.
field | is the field associated with the coefficients |
Definition at line 612 of file reconstruction.cpp.
|
staticprotected |
Get the number of coefficients of the reconstruction polynomial up to the different degrees.
dimensions | is the number of space dimensions |
Definition at line 132 of file reconstruction.cpp.
uint8_t bitpit::ReconstructionPolynomial::getDegree | ( | ) | const |
Get the degree of the polynomial.
Definition at line 541 of file reconstruction.cpp.
|
staticprotected |
Get the number of coefficients associates with the specified degree of the reconstruction polynomial.
degree | is the degree |
dimensions | is the number of space dimensions |
Definition at line 167 of file reconstruction.cpp.
double * bitpit::ReconstructionPolynomial::getDegreeCoefficients | ( | uint8_t | degree, |
int | field = 0 ) |
Returns a pointer to the coefficients of the polynomial for the specified field.
degree | is the requested degree |
field | is the field associated with the coefficients |
Definition at line 657 of file reconstruction.cpp.
const double * bitpit::ReconstructionPolynomial::getDegreeCoefficients | ( | uint8_t | degree, |
int | field = 0 ) const |
Returns a constant pointer to the coefficients of the polynomial for the specified field.
degree | is the requested degree |
field | is the field associated with the coefficients |
Definition at line 641 of file reconstruction.cpp.
|
staticprotected |
Get the number of coefficients associates with each degree of the reconstruction polynomial.
dimensions | is the number of space dimensions |
Definition at line 183 of file reconstruction.cpp.
uint8_t bitpit::ReconstructionPolynomial::getDimensions | ( | ) | const |
Get the number of space dimensions.
Definition at line 551 of file reconstruction.cpp.
int bitpit::ReconstructionPolynomial::getFieldCount | ( | ) | const |
Get the number of fields associated with the polynomial.
Definition at line 581 of file reconstruction.cpp.
const std::array< double, 3 > & bitpit::ReconstructionPolynomial::getOrigin | ( | ) | const |
Get the origin of the reconstruction.
Definition at line 561 of file reconstruction.cpp.
void bitpit::ReconstructionPolynomial::initialize | ( | uint8_t | degree, |
uint8_t | dimensions, | ||
const std::array< double, 3 > & | origin, | ||
int | nFields = 1, | ||
bool | release = true ) |
Initialize the polynomial.
degree | is the degree of the polynomial |
dimensions | is the number of space dimensions |
origin | is the point chosen as origin of the reconstruction |
nFields | is the number of fields associated with the polynomial |
release | if true, possible unneeded memory hold by the polynomial will be released, otherwise the polynomial will be initialized but possible unneeded memory will not be released |
Definition at line 485 of file reconstruction.cpp.
ReconstructionPolynomial & bitpit::ReconstructionPolynomial::operator= | ( | const ReconstructionPolynomial & | other | ) |
Copy-assignment operator.
other | is another reconstruction whose content is copied in this reconstruction |
Definition at line 449 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 464 of file reconstruction.cpp.
|
friend |
Definition at line 40 of file reconstruction.hpp.
|
friend |
Definition at line 39 of file reconstruction.hpp.
|
staticprotected |
Maximum allowed degree.
Definition at line 128 of file reconstruction.hpp.
|
staticprotected |
Maximum allowed dimensions.
Definition at line 129 of file reconstruction.hpp.