(git:f2099e5)
Loading...
Searching...
No Matches
greenx_interface Module Reference

Interface to the Greenx library. More...

Functions/Subroutines

subroutine, public greenx_get_minimax_grid (unit_nr, num_integ_points, emin, emax, regularization_minimax, imaginary_time, time_weights_at_zero_frequency, frequency, frequency_weights, cosine_time_to_frequency_weights, cosine_frequency_to_time_weights, sine_time_to_frequency_weights, ierr)
 Get a minimax grid from GreenX when it is available.
subroutine, public greenx_refine_pade (e_min, e_max, x_eval, number_of_simulation_steps, number_of_pade_points, logger, ft_section, bse_unit, omega_series, ft_full_series)
 Refines Pade approximants using GreenX, skips this step if GreenX is not available.
subroutine, public greenx_output_polarizability (logger, pol_section, bse_unit, pol_elements, x_eval, polarizability_refined)
 Outputs the isotropic polarizability tensor element alpha _ ij = mu_i(omega)/E_j(omega), where i and j are provided by the configuration. The tensor element is energy dependent and has real and imaginary parts.
subroutine, public greenx_refine_ft (fit_e_min, fit_e_max, x_fit, y_fit, x_eval, y_eval, n_pade_opt)
 Refines the FT grid using Padé approximants.

Detailed Description

Interface to the Greenx library.

History
07.2025 Refactored from RPA and BSE modules [Frederick Stein]

Function/Subroutine Documentation

◆ greenx_get_minimax_grid()

subroutine, public greenx_interface::greenx_get_minimax_grid ( integer, intent(in) unit_nr,
integer, intent(in) num_integ_points,
real(kind=dp), intent(in) emin,
real(kind=dp), intent(in) emax,
real(kind=dp), intent(in) regularization_minimax,
real(kind=dp), dimension(:), intent(out), allocatable imaginary_time,
real(kind=dp), dimension(:), intent(out), allocatable time_weights_at_zero_frequency,
real(kind=dp), dimension(:), intent(out), allocatable frequency,
real(kind=dp), dimension(:), intent(out), allocatable frequency_weights,
real(kind=dp), dimension(:, :), intent(out), allocatable cosine_time_to_frequency_weights,
real(kind=dp), dimension(:, :), intent(out), allocatable cosine_frequency_to_time_weights,
real(kind=dp), dimension(:, :), intent(out), allocatable sine_time_to_frequency_weights,
integer, intent(out) ierr )

Get a minimax grid from GreenX when it is available.

Parameters
unit_nrOutput unit for diagnostics.
num_integ_pointsNumber of minimax points.
eminLower energy bound.
emaxUpper energy bound.
regularization_minimaxRegularization of the minimax fit.
imaginary_timeImaginary-time grid points.
time_weights_at_zero_frequencyImaginary-time weights.
frequencyFrequency grid points.
frequency_weightsFrequency weights.
cosine_time_to_frequency_weightsCosine time-to-frequency weights.
cosine_frequency_to_time_weightsCosine frequency-to-time weights.
sine_time_to_frequency_weightsSine time-to-frequency weights.
ierrZero if GreenX supplied a grid, nonzero otherwise.

Definition at line 62 of file greenx_interface.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ greenx_refine_pade()

subroutine, public greenx_interface::greenx_refine_pade ( real(kind=dp), intent(in) e_min,
real(kind=dp), intent(in) e_max,
complex(kind=dp), dimension(:), pointer x_eval,
integer, intent(in) number_of_simulation_steps,
integer, intent(in) number_of_pade_points,
type(cp_logger_type), pointer logger,
type(section_vals_type), pointer ft_section,
integer, intent(in) bse_unit,
real(kind=dp), dimension(number_of_simulation_steps + 2), intent(inout) omega_series,
real(kind=dp), dimension(6, number_of_simulation_steps + 2), intent(inout) ft_full_series )

Refines Pade approximants using GreenX, skips this step if GreenX is not available.

Parameters
e_min...
e_max...
x_eval...
number_of_simulation_steps...
number_of_pade_points...
logger...
ft_section...
bse_unit...
omega_series...
ft_full_series...

Definition at line 150 of file greenx_interface.F.

Here is the call graph for this function:

◆ greenx_output_polarizability()

subroutine, public greenx_interface::greenx_output_polarizability ( type(cp_logger_type), pointer logger,
type(section_vals_type), pointer pol_section,
integer, intent(in) bse_unit,
integer, dimension(:, :), pointer pol_elements,
complex(kind=dp), dimension(:), pointer x_eval,
complex(kind=dp), dimension(:, :), intent(in) polarizability_refined )

Outputs the isotropic polarizability tensor element alpha _ ij = mu_i(omega)/E_j(omega), where i and j are provided by the configuration. The tensor element is energy dependent and has real and imaginary parts.

Parameters
logger...
pol_section...
bse_unit...
pol_elements...
x_eval...
polarizability_refined...

Definition at line 221 of file greenx_interface.F.

Here is the call graph for this function:

◆ greenx_refine_ft()

subroutine, public greenx_interface::greenx_refine_ft ( real(kind=dp) fit_e_min,
real(kind=dp) fit_e_max,
complex(kind=dp), dimension(:) x_fit,
complex(kind=dp), dimension(:) y_fit,
complex(kind=dp), dimension(:) x_eval,
complex(kind=dp), dimension(:) y_eval,
integer, optional n_pade_opt )

Refines the FT grid using Padé approximants.

Parameters
fit_e_min...
fit_e_max...
x_fitInput x-variables
y_fitInput y-variables
x_evalRefined x-variables
y_evalRefined y-variables
n_pade_opt...

Definition at line 295 of file greenx_interface.F.

Here is the call graph for this function:
Here is the caller graph for this function: