OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
Public Member Functions | Private Attributes | List of all members
polynomial::RecursionRelation Class Reference

#include <RecursionRelation.h>

Collaboration diagram for polynomial::RecursionRelation:
Collaboration graph
[legend]

Public Member Functions

 RecursionRelation ()
 
 RecursionRelation (const std::size_t &power, const std::size_t &highestXorder)
 
 RecursionRelation (const RecursionRelation &doperator)
 
 ~RecursionRelation ()
 
RecursionRelationoperator= (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
 

Detailed Description

Definition at line 58 of file RecursionRelation.h.

Constructor & Destructor Documentation

◆ RecursionRelation() [1/3]

polynomial::RecursionRelation::RecursionRelation ( )

Default constructor, initialises identity operator

Definition at line 36 of file RecursionRelation.cpp.

References operator_m, and polynomial::DifferentialOperator::setPolynomial().

Here is the call graph for this function:

◆ RecursionRelation() [2/3]

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

Parameters
power-> Number of times the differential operator is applied
highestXorder-> Highest order of x before truncation

Definition at line 41 of file RecursionRelation.cpp.

◆ RecursionRelation() [3/3]

polynomial::RecursionRelation::RecursionRelation ( const RecursionRelation doperator)

Copy constructor

Definition at line 51 of file RecursionRelation.cpp.

◆ ~RecursionRelation()

polynomial::RecursionRelation::~RecursionRelation ( )

Desctructor, does nothing

Definition at line 56 of file RecursionRelation.cpp.

Member Function Documentation

◆ applyOperator()

void polynomial::RecursionRelation::applyOperator ( )

◆ differentiateX()

void polynomial::RecursionRelation::differentiateX ( )
inline

Apply a differential operator in x

Definition at line 127 of file RecursionRelation.h.

References polynomial::DifferentialOperator::differentiateX(), and operator_m.

Here is the call graph for this function:

◆ evaluatePolynomial()

double polynomial::RecursionRelation::evaluatePolynomial ( const double &  x,
const std::size_t &  xDerivative,
const std::size_t &  sDerivative 
) const
inline

Evaluates polynomial

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

Here is the call graph for this function:

◆ getMaxSDerivatives()

std::size_t polynomial::RecursionRelation::getMaxSDerivatives ( ) const
inline

Returns highest derivative of s

Definition at line 135 of file RecursionRelation.h.

References polynomial::DifferentialOperator::getSDerivatives(), and operator_m.

Here is the call graph for this function:

◆ getMaxXDerivatives()

std::size_t polynomial::RecursionRelation::getMaxXDerivatives ( ) const
inline

Returns highest derivative of x

Definition at line 131 of file RecursionRelation.h.

References polynomial::DifferentialOperator::getXDerivatives(), and operator_m.

Here is the call graph for this function:

◆ isPolynomialZero()

bool polynomial::RecursionRelation::isPolynomialZero ( const std::size_t &  x,
const std::size_t &  s 
) const
inline

Check if polynomial with x x-derivatives and s s-derivatives is zero

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

Here is the call graph for this function:

◆ operator=()

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.

◆ printOperator()

void polynomial::RecursionRelation::printOperator ( ) const
inline

Print operator, used for internal debugging

Definition at line 123 of file RecursionRelation.h.

References operator_m, and polynomial::DifferentialOperator::printOperator().

Here is the call graph for this function:

◆ resizeS()

void polynomial::RecursionRelation::resizeS ( const std::size_t &  sDerivatives)
inline

Change number of s-derivatives to sDerivatives

Parameters
sDerivative-> Number of s-derivatives

Definition at line 155 of file RecursionRelation.h.

References operator_m, and polynomial::DifferentialOperator::resizeS().

Here is the call graph for this function:

◆ resizeX()

void polynomial::RecursionRelation::resizeX ( const std::size_t &  xDerivatives)
inline

Change number of x-derivatives to xDerivatives

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

Here is the call graph for this function:

◆ truncate()

void polynomial::RecursionRelation::truncate ( std::size_t  highestXorder)

Truncate series in x at highestXorder

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

Here is the call graph for this function:

Member Data Documentation

◆ highestXorder_m

std::size_t polynomial::RecursionRelation::highestXorder_m
private

Definition at line 119 of file RecursionRelation.h.

Referenced by applyOperator(), operator=(), and truncate().

◆ operator_m

DifferentialOperator polynomial::RecursionRelation::operator_m
private

◆ power_m

std::size_t polynomial::RecursionRelation::power_m
private

Definition at line 118 of file RecursionRelation.h.

Referenced by operator=().


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