This class provides the algorithms and properties of the Legendre polynomial series. More...
#include <Legendre.h>
Public Member Functions | |
Legendre () | |
Legendre (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... | |
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< 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... | |
Private Member Functions | |
virtual void | clearBasisEvaluation (const unsigned int &number_of_terms) |
Set all entries of the basis evaluation to zero. More... | |
Private Attributes | |
bool | _are_physical_bounds_specified |
Flag for if the physical bounds are specified for this series. More... | |
std::vector< Real > | _location |
The domain locations of the current evaluation. More... | |
bool | _is_cache_invalid |
indicates if the evaluated values correspond to the current location More... | |
std::vector< Real > | _basis_evaluation |
Stores the values of the basis evaluation. More... | |
bool | _is_generation |
Indicates whether the current evaluation is expansion or generation. More... | |
This class provides the algorithms and properties of the Legendre polynomial series.
Definition at line 17 of file Legendre.h.
Legendre::Legendre | ( | ) |
Definition at line 19 of file Legendre.C.
Legendre::Legendre | ( | const std::vector< MooseEnum > & | domain, |
const std::vector< std::size_t > & | order, | ||
MooseEnum | expansion_type, | ||
MooseEnum | generation_type | ||
) |
Definition at line 21 of file Legendre.C.
|
overridevirtual |
Returns the number of terms in the single series given a value for the order.
Implements SingleSeriesBasisInterface.
Definition at line 47 of file Legendre.C.
|
overrideprotectedvirtual |
Checks the physical bounds according to the actual implementation.
Implements SingleSeriesBasisInterface.
Definition at line 53 of file Legendre.C.
|
privateinherited |
Set all entries of the basis evaluation to zero.
Definition at line 144 of file FunctionalBasisInterface.C.
|
protectedvirtualinherited |
Set all entries of the basis evaluation to zero.
Definition at line 144 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 61 of file Legendre.C.
Referenced by Legendre().
|
protectedvirtual |
Evaluates the 1/sqrt(mu) normalized form of the basis functions.
Definition at line 259 of file Legendre.C.
Referenced by Legendre().
|
protectedvirtual |
Evaluates the standard form of the basis functions.
Definition at line 174 of file Legendre.C.
Referenced by evaluateSqrtMu(), and Legendre().
|
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 isInPhysicalBounds(), Zernike::isInPhysicalBounds(), and SingleSeriesBasisInterface::setLocation().
|
inherited |
Returns an array reference containing the value of each expansion term.
Definition at line 72 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 56 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 113 of file FunctionalBasisInterface.C.
|
inherited |
Evaluates the sum of all terms in the expansion functional basis up to #_order.
Definition at line 120 of file FunctionalBasisInterface.C.
Referenced by TEST().
|
inherited |
Gets the last term of the generation functional basis.
Definition at line 94 of file FunctionalBasisInterface.C.
|
inherited |
Gets the sum of all terms in the generation functional basis.
Definition at line 101 of file FunctionalBasisInterface.C.
Referenced by TEST().
|
inherited |
Returns the number of terms in the series.
Definition at line 88 of file FunctionalBasisInterface.C.
Referenced by 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.
Definition at line 267 of file Legendre.C.
|
overridevirtual |
Returns the volume within the standardized function local_limits.
Implements FunctionalBasisInterface.
Definition at line 276 of file Legendre.C.
|
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 282 of file Legendre.C.
|
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 50 of file FunctionalBasisInterface.C.
Referenced by FunctionalBasisInterface::getAllGeneration().
|
inherited |
Returns true if the current evaluation is generation.
Definition at line 44 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 295 of file Legendre.C.
|
protectedinherited |
Helper function to load a value from #_series.
Definition at line 132 of file FunctionalBasisInterface.C.
Referenced by evaluateOrthonormal(), Zernike::evaluateOrthonormal(), evaluateSqrtMu(), Zernike::evaluateSqrtMu(), evaluateStandard(), Zernike::evaluateStandard(), and Zernike::fillOutNegativeRankAndApplyAzimuthalComponent().
|
inherited |
Returns the current evaluation at the given index.
Definition at line 38 of file FunctionalBasisInterface.C.
|
protectedinherited |
Helper function to store a value in #_series.
Definition at line 138 of file FunctionalBasisInterface.C.
Referenced by evaluateOrthonormal(), Zernike::evaluateOrthonormal(), CompositeSeriesBasisInterface::evaluateSeries(), evaluateSqrtMu(), Zernike::evaluateSqrtMu(), evaluateStandard(), Zernike::evaluateStandard(), and Zernike::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.
|
privateinherited |
Flag for if the physical bounds are specified for this series.
Definition at line 95 of file SingleSeriesBasisInterface.h.
Referenced by SingleSeriesBasisInterface::setLocation(), and SingleSeriesBasisInterface::setPhysicalBounds().
|
privateinherited |
Stores the values of the basis evaluation.
Definition at line 151 of file FunctionalBasisInterface.h.
Referenced by FunctionalBasisInterface::clearBasisEvaluation(), FunctionalBasisInterface::FunctionalBasisInterface(), FunctionalBasisInterface::getAllExpansion(), FunctionalBasisInterface::getAllGeneration(), FunctionalBasisInterface::load(), FunctionalBasisInterface::operator[](), and FunctionalBasisInterface::save().
|
staticinherited |
An enumeration of the domains available to each functional series.
Definition at line 115 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(), and Zernike::Zernike().
|
protectedinherited |
The generation evaluation wrapper.
Definition at line 91 of file SingleSeriesBasisInterface.h.
Referenced by SingleSeriesBasisInterface::evaluateGeneration(), Legendre(), and Zernike::Zernike().
|
privateinherited |
indicates if the evaluated values correspond to the current location
Definition at line 147 of file FunctionalBasisInterface.h.
|
privateinherited |
Indicates whether the current evaluation is expansion or generation.
Definition at line 154 of file FunctionalBasisInterface.h.
Referenced by FunctionalBasisInterface::getAllExpansion(), FunctionalBasisInterface::getAllGeneration(), FunctionalBasisInterface::isExpansion(), and FunctionalBasisInterface::isGeneration().
|
privateinherited |
The domain locations of the current evaluation.
This is private so that derived classes will be required to use _standardized_location, essentially forcing location-awareness compliance
Definition at line 99 of file SingleSeriesBasisInterface.h.
Referenced by SingleSeriesBasisInterface::setLocation().
|
protectedinherited |
The number of terms in the series.
Definition at line 144 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 evaluateOrthonormal(), Zernike::evaluateOrthonormal(), Zernike::evaluateSqrtMu(), evaluateStandard(), Zernike::evaluateStandard(), Zernike::fillOutNegativeRankAndApplyAzimuthalComponent(), SingleSeriesBasisInterface::getOrder(), and SingleSeriesBasisInterface::setOrder().
|
protectedinherited |
The physical bounds of the series.
Definition at line 82 of file SingleSeriesBasisInterface.h.
Referenced by getStandardizedLocation(), Zernike::getStandardizedLocation(), isInPhysicalBounds(), and SingleSeriesBasisInterface::setPhysicalBounds().
|
protectedinherited |
The standardized location of evaluation.
Definition at line 85 of file SingleSeriesBasisInterface.h.
Referenced by evaluateOrthonormal(), Zernike::evaluateOrthonormal(), evaluateStandard(), Zernike::evaluateStandard(), Zernike::fillOutNegativeRankAndApplyAzimuthalComponent(), and SingleSeriesBasisInterface::setLocation().