This class provides the algorithms and properties of the Zernike polynomial series. More...
#include <Zernike.h>
Public Member Functions | |
Zernike () | |
Zernike (const std::vector< MooseEnum > &domain, const std::vector< std::size_t > &order, MooseEnum expansion_type, MooseEnum generation_type) | |
virtual Real | getStandardizedFunctionVolume () const override |
Returns the volume within the standardized function local_limits. More... | |
virtual bool | isInPhysicalBounds (const Point &point) const override |
Determines if the point provided is in within the physical bounds. More... | |
virtual std::size_t | calculatedNumberOfTermsBasedOnOrder (const std::vector< std::size_t > &order) const override |
Returns the number of terms in the single series given a value for the order. More... | |
virtual const std::vector< Real > & | getStandardizedFunctionLimits () const override |
Returns a vector of the lower and upper bounds of the standard functional space. More... | |
virtual bool | isCacheInvalid () const final |
Whether the cached values correspond to the current point. More... | |
virtual void | setLocation (const Point &point) final |
Set the location that will be used by the series to compute values. More... | |
virtual void | setOrder (const std::vector< std::size_t > &orders) final |
Set the order of the series. More... | |
virtual void | setPhysicalBounds (const std::vector< Real > &bounds) final |
Sets the bounds of the series. More... | |
std::size_t | getOrder (std::size_t domain) const |
Returns the order of the particular domain index. More... | |
Real | operator[] (std::size_t index) const |
Returns the current evaluation at the given index. More... | |
const std::vector< Real > & | getAllGeneration () |
Returns an array reference containing the value of each generation term. More... | |
const std::vector< Real > & | getAllExpansion () |
Returns an array reference containing the value of each expansion term. More... | |
std::size_t | getNumberOfTerms () const |
Returns the number of terms in the series. More... | |
Real | getGeneration () |
Gets the last term of the generation functional basis. More... | |
Real | getGenerationSeriesSum () |
Gets the sum of all terms in the generation functional basis. More... | |
Real | getExpansion () |
Gets the #_order-th term of the expansion functional basis. More... | |
Real | getExpansionSeriesSum () |
Evaluates the sum of all terms in the expansion functional basis up to #_order. More... | |
bool | isGeneration () const |
Returns true if the current evaluation is generation. More... | |
bool | isExpansion () const |
Returns true if the current evaluation is expansion. More... | |
Public Attributes | |
const std::vector< MooseEnum > | _domains |
An ordered list of the x, y, and/or z domains needed by the functional basis to convert a point to a standardized location. More... | |
Static Public Attributes | |
static MooseEnum | _domain_options |
An enumeration of the domains available to each functional series. More... | |
Protected Member Functions | |
virtual void | evaluateOrthonormal () |
Evaluates the orthonormal form of the basis functions. More... | |
virtual void | evaluateStandard () |
Evaluates the standard form of the basis functions. More... | |
virtual void | evaluateSqrtMu () |
Evaluates the 1/sqrt(mu) normalized form of the basis functions. More... | |
virtual void | checkPhysicalBounds (const std::vector< Real > &bounds) const override |
Checks the physical bounds according to the actual implementation. More... | |
virtual std::vector< Real > | getStandardizedLocation (const std::vector< Real > &location) const override |
Standardize the location according to the requirements of the underlying basis, which may actually convert the Cartesian coordinates into a more suitable system. More... | |
void | fillOutNegativeRankAndApplyAzimuthalComponent () |
Helper function used by evaluateGeneration() and evaluateExpansion(). More... | |
std::size_t | simpleDoubleToSingle (std::size_t n, long m) const |
Maps the double order/rank idices to a single linear index. More... | |
virtual void | evaluateGeneration () override |
Evaluate the generation form of the functional basis. More... | |
virtual void | evaluateExpansion () override |
Evaluate the expansion form of the functional basis. More... | |
std::vector< Real > | extractLocationFromPoint (const Point &point) const |
Convert a spatial point to a location that the series will use to determine the value at which to evaluate the series. More... | |
virtual void | clearBasisEvaluation (const unsigned int &number_of_terms) |
Set all entries of the basis evaluation to zero. More... | |
Real | load (std::size_t index) const |
Helper function to load a value from #_series. More... | |
void | save (std::size_t index, Real value) |
Helper function to store a value in #_series. More... | |
Protected Attributes | |
std::vector< Real > | _negative_azimuthal_components |
Stores the recurrence evaluations for the negative rank azimuthal terms. More... | |
std::vector< Real > | _positive_azimuthal_components |
Stores the recurrence evaluations for the positive rank azimuthal terms. More... | |
std::vector< std::size_t > | _orders |
The order of the series. More... | |
std::vector< Real > | _physical_bounds |
The physical bounds of the series. More... | |
std::vector< Real > | _standardized_location |
The standardized location of evaluation. More... | |
std::function< void()> | _evaluateExpansionWrapper |
The expansion evaluation wrapper. More... | |
std::function< void()> | _evaluateGenerationWrapper |
The generation evaluation wrapper. More... | |
unsigned int | _number_of_terms |
The number of terms in the series. More... | |
This class provides the algorithms and properties of the Zernike polynomial series.
Zernike::Zernike | ( | ) |
Definition at line 20 of file Zernike.C.
Zernike::Zernike | ( | const std::vector< MooseEnum > & | domain, |
const std::vector< std::size_t > & | order, | ||
MooseEnum | expansion_type, | ||
MooseEnum | generation_type | ||
) |
Definition at line 22 of file Zernike.C.
|
overridevirtual |
Returns the number of terms in the single series given a value for the order.
Implements SingleSeriesBasisInterface.
|
overrideprotectedvirtual |
Checks the physical bounds according to the actual implementation.
Implements SingleSeriesBasisInterface.
Definition at line 54 of file Zernike.C.
|
protectedvirtualinherited |
Set all entries of the basis evaluation to zero.
Definition at line 145 of file FunctionalBasisInterface.C.
Referenced by FunctionalBasisInterface::getAllExpansion(), FunctionalBasisInterface::getAllGeneration(), CompositeSeriesBasisInterface::setNumberOfTerms(), and SingleSeriesBasisInterface::setOrder().
|
overrideprotectedvirtualinherited |
Evaluate the expansion form of the functional basis.
Implements FunctionalBasisInterface.
Definition at line 57 of file SingleSeriesBasisInterface.C.
|
overrideprotectedvirtualinherited |
Evaluate the generation form of the functional basis.
Implements FunctionalBasisInterface.
Definition at line 51 of file SingleSeriesBasisInterface.C.
|
protectedvirtual |
Evaluates the orthonormal form of the basis functions.
Definition at line 66 of file Zernike.C.
Referenced by Zernike().
|
protectedvirtual |
Evaluates the 1/sqrt(mu) normalized form of the basis functions.
Definition at line 226 of file Zernike.C.
Referenced by Zernike().
|
protectedvirtual |
Evaluates the standard form of the basis functions.
Definition at line 245 of file Zernike.C.
Referenced by evaluateSqrtMu(), and Zernike().
|
protectedinherited |
Convert a spatial point to a location that the series will use to determine the value at which to evaluate the series.
Definition at line 122 of file SingleSeriesBasisInterface.C.
Referenced by Legendre::isInPhysicalBounds(), isInPhysicalBounds(), and SingleSeriesBasisInterface::setLocation().
|
protected |
Helper function used by evaluateGeneration() and evaluateExpansion().
It uses the evaluated value array of the zero and positive rank terms to: 1) fill out the negative rank terms 2) apply the azimuthal components to all terms
Definition at line 363 of file Zernike.C.
Referenced by evaluateOrthonormal(), and evaluateStandard().
|
inherited |
Returns an array reference containing the value of each expansion term.
Definition at line 73 of file FunctionalBasisInterface.C.
Referenced by FunctionalBasisInterface::getExpansion(), and FunctionalBasisInterface::getExpansionSeriesSum().
|
inherited |
Returns an array reference containing the value of each generation term.
Definition at line 57 of file FunctionalBasisInterface.C.
Referenced by FunctionalBasisInterface::getGeneration(), and FunctionalBasisInterface::getGenerationSeriesSum().
|
inherited |
Gets the #_order-th term of the expansion functional basis.
Definition at line 114 of file FunctionalBasisInterface.C.
|
inherited |
Evaluates the sum of all terms in the expansion functional basis up to #_order.
Definition at line 121 of file FunctionalBasisInterface.C.
Referenced by TEST().
|
inherited |
Gets the last term of the generation functional basis.
Definition at line 95 of file FunctionalBasisInterface.C.
|
inherited |
Gets the sum of all terms in the generation functional basis.
Definition at line 102 of file FunctionalBasisInterface.C.
Referenced by TEST().
|
inherited |
Returns the number of terms in the series.
Definition at line 89 of file FunctionalBasisInterface.C.
Referenced by Legendre::evaluateSqrtMu(), and TEST().
|
inherited |
Returns the order of the particular domain index.
Definition at line 133 of file SingleSeriesBasisInterface.C.
|
overridevirtual |
Returns a vector of the lower and upper bounds of the standard functional space.
Implements FunctionalBasisInterface.
|
overridevirtual |
Returns the volume within the standardized function local_limits.
Implements FunctionalBasisInterface.
|
overrideprotectedvirtual |
Standardize the location according to the requirements of the underlying basis, which may actually convert the Cartesian coordinates into a more suitable system.
The second version exists simply to return the value.
Implements SingleSeriesBasisInterface.
Definition at line 397 of file Zernike.C.
Referenced by isInPhysicalBounds().
|
finalvirtualinherited |
Whether the cached values correspond to the current point.
Implements FunctionalBasisInterface.
Definition at line 45 of file SingleSeriesBasisInterface.C.
|
inherited |
Returns true if the current evaluation is expansion.
Definition at line 51 of file FunctionalBasisInterface.C.
Referenced by FunctionalBasisInterface::getAllGeneration().
|
inherited |
Returns true if the current evaluation is generation.
Definition at line 45 of file FunctionalBasisInterface.C.
Referenced by FunctionalBasisInterface::getAllExpansion().
|
overridevirtual |
Determines if the point provided is in within the physical bounds.
Implements FunctionalBasisInterface.
Definition at line 414 of file Zernike.C.
|
protectedinherited |
Helper function to load a value from #_series.
Definition at line 133 of file FunctionalBasisInterface.C.
Referenced by Legendre::evaluateOrthonormal(), evaluateOrthonormal(), Legendre::evaluateSqrtMu(), evaluateSqrtMu(), Legendre::evaluateStandard(), evaluateStandard(), and fillOutNegativeRankAndApplyAzimuthalComponent().
|
inherited |
Returns the current evaluation at the given index.
Definition at line 39 of file FunctionalBasisInterface.C.
Helper function to store a value in #_series.
Definition at line 139 of file FunctionalBasisInterface.C.
Referenced by Legendre::evaluateOrthonormal(), evaluateOrthonormal(), CompositeSeriesBasisInterface::evaluateSeries(), Legendre::evaluateSqrtMu(), evaluateSqrtMu(), Legendre::evaluateStandard(), evaluateStandard(), and fillOutNegativeRankAndApplyAzimuthalComponent().
|
finalvirtualinherited |
Set the location that will be used by the series to compute values.
Implements FunctionalBasisInterface.
Definition at line 102 of file SingleSeriesBasisInterface.C.
Referenced by TEST().
|
finalvirtualinherited |
Set the order of the series.
Implements FunctionalBasisInterface.
Definition at line 63 of file SingleSeriesBasisInterface.C.
|
finalvirtualinherited |
Sets the bounds of the series.
Implements FunctionalBasisInterface.
Definition at line 86 of file SingleSeriesBasisInterface.C.
|
protected |
Maps the double order/rank idices to a single linear index.
Definition at line 436 of file Zernike.C.
Referenced by evaluateOrthonormal(), and evaluateStandard().
|
staticinherited |
An enumeration of the domains available to each functional series.
Definition at line 114 of file FunctionalBasisInterface.h.
Referenced by FunctionSeries::FunctionSeries(), SingleSeriesBasisInterface::SingleSeriesBasisInterface(), and TEST().
|
inherited |
An ordered list of the x, y, and/or z domains needed by the functional basis to convert a point to a standardized location.
Definition at line 60 of file SingleSeriesBasisInterface.h.
Referenced by SingleSeriesBasisInterface::extractLocationFromPoint().
|
protectedinherited |
The expansion evaluation wrapper.
Definition at line 88 of file SingleSeriesBasisInterface.h.
Referenced by SingleSeriesBasisInterface::evaluateExpansion(), Legendre::Legendre(), and Zernike().
|
protectedinherited |
The generation evaluation wrapper.
Definition at line 91 of file SingleSeriesBasisInterface.h.
Referenced by SingleSeriesBasisInterface::evaluateGeneration(), Legendre::Legendre(), and Zernike().
|
protected |
|
protectedinherited |
The number of terms in the series.
Definition at line 143 of file FunctionalBasisInterface.h.
Referenced by FunctionalBasisInterface::getAllExpansion(), FunctionalBasisInterface::getAllGeneration(), FunctionalBasisInterface::getNumberOfTerms(), CompositeSeriesBasisInterface::setNumberOfTerms(), and SingleSeriesBasisInterface::setOrder().
|
protectedinherited |
The order of the series.
Definition at line 79 of file SingleSeriesBasisInterface.h.
Referenced by Legendre::evaluateOrthonormal(), evaluateOrthonormal(), evaluateSqrtMu(), Legendre::evaluateStandard(), evaluateStandard(), fillOutNegativeRankAndApplyAzimuthalComponent(), SingleSeriesBasisInterface::getOrder(), and SingleSeriesBasisInterface::setOrder().
|
protectedinherited |
The physical bounds of the series.
Definition at line 82 of file SingleSeriesBasisInterface.h.
Referenced by Legendre::getStandardizedLocation(), getStandardizedLocation(), Legendre::isInPhysicalBounds(), and SingleSeriesBasisInterface::setPhysicalBounds().
|
protected |
|
protectedinherited |
The standardized location of evaluation.
Definition at line 85 of file SingleSeriesBasisInterface.h.
Referenced by Legendre::evaluateOrthonormal(), evaluateOrthonormal(), Legendre::evaluateStandard(), evaluateStandard(), fillOutNegativeRankAndApplyAzimuthalComponent(), and SingleSeriesBasisInterface::setLocation().