OPAL (Object Oriented Parallel Accelerator Library)
2021.1.99
OPAL
|
#include <RecursionRelation.h>
Public Member Functions | |
RecursionRelation () | |
RecursionRelation (const std::size_t &power, const std::size_t &highestXorder) | |
RecursionRelation (const RecursionRelation &doperator) | |
~RecursionRelation () | |
RecursionRelation & | operator= (const RecursionRelation &recursion) |
void | printOperator () const |
void | truncate (std::size_t highestXorder) |
void | applyOperator () |
void | differentiateX () |
std::size_t | getMaxXDerivatives () const |
std::size_t | getMaxSDerivatives () const |
double | evaluatePolynomial (const double &x, const std::size_t &xDerivative, const std::size_t &sDerivative) const |
bool | isPolynomialZero (const std::size_t &x, const std::size_t &s) const |
void | resizeX (const std::size_t &xDerivatives) |
void | resizeS (const std::size_t &sDerivatives) |
Private Attributes | |
DifferentialOperator | operator_m |
std::size_t | power_m |
std::size_t | highestXorder_m |
Definition at line 58 of file RecursionRelation.h.
polynomial::RecursionRelation::RecursionRelation | ( | ) |
Default constructor, initialises identity operator
Definition at line 36 of file RecursionRelation.cpp.
References operator_m, and polynomial::DifferentialOperator::setPolynomial().
polynomial::RecursionRelation::RecursionRelation | ( | const std::size_t & | power, |
const std::size_t & | highestXorder | ||
) |
Constructor, initialises the operator
\begin{eqnarray*} { \Big(\frac{1}{\rho(1 + x/\rho)}\frac{\partial}{\partial x} + \frac{\partial^2}{\partial x^2} + \frac{1}{(1 + x/\rho)^2}\frac{\partial^2}{\partial s^2}\Big)^n \end{eqnarray*}
where power = n. The denominators are expanded in x and
highestXorder is the highest power of x
power | -> Number of times the differential operator is applied |
highestXorder | -> Highest order of x before truncation |
Definition at line 41 of file RecursionRelation.cpp.
polynomial::RecursionRelation::RecursionRelation | ( | const RecursionRelation & | doperator | ) |
Copy constructor
Definition at line 51 of file RecursionRelation.cpp.
polynomial::RecursionRelation::~RecursionRelation | ( | ) |
Desctructor, does nothing
Definition at line 56 of file RecursionRelation.cpp.
void polynomial::RecursionRelation::applyOperator | ( | ) |
Increase power n by one
Definition at line 75 of file RecursionRelation.cpp.
References polynomial::DifferentialOperator::addOperator(), polynomial::DifferentialOperator::differentiateX(), polynomial::DifferentialOperator::doubleDifferentiateS(), highestXorder_m, polynomial::DifferentialOperator::multiplyPolynomial(), operator_m, and pow().
|
inline |
Apply a differential operator in x
Definition at line 127 of file RecursionRelation.h.
References polynomial::DifferentialOperator::differentiateX(), and operator_m.
|
inline |
Evaluates polynomial
x | -> Point at which polynomial is evaluated |
xDerivative | -> Number of x-derivatives |
sDerivative | -> Number of s-derivatives |
Definition at line 139 of file RecursionRelation.h.
References polynomial::DifferentialOperator::evaluatePolynomial(), and operator_m.
|
inline |
Returns highest derivative of s
Definition at line 135 of file RecursionRelation.h.
References polynomial::DifferentialOperator::getSDerivatives(), and operator_m.
|
inline |
Returns highest derivative of x
Definition at line 131 of file RecursionRelation.h.
References polynomial::DifferentialOperator::getXDerivatives(), and operator_m.
|
inline |
Check if polynomial with x x-derivatives and s s-derivatives is zero
xDerivative | -> Number of x-derivatives |
sDerivative | -> Number of s-derivatives |
Definition at line 146 of file RecursionRelation.h.
References polynomial::DifferentialOperator::isPolynomialZero(), and operator_m.
RecursionRelation & polynomial::RecursionRelation::operator= | ( | const RecursionRelation & | recursion | ) |
Assigment operator
Definition at line 59 of file RecursionRelation.cpp.
References highestXorder_m, operator_m, and power_m.
|
inline |
Print operator, used for internal debugging
Definition at line 123 of file RecursionRelation.h.
References operator_m, and polynomial::DifferentialOperator::printOperator().
|
inline |
Change number of s-derivatives to sDerivatives
sDerivative | -> Number of s-derivatives |
Definition at line 155 of file RecursionRelation.h.
References operator_m, and polynomial::DifferentialOperator::resizeS().
|
inline |
Change number of x-derivatives to xDerivatives
xDerivative | -> Number of x-derivatives |
Definition at line 151 of file RecursionRelation.h.
References operator_m, and polynomial::DifferentialOperator::resizeX().
Referenced by MultipoleTCurvedConstRadius::setMaxOrder(), and MultipoleT::setMaxOrder().
void polynomial::RecursionRelation::truncate | ( | std::size_t | highestXorder | ) |
Truncate series in x at highestXorder
highestXorder | -> Highest order of x after truncation |
Definition at line 67 of file RecursionRelation.cpp.
References highestXorder_m, operator_m, and polynomial::DifferentialOperator::truncate().
Referenced by MultipoleTCurvedConstRadius::setMaxOrder(), and MultipoleT::setMaxOrder().
|
private |
Definition at line 119 of file RecursionRelation.h.
Referenced by applyOperator(), operator=(), and truncate().
|
private |
Definition at line 117 of file RecursionRelation.h.
Referenced by applyOperator(), differentiateX(), evaluatePolynomial(), getMaxSDerivatives(), getMaxXDerivatives(), isPolynomialZero(), operator=(), printOperator(), RecursionRelation(), resizeS(), resizeX(), and truncate().
|
private |
Definition at line 118 of file RecursionRelation.h.
Referenced by operator=().