Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
bitpit::ReconstructionKernel Class Reference

The ReconstructionKernel class allows to evaluate the weight of a reconstruction polynomial previously assembled. More...

Inheritance diagram for bitpit::ReconstructionKernel:
Inheritance graph
[legend]

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)
 
ReconstructionKerneloperator= (const ReconstructionKernel &other)
 
ReconstructionKerneloperator= (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
 

Detailed Description

The ReconstructionKernel class allows to evaluate the weight of a reconstruction polynomial previously assembled.

Definition at line 169 of file reconstruction.hpp.

Constructor & Destructor Documentation

◆ ReconstructionKernel() [1/3]

bitpit::ReconstructionKernel::ReconstructionKernel ( )

Constructor.

Definition at line 2016 of file reconstruction.cpp.

◆ ReconstructionKernel() [2/3]

bitpit::ReconstructionKernel::ReconstructionKernel ( uint8_t degree,
uint8_t dimensions,
int nEquations )

Constructor.

Parameters
degreeis the degree of the polynomial
dimensionsis the number of space dimensions
nEquationsis the number of equations that defines the reconstruction

Definition at line 2029 of file reconstruction.cpp.

◆ ReconstructionKernel() [3/3]

bitpit::ReconstructionKernel::ReconstructionKernel ( const ReconstructionKernel & other)

Copy constructor

Parameters
otheris another reconstruction whose content is copied in this reconstruction

Definition at line 2041 of file reconstruction.cpp.

Member Function Documentation

◆ applyLimiter()

void bitpit::ReconstructionKernel::applyLimiter ( uint8_t degree,
const double * limiters,
double * coeffs ) const
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).

Parameters
degreeis the degree of the polynomial
limitersare the scale factors of the limiter
[in,out]coeffsare the coefficients to be limited

Definition at line 3067 of file reconstruction.cpp.

◆ assemblePolynomial() [1/4]

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.

Parameters
originis the point chosen as origin of the reconstruction
valuesare the values associated with the equations
[out]polynomialon output will contain the polynomial

Definition at line 2193 of file reconstruction.cpp.

◆ assemblePolynomial() [2/4]

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.

Parameters
originis the point chosen as origin of the reconstruction
nFieldsis the number of fields associated with the polynomial
valuesare 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]polynomialon output will contain the polynomial

Definition at line 2225 of file reconstruction.cpp.

◆ assemblePolynomial() [3/4]

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.

Parameters
degreeis the degree of the polynomial
originis the point chosen as origin of the reconstruction
valuesare the values associated with the equations
[out]polynomialon output will contain the polynomial

Definition at line 2255 of file reconstruction.cpp.

◆ assemblePolynomial() [4/4]

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.

Parameters
degreeis the degree of the polynomial
originis the point chosen as origin of the reconstruction
valuesare 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]polynomialon output will contain the polynomial

Definition at line 2288 of file reconstruction.cpp.

◆ computeDerivativeLimitedWeights() [1/3]

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).

Parameters
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
directionis the direction of the derivative
limitersare the scale factors of the limiters
[out]derivativeWeightson output will contain the weights of the derivative

Definition at line 2745 of file reconstruction.cpp.

◆ computeDerivativeLimitedWeights() [2/3]

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).

Parameters
nEquationsis the number of equations that will be considered
degreeis the degree of the polynomial
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
directionis the direction of the derivative
limitersare the scale factors of the limiters
[out]derivativeWeightson output will contain the weights of the derivative

Definition at line 2816 of file reconstruction.cpp.

◆ computeDerivativeLimitedWeights() [3/3]

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).

Parameters
degreeis the degree of the polynomial
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
directionis the direction of the derivative
limitersare the scale factors of the limiters
[out]derivativeWeightson output will contain the weights of the derivative

Definition at line 2780 of file reconstruction.cpp.

◆ computeDerivativeWeights() [1/3]

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.

Parameters
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
directionis the direction of the derivative
[out]derivativeWeightson output will contain the weights of the derivative

Definition at line 2660 of file reconstruction.cpp.

◆ computeDerivativeWeights() [2/3]

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.

Parameters
nEquationsis the number of equations that will be considered
degreeis the degree of the polynomial
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
directionis the direction of the derivative
[out]derivativeWeightson output will contain the weights of the derivative

Definition at line 2715 of file reconstruction.cpp.

◆ computeDerivativeWeights() [3/3]

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.

Parameters
degreeis the degree of the polynomial
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
directionis the direction of the derivative
[out]derivativeWeightson output will contain the weights of the derivative

Definition at line 2687 of file reconstruction.cpp.

◆ computeGradientLimitedWeights() [1/3]

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).

Parameters
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
[out]gradientWeightson output will contain the weights of the gradient

Definition at line 2942 of file reconstruction.cpp.

◆ computeGradientLimitedWeights() [2/3]

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).

Parameters
nEquationsis the number of equations that will be considered
degreeis the degree of the polynomial
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
[out]gradientWeightson output will contain the weights of the gradient

Definition at line 3005 of file reconstruction.cpp.

◆ computeGradientLimitedWeights() [3/3]

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).

Parameters
degreeis the degree of the polynomial
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
[out]gradientWeightson output will contain the weights of the gradient

Definition at line 2973 of file reconstruction.cpp.

◆ computeGradientWeights() [1/3]

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.

Parameters
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
[out]gradientWeightson output will contain the weights of the gradient

Definition at line 2864 of file reconstruction.cpp.

◆ computeGradientWeights() [2/3]

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.

Parameters
nEquationsis the number of equations that will be considered
degreeis the degree of the polynomial
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
[out]gradientWeightson output will contain the weights of the gradient

Definition at line 2915 of file reconstruction.cpp.

◆ computeGradientWeights() [3/3]

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.

Parameters
degreeis the degree of the polynomial
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
[out]gradientWeightson output will contain the weights of the gradient

Definition at line 2889 of file reconstruction.cpp.

◆ computeValueLimitedWeights() [1/3]

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).

Parameters
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
limitersare the scale factors of the limiter
[out]valueWeightson output will contain the weights of the reconstruction

Definition at line 2546 of file reconstruction.cpp.

◆ computeValueLimitedWeights() [2/3]

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).

Parameters
nEquationsis the number of equations that will be considered
degreeis the degree of the polynomial
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
limitersare the scale factors of the limiter
[out]valueWeightson output will contain the weights of the reconstruction

Definition at line 2607 of file reconstruction.cpp.

◆ computeValueLimitedWeights() [3/3]

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).

Parameters
degreeis the degree of the polynomial
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
limitersare the scale factors of the limiter
[out]valueWeightson output will contain the weights of the reconstruction

Definition at line 2574 of file reconstruction.cpp.

◆ computeValueWeights() [1/3]

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.

Parameters
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
[out]valueWeightson output will contain the weights of the reconstruction

Definition at line 2469 of file reconstruction.cpp.

◆ computeValueWeights() [2/3]

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.

Parameters
nEquationsis the number of equations that will be considered
degreeis the degree of the polynomial
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
[out]valueWeightson output will contain the weights of the reconstruction

Definition at line 2519 of file reconstruction.cpp.

◆ computeValueWeights() [3/3]

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.

Parameters
degreeis the degree of the polynomial
originis the point chosen as origin of the reconstruction
pointis the point were the reconstruction will be evaluated
[out]valueWeightson output will contain the weights of the reconstruction

Definition at line 2493 of file reconstruction.cpp.

◆ display()

void bitpit::ReconstructionKernel::display ( std::ostream & out,
double tolerance = 1.e-10 ) const

Displays reconstruction polynomial information to an output stream.

Parameters
outis the output stream
toleranceis the tolerance below which the weight will not be displayed

Definition at line 3095 of file reconstruction.cpp.

◆ getCoefficientCount()

uint16_t bitpit::ReconstructionKernel::getCoefficientCount ( ) const

Get the number of coefficients of the reconstruction polynomial.

Returns
The number of coefficients of the reconstruction polynomial.

Definition at line 2142 of file reconstruction.cpp.

◆ getDegree()

uint8_t bitpit::ReconstructionKernel::getDegree ( ) const

Get the degree of the polynomial.

Returns
The degree of the polynomial.

Definition at line 2122 of file reconstruction.cpp.

◆ getDimensions()

uint8_t bitpit::ReconstructionKernel::getDimensions ( ) const

Get the number of space dimensions.

Returns
The number of space dimensions.

Definition at line 2132 of file reconstruction.cpp.

◆ getEquationCount()

int bitpit::ReconstructionKernel::getEquationCount ( ) const

Get the number of equations associated with the reconstruction.

Returns
The number of equations associated with the reconstruction.

Definition at line 2152 of file reconstruction.cpp.

◆ getPolynomialWeights() [1/2]

double * bitpit::ReconstructionKernel::getPolynomialWeights ( )

Returns a pointer to the internal weight that are used to evaluate the polynomial coefficients.

Returns
A pointer to the internal weight that are used to evaluate the polynomial coefficients.

Definition at line 2176 of file reconstruction.cpp.

◆ getPolynomialWeights() [2/2]

const double * bitpit::ReconstructionKernel::getPolynomialWeights ( ) const

Returns a constant pointer to the internal weight that are used to evaluate the polynomial coefficients.

Returns
A constant pointer to the internal weight that are used to evaluate the polynomial coefficients.

Definition at line 2164 of file reconstruction.cpp.

◆ initialize()

void bitpit::ReconstructionKernel::initialize ( uint8_t degree,
uint8_t dimensions,
int nEquations,
bool release = true )

Initialize the kernel.

Parameters
degreeis the degree of the polynomial
dimensionsis the number of space dimensions
nEquationsis the number of equations that defines the reconstruction
releaseif 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.

◆ operator=()

ReconstructionKernel & bitpit::ReconstructionKernel::operator= ( const ReconstructionKernel & other)

Copy-assignment operator.

Parameters
otheris another reconstruction whose content is copied in this reconstruction

Definition at line 2056 of file reconstruction.cpp.

◆ swap()

void bitpit::ReconstructionKernel::swap ( ReconstructionKernel & other)
noexcept

Exchanges the content of the reconstruction by the content the specified other reconstruction.

Parameters
otheris another reconstruction whose content is swapped with that of this reconstruction

Definition at line 2071 of file reconstruction.cpp.

◆ updatePolynomial() [1/4]

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.

Parameters
valuesare the values associated with the equations
[out]polynomialon output will contain the polynomial

Definition at line 2312 of file reconstruction.cpp.

◆ updatePolynomial() [2/4]

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.

Parameters
valuesare 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]polynomialon output will contain the polynomial

Definition at line 2333 of file reconstruction.cpp.

◆ updatePolynomial() [3/4]

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.

Parameters
degreeis the degree of the polynomial
valuesare the values associated with the equations
[out]polynomialon output will contain the polynomial

Definition at line 2354 of file reconstruction.cpp.

◆ updatePolynomial() [4/4]

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.

Parameters
degreeis the degree of the polynomial
nFieldsis the number of fields associated with the polynomial
valuesare 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]polynomialon output will contain the polynomial

Definition at line 2409 of file reconstruction.cpp.


The documentation for this class was generated from the following files:
--- layout: doxygen_footer ---