Octopus
chebyshev_coefficients_oct_m Module Reference

Data Types

interface  chebyshev_exp_imagtime_t
 
interface  chebyshev_exp_t
 
type  chebyshev_function_t
 
interface  chebyshev_get_coefficients
 
interface  chebyshev_get_error
 
interface  chebyshev_numerical_t
 
interface  complex_function_i
 

Functions/Subroutines

subroutine chebyshev_set_parameters (this, half_span, middle_point, deltat)
 
class(chebyshev_exp_t) function, pointer chebyshev_exp_constructor (half_span, middle_point, deltat)
 
subroutine chebyshev_exp_coefficients (this, order, coefficients)
 
real(real64) function chebyshev_exp_error (this, order)
 Use the error estimate from Lubich, C. From Quantum to Classical Molecular Dynamics: Reduced Models and Numerical Analysis. (EMS Press, 2008), doi:10.4171/067, Theorems 2.1 to 2.4. More...
 
class(chebyshev_exp_imagtime_t) function, pointer chebyshev_exp_imagtime_constructor (half_span, middle_point, deltat)
 
subroutine chebyshev_exp_imagtime_coefficients (this, order, coefficients)
 
real(real64) function chebyshev_exp_imagtime_error (this, order)
 Use the error estimate from Hochbruck, M. & Ostermann, A. Exponential integrators. Acta Numerica 19, 209–286 (2010), Theorem 4.1 (page 265) and L. Bergamaschi and M. Vianello: Efficient computation of the exponential operator for large, sparse, symmetric matrices, Numer. Linear Algebra Appl. 7, 27–45 (2000), eq. 2.7. More...
 
class(chebyshev_numerical_t) function, pointer chebyshev_numerical_constructor (half_span, middle_point, deltat, complex_function)
 
subroutine chebyshev_numerical_coefficients (this, order, coefficients)
 use a discrete cosine transform to compute the coefficients because no analytical formula is available for the phi_k functions More...
 
real(real64) function chebyshev_numerical_error (this, order)
 use the error estimate from Lubich, C. From Quantum to Classical Molecular Dynamics: Reduced Models and Numerical Analysis. (EMS Press, 2008), doi:10.4171/067, Theorems 2.1 to 2.4 More...
 

Function/Subroutine Documentation

◆ chebyshev_set_parameters()

subroutine chebyshev_coefficients_oct_m::chebyshev_set_parameters ( class(chebyshev_function_t), intent(inout)  this,
real(real64), intent(in)  half_span,
real(real64), intent(in)  middle_point,
real(real64), intent(in)  deltat 
)
private

Definition at line 210 of file chebyshev_coefficients.F90.

◆ chebyshev_exp_constructor()

class(chebyshev_exp_t) function, pointer chebyshev_coefficients_oct_m::chebyshev_exp_constructor ( real(real64), intent(in)  half_span,
real(real64), intent(in)  middle_point,
real(real64), intent(in)  deltat 
)
private

Definition at line 225 of file chebyshev_coefficients.F90.

◆ chebyshev_exp_coefficients()

subroutine chebyshev_coefficients_oct_m::chebyshev_exp_coefficients ( class(chebyshev_exp_t), intent(in)  this,
integer, intent(in)  order,
complex(real64), dimension(:), intent(out), allocatable  coefficients 
)
private

Definition at line 239 of file chebyshev_coefficients.F90.

◆ chebyshev_exp_error()

real(real64) function chebyshev_coefficients_oct_m::chebyshev_exp_error ( class(chebyshev_exp_t), intent(in)  this,
integer, intent(in)  order 
)
private

Use the error estimate from Lubich, C. From Quantum to Classical Molecular Dynamics: Reduced Models and Numerical Analysis. (EMS Press, 2008), doi:10.4171/067, Theorems 2.1 to 2.4.

Definition at line 258 of file chebyshev_coefficients.F90.

◆ chebyshev_exp_imagtime_constructor()

class(chebyshev_exp_imagtime_t) function, pointer chebyshev_coefficients_oct_m::chebyshev_exp_imagtime_constructor ( real(real64), intent(in)  half_span,
real(real64), intent(in)  middle_point,
real(real64), intent(in)  deltat 
)
private

Definition at line 275 of file chebyshev_coefficients.F90.

◆ chebyshev_exp_imagtime_coefficients()

subroutine chebyshev_coefficients_oct_m::chebyshev_exp_imagtime_coefficients ( class(chebyshev_exp_imagtime_t), intent(in)  this,
integer, intent(in)  order,
complex(real64), dimension(:), intent(out), allocatable  coefficients 
)
private

Definition at line 289 of file chebyshev_coefficients.F90.

◆ chebyshev_exp_imagtime_error()

real(real64) function chebyshev_coefficients_oct_m::chebyshev_exp_imagtime_error ( class(chebyshev_exp_imagtime_t), intent(in)  this,
integer, intent(in)  order 
)
private

Use the error estimate from Hochbruck, M. & Ostermann, A. Exponential integrators. Acta Numerica 19, 209–286 (2010), Theorem 4.1 (page 265) and L. Bergamaschi and M. Vianello: Efficient computation of the exponential operator for large, sparse, symmetric matrices, Numer. Linear Algebra Appl. 7, 27–45 (2000), eq. 2.7.

Definition at line 310 of file chebyshev_coefficients.F90.

◆ chebyshev_numerical_constructor()

class(chebyshev_numerical_t) function, pointer chebyshev_coefficients_oct_m::chebyshev_numerical_constructor ( real(real64), intent(in)  half_span,
real(real64), intent(in)  middle_point,
real(real64), intent(in)  deltat,
procedure(complex_function_i complex_function 
)
private

Definition at line 329 of file chebyshev_coefficients.F90.

◆ chebyshev_numerical_coefficients()

subroutine chebyshev_coefficients_oct_m::chebyshev_numerical_coefficients ( class(chebyshev_numerical_t), intent(in)  this,
integer, intent(in)  order,
complex(real64), dimension(:), intent(out), allocatable  coefficients 
)
private

use a discrete cosine transform to compute the coefficients because no analytical formula is available for the phi_k functions

Definition at line 347 of file chebyshev_coefficients.F90.

◆ chebyshev_numerical_error()

real(real64) function chebyshev_coefficients_oct_m::chebyshev_numerical_error ( class(chebyshev_numerical_t), intent(in)  this,
integer, intent(in)  order 
)
private

use the error estimate from Lubich, C. From Quantum to Classical Molecular Dynamics: Reduced Models and Numerical Analysis. (EMS Press, 2008), doi:10.4171/067, Theorems 2.1 to 2.4

Definition at line 385 of file chebyshev_coefficients.F90.