NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library

◆ Integrator() [1/2]

template<typename T = double>
integration::Integrator< T >::Integrator ( int  k = 0)
inline

Initializes the Integrator class for a given order k.

Purpose

Initializes the Integrator class for given order \(k\) between 1 and 8. If \(k>5\), Gregory integration up to order \(k\) is used, while all other operations are limited to maximum order 5.

Parameters
k

The order of the weights.

Definition at line 147 of file integration.hpp.

References integration::Integrator< T >::k().

147  {
148  int k1=k+1;
149  if(k<0 || k > GREGORY_KMAX ){ std::cout << "Integrator: k out of range " << std::endl; abort();}
150  poly_interpolation_= new T [k1*k1];
151  poly_differentiation_= new T [k1*k1];
152  poly_integration_= new T [k1*k1*k1];
153  bd_weights_= new T [k1+1];
154  gregory_weights_= new T [ 4*k1*k1 ];
155  gregory_omega_=gregory_weights_ + ((2*k+1)*2*k1); /*pointer to last line*/
156  if(k>1) rcorr_ = new T [ (k-1)*k1*k1] ; else rcorr_=0;
157  k_=k;
158  integration::read_poly_interpolation(k_,poly_interpolation_);
159  integration::read_poly_differentiation(k_,poly_differentiation_);
160  integration::read_poly_integration(k_,poly_integration_);
161  integration::read_bd_weights(k+1,bd_weights_);
162  integration::read_gregory_weights(k,gregory_weights_);
163  integration::read_rcorr(k_,rcorr_);
164 }
int k(void)
Returns the order of the integrator class.
+ Here is the call graph for this function: