(git:08825b9)
Loading...
Searching...
No Matches
spectral_localizer_dbcsr Module Reference

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.

Detailed Description

Distributed block-sparse finite localizers, retaining the covariant AO metric.

Author
Thomas D. Kuehne, tkueh.nosp@m.ne@c.nosp@m.p2k.o.nosp@m.rg

Function/Subroutine Documentation

◆ localizer_dbcsr_3d_build()

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.

Parameters
hScalar AO Hamiltonian
sScalar AO overlap
positionsThree Cartesian AO first moments
pointCartesian position query
energyAbsolute energy query
kappaPositive energy/length scale
blockChiral block, with auxiliary index outside physical up/down spin
metricBlock metric I_aux tensor I_spin tensor S
socThree real antisymmetric SOC components
shifted_hamiltonianOptional already energy-shifted physical-spin Hamiltonian
periodic_cosinesThree 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.

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

◆ localizer_dbcsr_realify()

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)].

Parameters
matrixComplex operator with full-storage components
realifiedNewly initialized real DBCSR operator

Definition at line 126 of file spectral_localizer_dbcsr.F.

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

◆ localizer_dbcsr_from_real()

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.

Parameters
realifiedFully stored real operator with two repeated component distributions
templateOriginal complex operator defining the physical AO block distribution
matrixNewly initialized complex operator; caller must check realification residual

Definition at line 149 of file spectral_localizer_dbcsr.F.

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

◆ localizer_ao_operators()

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.

Parameters
hScalar Hamiltonian
sAO metric
positionsCovariant scalar observables, such as first moments or trigonometric coordinates
operatorsNewly initialized Hamiltonian followed by the supplied observables
metricNewly initialized physical-spin metric
socOptional antisymmetric real GTH SOC components

Definition at line 221 of file spectral_localizer_dbcsr.F.

Here is the caller graph for this function:

◆ localizer_dbcsr_gap_pencil()

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.

Parameters
hComplex physical Hamiltonian, including spin if present
sComplex physical metric with the same AO block layout
energyReference energy
pencilNewly allocated diag(H-E*S,-H+E*S)
metricNewly allocated diag(S,S)

Definition at line 270 of file spectral_localizer_dbcsr.F.

Here is the caller graph for this function:

◆ localizer_dbcsr_build()

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.

Parameters
hReal scalar Hamiltonian
sReal AO overlap
xFirst oriented real AO position
ySecond oriented real AO position
pointTwo Cartesian coordinates
energyReference energy
kappaEnergy/length scale
localizerNewly created complex DBCSR localizer
metricNewly created complex DBCSR metric
socReal antisymmetric SOC components from V_SOC_xyz_from_pseudopotential
periodic_cosinesOptional 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_hamiltonianOptional replacement for the physical H-E*S including SOC. Requires energy=0; the scalar h and SOC contributions are then not added again.
Note
Component-major ordering: auxiliary index, physical spin, then atomic AO blocks.

Definition at line 309 of file spectral_localizer_dbcsr.F.

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

◆ localizer_dbcsr_dense()

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.

Parameters
matrixFully stored complex block-sparse matrix
para_envMatrix communicator
denseReplicated matrix

Definition at line 464 of file spectral_localizer_dbcsr.F.

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

◆ localizer_dbcsr_check()

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.

Parameters
matrixFully stored complex matrix
para_envMatrix communicator
toleranceRelative Hermiticity tolerance
validWhether all entries are finite and the matrix is Hermitian
relative_errorLargest 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.

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

◆ localizer_dbcsr_release()

subroutine, public spectral_localizer_dbcsr::localizer_dbcsr_release ( type(localizer_matrix_type), intent(inout) matrix)

Release both real components of a complex sparse operator.

Parameters
matrixSparse operator

Definition at line 593 of file spectral_localizer_dbcsr.F.

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