![]() |
(git:08825b9)
|
Distributed block-sparse finite localizers, retaining the covariant AO metric. More...
Data Types | |
| type | localizer_matrix_type |
Functions/Subroutines | |
| subroutine, public | localizer_dbcsr_3d_build (h, s, positions, point, energy, kappa, block, metric, soc, shifted_hamiltonian, periodic_cosines) |
| Build the 3D AII chiral block in DBCSR; not a Hermitian 2D localizer. | |
| subroutine, public | localizer_dbcsr_realify (matrix, realified) |
| Distributed real matrix R(A)=[Re(A),-Im(A);Im(A),Re(A)]. | |
| subroutine, public | localizer_dbcsr_from_real (realified, template, matrix) |
| Extract the two left quadrants of R(A); does not average away structure errors. | |
| subroutine, public | localizer_ao_operators (h, s, positions, operators, metric, soc) |
| Shared AO Hamiltonian, Hermitian scalar observables and optional GTH physical-spin SOC. | |
| subroutine, public | localizer_dbcsr_gap_pencil (h, s, energy, pencil, metric) |
| Pair H-E*S with its negative to reuse the metric-aware localizer gap solvers. | |
| subroutine, public | localizer_dbcsr_build (h, s, x, y, point, energy, kappa, localizer, metric, soc, periodic_cosines, shifted_hamiltonian) |
| Assemble L and B=diag(S,S), including optional physical spin and SOC, without dense AOs. | |
| subroutine, public | localizer_dbcsr_dense (matrix, para_env, dense) |
| Collect the size-limited dense oracle; sparse solvers must not call this routine. | |
| subroutine, public | localizer_dbcsr_check (matrix, para_env, tolerance, valid, relative_error) |
| Check both components before a sparse solver discards the upper triangle. | |
| subroutine, public | localizer_dbcsr_release (matrix) |
| Release both real components of a complex sparse operator. | |
Distributed block-sparse finite localizers, retaining the covariant AO metric.
| subroutine, public spectral_localizer_dbcsr::localizer_dbcsr_3d_build | ( | type(dbcsr_type), intent(in) | h, |
| type(dbcsr_type), intent(in) | s, | ||
| type(dbcsr_p_type), dimension(:), intent(in) | positions, | ||
| real(dp), dimension(3), intent(in) | point, | ||
| real(dp), intent(in) | energy, | ||
| real(dp), intent(in) | kappa, | ||
| type(localizer_matrix_type), intent(out) | block, | ||
| type(localizer_matrix_type), intent(out) | metric, | ||
| type(dbcsr_p_type), dimension(:, :), intent(in) | soc, | ||
| type(localizer_matrix_type), intent(in), optional | shifted_hamiltonian, | ||
| type(dbcsr_p_type), dimension(:), intent(in), optional | periodic_cosines ) |
Build the 3D AII chiral block in DBCSR; not a Hermitian 2D localizer.
| h | Scalar AO Hamiltonian |
| s | Scalar AO overlap |
| positions | Three Cartesian AO first moments |
| point | Cartesian position query |
| energy | Absolute energy query |
| kappa | Positive energy/length scale |
| block | Chiral block, with auxiliary index outside physical up/down spin |
| metric | Block metric I_aux tensor I_spin tensor S |
| soc | Three real antisymmetric SOC components |
| shifted_hamiltonian | Optional already energy-shifted physical-spin Hamiltonian |
| periodic_cosines | Three cos(G.r) matrices. Then positions are sin(G.r), point is in radians, and kappa is the periodic energy scale eta. |
Definition at line 55 of file spectral_localizer_dbcsr.F.
| subroutine, public spectral_localizer_dbcsr::localizer_dbcsr_realify | ( | type(localizer_matrix_type), intent(in) | matrix, |
| type(dbcsr_type), intent(out) | realified ) |
Distributed real matrix R(A)=[Re(A),-Im(A);Im(A),Re(A)].
| matrix | Complex operator with full-storage components |
| realified | Newly initialized real DBCSR operator |
Definition at line 126 of file spectral_localizer_dbcsr.F.
| subroutine, public spectral_localizer_dbcsr::localizer_dbcsr_from_real | ( | type(dbcsr_type), intent(inout) | realified, |
| type(localizer_matrix_type), intent(in) | template, | ||
| type(localizer_matrix_type), intent(out) | matrix ) |
Extract the two left quadrants of R(A); does not average away structure errors.
| realified | Fully stored real operator with two repeated component distributions |
| template | Original complex operator defining the physical AO block distribution |
| matrix | Newly initialized complex operator; caller must check realification residual |
Definition at line 149 of file spectral_localizer_dbcsr.F.
| subroutine, public spectral_localizer_dbcsr::localizer_ao_operators | ( | type(dbcsr_type), intent(in) | h, |
| type(dbcsr_type), intent(in) | s, | ||
| type(dbcsr_p_type), dimension(:), intent(in) | positions, | ||
| type(localizer_matrix_type), dimension(:), intent(out) | operators, | ||
| type(localizer_matrix_type), intent(out) | metric, | ||
| type(dbcsr_p_type), dimension(:, :), intent(in), optional | soc ) |
Shared AO Hamiltonian, Hermitian scalar observables and optional GTH physical-spin SOC.
| h | Scalar Hamiltonian |
| s | AO metric |
| positions | Covariant scalar observables, such as first moments or trigonometric coordinates |
| operators | Newly initialized Hamiltonian followed by the supplied observables |
| metric | Newly initialized physical-spin metric |
| soc | Optional antisymmetric real GTH SOC components |
Definition at line 221 of file spectral_localizer_dbcsr.F.
| subroutine, public spectral_localizer_dbcsr::localizer_dbcsr_gap_pencil | ( | type(localizer_matrix_type), intent(in) | h, |
| type(localizer_matrix_type), intent(in) | s, | ||
| real(dp), intent(in) | energy, | ||
| type(localizer_matrix_type), intent(out) | pencil, | ||
| type(localizer_matrix_type), intent(out) | metric ) |
Pair H-E*S with its negative to reuse the metric-aware localizer gap solvers.
| h | Complex physical Hamiltonian, including spin if present |
| s | Complex physical metric with the same AO block layout |
| energy | Reference energy |
| pencil | Newly allocated diag(H-E*S,-H+E*S) |
| metric | Newly allocated diag(S,S) |
Definition at line 270 of file spectral_localizer_dbcsr.F.
| subroutine, public spectral_localizer_dbcsr::localizer_dbcsr_build | ( | type(dbcsr_type), intent(in) | h, |
| type(dbcsr_type), intent(in) | s, | ||
| type(dbcsr_type), intent(in) | x, | ||
| type(dbcsr_type), intent(in) | y, | ||
| real(kind=dp), dimension(2), intent(in) | point, | ||
| real(kind=dp), intent(in) | energy, | ||
| real(kind=dp), intent(in) | kappa, | ||
| type(localizer_matrix_type), intent(out) | localizer, | ||
| type(localizer_matrix_type), intent(out) | metric, | ||
| type(dbcsr_p_type), dimension(:, :), intent(in), optional | soc, | ||
| type(dbcsr_p_type), dimension(:), intent(in), optional | periodic_cosines, | ||
| type(localizer_matrix_type), intent(in), optional | shifted_hamiltonian ) |
Assemble L and B=diag(S,S), including optional physical spin and SOC, without dense AOs.
| h | Real scalar Hamiltonian |
| s | Real AO overlap |
| x | First oriented real AO position |
| y | Second oriented real AO position |
| point | Two Cartesian coordinates |
| energy | Reference energy |
| kappa | Energy/length scale |
| localizer | Newly created complex DBCSR localizer |
| metric | Newly created complex DBCSR metric |
| soc | Real antisymmetric SOC components from V_SOC_xyz_from_pseudopotential |
| periodic_cosines | Optional two cos(G.r) matrices. Then x,y are sin(G.r), point is G.r0, and kappa is the energy scale eta (not the finite energy/length scale). |
| shifted_hamiltonian | Optional replacement for the physical H-E*S including SOC. Requires energy=0; the scalar h and SOC contributions are then not added again. |
Definition at line 309 of file spectral_localizer_dbcsr.F.
| subroutine, public spectral_localizer_dbcsr::localizer_dbcsr_dense | ( | type(localizer_matrix_type), intent(inout) | matrix, |
| type(mp_para_env_type), pointer | para_env, | ||
| complex(kind=dp), dimension(:, :), intent(out), allocatable | dense ) |
Collect the size-limited dense oracle; sparse solvers must not call this routine.
| matrix | Fully stored complex block-sparse matrix |
| para_env | Matrix communicator |
| dense | Replicated matrix |
Definition at line 464 of file spectral_localizer_dbcsr.F.
| subroutine, public spectral_localizer_dbcsr::localizer_dbcsr_check | ( | type(localizer_matrix_type), intent(inout) | matrix, |
| type(mp_para_env_type), pointer | para_env, | ||
| real(kind=dp), intent(in) | tolerance, | ||
| logical, intent(out) | valid, | ||
| real(kind=dp), intent(out), optional | relative_error ) |
Check both components before a sparse solver discards the upper triangle.
| matrix | Fully stored complex matrix |
| para_env | Matrix communicator |
| tolerance | Relative Hermiticity tolerance |
| valid | Whether all entries are finite and the matrix is Hermitian |
| relative_error | Largest component transpose residual divided by the largest component entry; HUGE for nonfinite entries or residuals |
Definition at line 506 of file spectral_localizer_dbcsr.F.
| subroutine, public spectral_localizer_dbcsr::localizer_dbcsr_release | ( | type(localizer_matrix_type), intent(inout) | matrix | ) |
Release both real components of a complex sparse operator.
| matrix | Sparse operator |
Definition at line 593 of file spectral_localizer_dbcsr.F.