![]() |
(git:b77b4be)
|
Adaptive Simpson's rule algorithm to integrate a complex-valued function in a complex plane. More...
Data Types | |
type | simpsonrule_type |
A structure to store data needed for adaptive Simpson's rule algorithm. More... | |
Functions/Subroutines | |
subroutine, public | simpsonrule_init (sr_env, xnodes, nnodes, a, b, shape_id, conv, weights, tnodes_restart) |
Initialise a Simpson's rule environment variable. | |
subroutine, public | simpsonrule_release (sr_env) |
Release a Simpson's rule environment variable. | |
subroutine, public | simpsonrule_get_next_nodes (sr_env, xnodes_next, nnodes) |
Get the next set of nodes where to compute integrand. | |
subroutine, public | simpsonrule_refine_integral (sr_env, zdata_next) |
Compute integral using the simpson's rules. | |
Variables | |
integer, parameter, public | sr_shape_linear = contour_shape_linear |
integer, parameter, public | sr_shape_arc = contour_shape_arc |
Adaptive Simpson's rule algorithm to integrate a complex-valued function in a complex plane.
subroutine, public negf_integr_simpson::simpsonrule_init | ( | type(simpsonrule_type), intent(out) | sr_env, |
complex(kind=dp), dimension(nnodes), intent(out) | xnodes, | ||
integer, intent(inout) | nnodes, | ||
complex(kind=dp), intent(in) | a, | ||
complex(kind=dp), intent(in) | b, | ||
integer, intent(in) | shape_id, | ||
real(kind=dp), intent(in) | conv, | ||
type(cp_fm_type), intent(in) | weights, | ||
real(kind=dp), dimension(nnodes), intent(in), optional | tnodes_restart | ||
) |
Initialise a Simpson's rule environment variable.
sr_env | Simpson's rule environment (initialised on exit) |
xnodes | points at which an integrand needs to be computed (initialised on exit) |
nnodes | initial number of points to compute (initialised on exit) |
a | integral lower boundary |
b | integral upper boundary |
shape_id | shape of a curve along which the integral will be evaluated |
conv | convergence threshold |
weights | weights associated with matrix elements; used to compute cumulative error |
tnodes_restart | list of nodes over the interval [-1 .. 1] from a previous integral evaluation. If present, the same set of 'xnodes' will be used to compute this integral. |
Definition at line 121 of file negf_integr_simpson.F.
subroutine, public negf_integr_simpson::simpsonrule_release | ( | type(simpsonrule_type), intent(inout) | sr_env | ) |
Release a Simpson's rule environment variable.
sr_env | Simpson's rule environment (modified on exit) |
Definition at line 188 of file negf_integr_simpson.F.
subroutine, public negf_integr_simpson::simpsonrule_get_next_nodes | ( | type(simpsonrule_type), intent(inout) | sr_env, |
complex(kind=dp), dimension(nnodes), intent(out) | xnodes_next, | ||
integer, intent(inout) | nnodes | ||
) |
Get the next set of nodes where to compute integrand.
sr_env | Simpson's rule environment (modified on exit) |
xnodes_next | list of additional points (initialised on exit) |
nnodes | actual number of points to compute (modified on exit) |
Definition at line 259 of file negf_integr_simpson.F.
subroutine, public negf_integr_simpson::simpsonrule_refine_integral | ( | type(simpsonrule_type), intent(inout) | sr_env, |
type(cp_cfm_type), dimension(:), intent(inout) | zdata_next | ||
) |
Compute integral using the simpson's rules.
sr_env | Simpson's rule environment |
zdata_next | precomputed integrand values at points xnodes_next (nullified on exit) |
Definition at line 340 of file negf_integr_simpson.F.
integer, parameter, public negf_integr_simpson::sr_shape_linear = contour_shape_linear |
Definition at line 46 of file negf_integr_simpson.F.
integer, parameter, public negf_integr_simpson::sr_shape_arc = contour_shape_arc |
Definition at line 46 of file negf_integr_simpson.F.