|
OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
|
#include <RecursionRelation.h>

Public Member Functions | |
| RecursionRelation () | |
| Default constructor, initialises identity operator. More... | |
| RecursionRelation (const std::size_t &power, const std::size_t &highestXorder) | |
| Constructor, initialises the operator. More... | |
| RecursionRelation (const RecursionRelation &doperator) | |
| Copy constructor. More... | |
| ~RecursionRelation () | |
| Desctructor, does nothing. More... | |
| RecursionRelation & | operator= (const RecursionRelation &recursion) |
| Assigment operator. More... | |
| void | printOperator () const |
| Print operator, used for internal debugging. More... | |
| void | truncate (std::size_t highestXorder) |
| Truncate series in x at highestXorder. More... | |
| void | applyOperator () |
| Increase power n by one. More... | |
| void | differentiateX () |
| Apply a differential operator in x. More... | |
| std::size_t | getMaxXDerivatives () const |
| Returns highest derivative of x. More... | |
| std::size_t | getMaxSDerivatives () const |
| Returns highest derivative of s. More... | |
| double | evaluatePolynomial (const double &x, const std::size_t &xDerivative, const std::size_t &sDerivative) const |
| Evaluates polynomial. More... | |
| bool | isPolynomialZero (const std::size_t &x, const std::size_t &s) const |
| Check if polynomial with x x-derivatives and s s-derivatives is zero. More... | |
| void | resizeX (const std::size_t &xDerivatives) |
| Change number of x-derivatives to xDerivatives. More... | |
| void | resizeS (const std::size_t &sDerivatives) |
| Change number of s-derivatives to sDerivatives. More... | |
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.
References applyOperator(), operator_m, power_m, and polynomial::DifferentialOperator::setPolynomial().

| 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().
Referenced by RecursionRelation().

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

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

|
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=(), and RecursionRelation().