Skip to content

Commit

Permalink
fix some wording
Browse files Browse the repository at this point in the history
  • Loading branch information
moritzleucke committed Oct 28, 2024
1 parent 8191b12 commit 3551b90
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions JOSS/analyticcontinuation/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ title: 'Analytic continuation component of the GreenX library: robust Padé appr
tags:
- FORTRAN
- Analytic Continuation
- Interpolation
- Pade
- GW approximation

Expand All @@ -28,29 +29,29 @@ bibliography: refs.bib

# Summary

Analytic continuation extends the domain of a given complex-valued function to a broader region in the complex plane. This technique is commonly used in many fields, for example in quantum mechanical methods such as the $GW$ method or real-time propagation algorithms, to continue a function from the imaginary axis to the real axis.
Analytic continuation extends the domain of a given complex-valued function to a broader region in the complex plane. This technique is widely applied across various fields, including quantum mechanical methods like the $GW$ method and real-time propagation algorithms, to analytically continue a function from the imaginary axis to the real axis.

In this work, we present the analytic continuation component of the GreenX library (GX-AC), which provides a Fortran API for the use of Padé approximants with and without symmetry constraints. The component uses the Thiele Padé algorithm to create Padé approximants and uses multiple-precision floats in combination with a greedy algorithm to mitigate the numerical instabilities commonly associated with fitting Padé approximants. The GX-AC component is distributed under the Apache 2 license and freely available on GitHub.

# Statement of need

Analytic continuation (AC) is used in various scientific fields where complex analysis is relevant, like mathematical function theory, engineering and theoretical physics/chemistry in e.g. quantum mechanics [@golze2019gw], quantum field theory [@nekrasov2024analytic], numerical methods for solving differential equations [@lope2002analytic] and real-time propagation methods [@li2020real]. In the following, we discuss the four examples depicted in Figure 1. The first example, shown in the top left of Figure 1, involves the application of AC to model functions, which may include Gamma functions [@luke1975error], Zeta functions [@iriguchi2007estimation], and others.
Analytic continuation (AC) is used in different scientific fields where complex analysis is relevant, like mathematical function theory, engineering and theoretical physics/chemistry in e.g. quantum mechanics [@golze2019gw], quantum field theory [@nekrasov2024analytic], numerical methods for solving differential equations [@lope2002analytic] and real-time propagation methods [@li2020real]. In the following, we discuss the four examples depicted in Figure 1. The first example, shown in the top left of Figure 1, involves the application of AC to model functions, which may include Gamma functions [@luke1975error], Zeta functions [@iriguchi2007estimation], and others.

In quantum field theory, AC can be applied to the frequently arising, complex-valued Green's functions, like the Green's function of the Hubbard model [@schott2016analytic]. However, Green's functions also appear in ab-initio many-body perturbation theory methods like the $GW$ approximation. The $GW$ method [@hedin1965new] is considered the method of choice for predicting band structures of solids as well as electron removal and addition energies of molecules, as measured in direct and indirect photoemission experiments [@golze2019gw]. The complex-valued self energy is a central quantity in the $GW$ method, computed as the convolution of the Green's function $G$ and the screened interaction $W$. AC is a frequently used tool for continuing the self energy from the imaginary to the real frequency axis in conventional scaling $GW$ implementations [@gonze2009abinit; @ren2012resolution; @van2015gw; @wilhelm2017periodic] and low-scaling implementations [@liu2016cubic; @wilhelm2018toward; @forster2020low;@wilhelm2021low; @forster2021low; @forster2021gw100; @forster2023two; @graml2024low]. More recently, AC has also been applied to the screened interaction [@springer1998first; @friedrich2019tetrahedron; @duchemin2020robust; @voora2020molecular; @duchemin2021cubic; @samal2022modeling; @cdwac; @kehry2023robust] to e.g. reduce the computational scaling associated with core-level excitations [@cdwac]. The AC of a self energy $\Sigma$ and a screened Coulomb interaction $W$ are depicted as the second and third example in the bottom panel of Figure 1.
In quantum field theory, AC can be applied to the frequently arising, complex-valued Green's functions, like the Green's function of the Hubbard model [@schott2016analytic]. However, Green's functions also appear in ab-initio many-body perturbation theory methods like the $GW$ approximation. The $GW$ method [@hedin1965new] is considered the method of choice for predicting band structures of solids as well as electron removal and addition energies of molecules, as measured in direct and indirect photoemission experiments [@golze2019gw]. The complex-valued self energy is a central quantity in the $GW$ method, computed as the convolution of the Green's function $G$ and the screened interaction $W$. AC is a frequently used tool for continuing the self energy from the imaginary to the real frequency axis in conventional scaling $GW$ implementations [@gonze2009abinit; @ren2012resolution; @van2015gw; @wilhelm2017periodic] and low-scaling implementations [@liu2016cubic; @wilhelm2018toward; @forster2020low;@wilhelm2021low; @forster2021low; @forster2021gw100; @forster2023two; @graml2024low]. More recently, AC has also been applied to the screened Coulomb interaction [@springer1998first; @friedrich2019tetrahedron; @duchemin2020robust; @voora2020molecular; @duchemin2021cubic; @samal2022modeling; @cdwac; @kehry2023robust] to e.g. reduce the computational scaling associated with core-level excitations [@cdwac]. The AC of a self energy $\Sigma$ and a screened Coulomb interaction $W$ are depicted as the second and third example in the bottom panel of Figure 1.

![Application of the GX-AnalyticContinuation component to a model function with two poles (top left), an RT-TDDFT UV-vis Absorption spectrum (top right), the $GW$ self energy (bottom left) and the $GW$ screened coulomb interaction (bottom right). More information about the functions that are presented here can be found on the [website of the GX-AC component](https://nomad-coe.github.io/greenX/gx_ac.html).](ac_overview.pdf){label="overview"}

Our fourth and final example is the usage of AC in real-time propagation algorithms, such as real-time time-dependent density functional theory (RT-TDDFT) [@li2020real]. RT-TDDFT yields, for example, access to the absorption spectra of molecules and solids via the complex-valued dynamic polarizability tensor. The resolution of the RT-TDDFT absorption spectrum depends on the simulation length. It has been shown that applying Padé approximants to the dynamic polarizability tensor is an effective strategy for achieving higher spectral resolution with much shorter simulation times [@bruner2016accelerated; @mattiat2018efficient].
An illustrative UV-vis absorption spectrum, with and without the use of AC, is shown in the top right of Figure 1.

AC of analytic (holomorphic) functions is typically performed by approximating the function with a rational function in one domain of the complex plane, typically along the imaginary axis. According to the identity theorem, the resulting rational function can then be evaluated over a broader domain of the complex plane, for example, along the real axis.
Padé approximants are an established choice for rational functions. Their flexibility enables the approximation of functions with complicated pole structures [@golze2019gw]. Pade approximants can be expressed by the ratio of two polynomials with arbitrary order, or alternatively by a continued fraction.
Padé approximants are an established choice for rational functions. Their flexibility enables the approximation of functions with complicated pole structures [@golze2019gw]. Padé approximants can be expressed by the ratio of two polynomials with arbitrary order, or alternatively by a continued fraction [@ThielePade_Baker].

The GreenX library aims to provide a suite of common tools, such as AC, for electronic structure codes based on the $GW$ method. The previously published first component of the GreenX library is the TimeFrequency component [@azizi2023time]. It provides minimax time and frequency grids for Random Phase Approximation (RPA) and $GW$ methods that were validated in a comprehensive benchmark study [@azizi2024validation]. In this work we present the second component of the GreenX library, the GX-AnalyticContinuation (GX-AC) component, which has the Apache-2.0 license. It provides a Fortran API for analytic continuation using Padé rational functions that can be easily integrated into other Fortran projects. The component uses the Thiele reciprocal difference method [@ThielePade_original; @ThielePade_Milne; @ThielePade_Baker] to obtain the Padé coefficients. Although the primary focus of the GreenX library are $GW$-based methods, the GX-AC component is suitable for any application where AC with Padé approximants can be used. Extensive benchmarks and the full documentation of GX-AC component can be found on the [component's website](https://nomad-coe.github.io/greenX/gx_ac.html).
The GreenX library aims to provide a suite of common tools, such as AC, for electronic structure codes based on the $GW$ method. The previously published first component of the GreenX library is the TimeFrequency component [@azizi2023time]. It provides minimax time and frequency grids for the random phase approximation (RPA) and $GW$ methods that were validated in a comprehensive benchmark study [@azizi2024validation]. In this work we present the second component of the GreenX library, the GX-AnalyticContinuation (GX-AC) component, which has the Apache-2.0 license. It provides a Fortran API for analytic continuation using Padé rational functions that can be easily integrated into other Fortran projects. The component uses the Thiele reciprocal difference method [@ThielePade_original; @ThielePade_Milne; @ThielePade_Baker] to obtain the Padé coefficients. Although the primary focus of the GreenX library are $GW$-based methods, the GX-AC component is suitable for any application where AC with Padé approximants can be used. Extensive benchmarks and the full documentation of GX-AC component can be found on the [component's website](https://nomad-coe.github.io/greenX/gx_ac.html).

Generating Padé approximants is prone to numerical instabilities caused by rounding errors that are amplified in the numerous differences in the Thiele-Padé algorithm [@PadeInstable; @jones1974numerical; @cuyt1988instability; @Beach2000], we employ two strategies to address these numerical instabilities. The first approach is to use multiple precision floating point arithmetic for the implementation of the Thiele algorithm, minimizing the numerical noise caused by rounding errors. We use the GNU Multiple Precision (GMP) library [@GMPlib] to handle the multiple-precision floats. The advantage of this library is that it provides highly optimized assembly code for most of the processors available. This approach allows us to exceed the 128-bit precision limit typically supported by standard Fortran compilers. The second strategy involves using a greedy algorithm for Thiele Padé approximants, that has been validated in previous work [@greedy_pade1; @greedy_pade2; @cdwac]. The greedy algorithm is used to rearrange the function arguments of the reference function in order to make the model numerically more stable.

Another feature of the GX-AC component is to force the Padé model to exhibit a certain symmetry. This ensures that the approximant has the same symmetry as the reference function in the case that the symmetry of the reference function is known in advance, e.g. the screened interaction in the $GW$ is an even function [@duchemin2020robust]. Additionally, the enforced symmetry helps to increase the quality of the Padé approximant because every point of a given reference function also accounts for symmetrical equivalent points. Even, odd, conjugate and anti-conjugate function symmetry is supported by the component at this point.
Another feature of the GX-AC component is to force the Padé model to exhibit a certain symmetry. This ensures that the approximant has the same symmetry as the reference function in the case that the symmetry of the reference function is known in advance, e.g. the screened Coulomb interaction in the $GW$ is an even function [@duchemin2020robust]. Additionally, the enforced symmetry helps to increase the quality of the Padé approximant because every point of a given reference function also accounts for symmetrical equivalent points. Even, odd, conjugate and anti-conjugate function symmetry is supported by the component at this point.

# State of the field

Expand Down

0 comments on commit 3551b90

Please sign in to comment.