momentGW.uhf.rpa
Construct RPA moments with unrestricted references.
Module Contents
- class momentGW.uhf.rpa.dRPA(gw, nmom_max, integrals, mo_energy=None, mo_occ=None)
Bases:
momentGW.uhf.tda.dTDA,momentGW.rpa.dRPACompute the self-energy moments using dRPA and numerical integration with unrestricted references.
- Parameters:
gw (BaseUGW) – GW object.
nmom_max (int) – Maximum moment number to calculate.
integrals (UIntegrals) – Integrals object.
mo_energy (dict, optional) – Molecular orbital energies for each spin. Keys are “g” and “w” for the Green’s function and screened Coulomb interaction, respectively. If None, use gw.mo_energy for both. Default value is None.
mo_occ (dict, optional) – Molecular orbital occupancies for each spin. Keys are “g” and “w” for the Green’s function and screened Coulomb interaction, respectively. If None, use gw.mo_occ for both. Default value is None.
- property nov
Get the number of ov states in the screened Coulomb interaction.
- property nmo
Get the number of MOs.
- property naux
Get the number of auxiliaries.
- integrate()
Optimise the quadrature and perform the integration.
- Returns:
integrals – Integral array, include the offset part, for each spin channel.
- Return type:
: tuple of numpy.ndarray
- build_dd_moments(integral=None)
Build the moments of the density-density response.
- abstract build_dd_moments_exact()
Build the exact moments of the density-density response.
Notes
Placeholder for future implementation.
- kernel(exact=False)
Run the polarizability calculation to compute moments of the self-energy.
- Parameters:
exact (bool, optional) – Has no effect and is only present for compatibility with dRPA. Default value is False.
- Returns:
moments_occ (numpy.ndarray) – Moments of the occupied self-energy for each spin channel.
moments_vir (numpy.ndarray) – Moments of the virtual self-energy for each spin channel.
- convolve(eta, eta_orders=None, mo_energy_g=None, mo_occ_g=None)
Handle the convolution of the moments of the Green’s function and screened Coulomb interaction.
- Parameters:
eta (numpy.ndarray) – Moments of the density-density response partly transformed into moments of the screened Coulomb interaction, for each spin channel.
mo_energy_g (numpy.ndarray, optional) – Energies of the Green’s function for each spin channel. If None, use self.mo_energy_g. Default value is None.
eta_orders (list, optional) – List of orders for the rotated density-density moments in eta. If None, assume it spans all required orders. Default value is None.
mo_occ_g (numpy.ndarray, optional) – Occupancies of the Green’s function for each spin channel. If None, use self.mo_occ_g. Default value is None.
- Returns:
moments_occ (numpy.ndarray) – Moments of the occupied self-energy for each spin channel.
moments_vir (numpy.ndarray) – Moments of the virtual self-energy for each spin channel.
- build_se_moments(moments_dd)
Build the moments of the self-energy via convolution.
- Parameters:
moments_dd (numpy.ndarray) – Moments of the density-density response for each spin channel.
- Returns:
moments_occ (numpy.ndarray) – Moments of the occupied self-energy for each spin channel.
moments_vir (numpy.ndarray) – Moments of the virtual self-energy for each spin channel.
- abstract build_dp_moments()
Build the moments of the dynamic polarizability for optical spectra calculations.
Notes
Placeholder for future implementation.
- abstract build_dd_moment_inv()
Build the first inverse (n=-1) moment of the density-density response.
Notes
Placeholder for future implementation.
- mpi_slice(n)
Return the start and end index for the current process for total size n.
- Parameters:
n (int) – Total size.
- Returns:
p0 (int) – Start index for current process.
p1 (int) – End index for current process.
- mpi_size(n)
Return the number of states in the current process for total size n.
- static rescale_quad(bare_quad, a)
Rescale quadrature for grid space a.
- optimise_offset_quad(d, diag_eri, name='offset')
Optimise the grid spacing of Gauss-Laguerre quadrature for the offset integral.
- Parameters:
d (numpy.ndarray) – Orbital energy differences.
diag_eri (numpy.ndarray) – Diagonal of the ERIs.
name (str, optional) – Name of the integral. Default value is “offset”.
- Returns:
points (numpy.ndarray) – The quadrature points.
weights (numpy.ndarray) – The quadrature weights.
- optimise_main_quad(d, diag_eri, name='main')
Optimise the grid spacing of Clenshaw-Curtis quadrature for the main integral.
- Parameters:
d (numpy.ndarray) – Orbital energy differences.
diag_eri (numpy.ndarray) – Diagonal of the ERIs.
name (str, optional) – Name of the integral. Default value is “main”.
- Returns:
points (numpy.ndarray) – The quadrature points.
weights (numpy.ndarray) – The quadrature weights.
- get_optimal_quad(bare_quad, integrand, exact, name=None)
Get the optimal quadrature.
- Parameters:
- Returns:
points (numpy.ndarray) – The quadrature points.
weights (numpy.ndarray) – The quadrature weights.
- eval_diag_offset_integral(quad, d, diag_eri)
Evaluate the diagonal of the offset integral.
- Parameters:
quad (tuple) – The quadrature points and weights.
d (numpy.ndarray) – Orbital energy differences.
diag_eri (numpy.ndarray) – Diagonal of the ERIs.
- Returns:
integral – Offset integral.
- Return type:
numpy.ndarray
- eval_diag_main_integral(quad, d, diag_eri)
Evaluate the diagonal of the main integral.
- Parameters:
quad (tuple) – The quadrature points and weights.
d (numpy.ndarray) – Orbital energy differences.
diag_eri (numpy.ndarray) – Diagonal of the ERIs.
- Returns:
integral – Main integral.
- Return type:
numpy.ndarray
- eval_offset_integral(quad, d, Lia=None)
Evaluate the offset integral.
- Parameters:
quad (tuple) – The quadrature points and weights.
d (numpy.ndarray) – Orbital energy differences.
Lia (numpy.ndarray, optional) – The
(aux, W occ, W vir)integral array. If None, use self.integrals.Lia. Keyword argument allows for the use of this function with uhf and pbc modules.
- Returns:
integral – Offset integral.
- Return type:
numpy.ndarray
- eval_main_integral(quad, d, Lia=None)
Evaluate the main integral.
- Parameters:
quad (tuple) – The quadrature points and weights.
d (numpy.ndarray) – Orbital energy differences.
Lia (numpy.ndarray) – The (aux, W occ, W vir) integral array. If None, use self.integrals.Lia. Keyword argument allows for the use of this function with uhf and pbc modules.
- Returns:
integral – Offset integral.
- Return type:
numpy.ndarray
- gen_clencur_quad_inf(even=False)
Generate quadrature points and weights for Clenshaw-Curtis quadrature over an
(-inf, +inf).- Parameters:
even (bool, optional) – Whether to assume an even grid. Default is False.
- Returns:
points (numpy.ndarray) – Quadrature points.
weights (numpy.ndarray) – Quadrature weights.
- gen_gausslag_quad_semiinf()
Generate quadrature points and weights for Gauss-Laguerre quadrature over an
(0, +inf).- Returns:
points (numpy.ndarray) – Quadrature points.
weights (numpy.ndarray) – Quadrature weights.
- estimate_error_clencur(i4, i2, imag_tol=1e-10)
Estimate the quadrature error for Clenshaw-Curtis quadrature.
- Parameters:
i4 (numpy.ndarray) – Integral at one-quarter the number of points.
i2 (numpy.ndarray) – Integral at one-half the number of points.
imag_tol (float, optional) – Threshold to consider the imaginary part of a root to be zero. Default value is 1e-10.
- Returns:
error – Estimated error.
- Return type:
numpy.ndarray