(git:691081d)
Loading...
Searching...
No Matches
gw_fm_utils Module Reference

Common full-matrix operations used by GW modules. More...

Data Types

interface  fm_contract_aba

Functions/Subroutines

subroutine, public cfm_contract_aba (matrix_a, matrix_b, matrix_c)
 Computes A^H B A for complex full matrices.
subroutine, public fm_invert (matrix_a, eigenvalue_threshold, unit_nr)
 Inverts a symmetric matrix. First, Cholesky decomposition is tried. If it fails, the matrix is diagonalized and inverted by taking inverse eigenvalues.
subroutine, public fm_sqrt (matrix_a, matrix_b, eigenvalue_threshold, unit_nr)
 For input A, computes B such that B^T B=A. First, Cholesky decomposition is tried. If it fails, B is computed by diagonalizing A.
subroutine, public fm_contract_aba (matrix_a, matrix_b, matrix_c)
 Computes A^T B A.

Detailed Description

Common full-matrix operations used by GW modules.

History
09.2026 created Jan Wilhelm

Function/Subroutine Documentation

◆ cfm_contract_aba()

subroutine, public gw_fm_utils::cfm_contract_aba ( type(cp_cfm_type), intent(in) matrix_a,
type(cp_cfm_type), intent(inout) matrix_b,
type(cp_cfm_type), intent(inout), optional matrix_c )

Computes A^H B A for complex full matrices.

Parameters
matrix_Aleft and right matrix A; H denotes its Hermitian transpose
matrix_Binput matrix B; overwritten by A^H B A if matrix_C is absent
matrix_Coptional output matrix C=A^H B A

Definition at line 52 of file gw_fm_utils.F.

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

◆ fm_invert()

subroutine, public gw_fm_utils::fm_invert ( type(cp_fm_type), intent(inout) matrix_a,
real(kind=dp), intent(in), optional eigenvalue_threshold,
integer, intent(in), optional unit_nr )

Inverts a symmetric matrix. First, Cholesky decomposition is tried. If it fails, the matrix is diagonalized and inverted by taking inverse eigenvalues.

Parameters
matrix_Ainput A; output inverse or filtered pseudoinverse
eigenvalue_thresholdoptional relative eigenvalue threshold
unit_nroptional output unit for a failed Cholesky decomposition

Definition at line 89 of file gw_fm_utils.F.

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

◆ fm_sqrt()

subroutine, public gw_fm_utils::fm_sqrt ( type(cp_fm_type), intent(in) matrix_a,
type(cp_fm_type), intent(inout) matrix_b,
real(kind=dp), intent(in), optional eigenvalue_threshold,
integer, intent(in), optional unit_nr )

For input A, computes B such that B^T B=A. First, Cholesky decomposition is tried. If it fails, B is computed by diagonalizing A.

Parameters
matrix_Asymmetric input matrix A, retained unchanged
matrix_Boutput matrix B
eigenvalue_thresholdoptional relative eigenvalue threshold
unit_nroptional output unit for a failed Cholesky decomposition

Definition at line 135 of file gw_fm_utils.F.

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

◆ fm_contract_aba()

subroutine, public gw_fm_utils::fm_contract_aba ( type(cp_fm_type), intent(in) matrix_a,
type(cp_fm_type), intent(inout) matrix_b,
type(cp_fm_type), intent(inout), optional matrix_c )

Computes A^T B A.

Parameters
matrix_Aleft and right matrix A
matrix_Binput matrix B; overwritten by A^T B A if matrix_C is absent
matrix_Coptional output matrix C=A^T B A

Definition at line 187 of file gw_fm_utils.F.