PROGRESS  master
prg_genz_mod Module Reference

To produce a matrix \(Z\) which is needed to orthogonalize \(H\). More...

Data Types

type  genzspinp
 Input for the genz driver. This type controlls all the variables that are needed by genz. More...
 

Functions/Subroutines

subroutine, public prg_parse_zsp (input, filename)
 The parser for genz solver. More...
 
subroutine, public prg_init_zspmat (igenz, zk1_bml, zk2_bml, zk3_bml, zk4_bml, zk5_bml, zk6_bml, norb, bml_type, bml_element_type)
 Initiates the matrices for the Xl integration of Z. More...
 
subroutine, public prg_buildzdiag (smat_bml, zmat_bml, threshold, mdimin, bml_type, verbose, err_out)
 Usual subroutine involving diagonalization. \( Z=U\sqrt{s}U^{\dagger} \), where \( U \) = eigenvectors and \( s \) = eigenvalues. The purpose of this subroutine is to have an exact way of computing z for comparing with the sparse approach. More...
 
subroutine, public prg_buildzsparse (smat_bml, zmat_bml, igenz, mdim, bml_type, zk1_bml, zk2_bml, zk3_bml, zk4_bml, zk5_bml, zk6_bml, nfirst, nrefi, nreff, thresholdi, thresholdf, integration, verbose)
 Inverse factorization using Niklasson's algorithm. More...
 
subroutine, public prg_genz_sp_initialz0 (smat_bml, zmat_bml, norb, mdim, bml_type_f, threshold)
 Initial estimation of Z. More...
 
subroutine, public prg_genz_sp_initial_zmat (smat_bml, zmat_bml, norb, mdim, bml_type_f, threshold)
 Initial estimation of Z. More...
 
subroutine prg_genz_sp_int (zmat_bml, zk1_bml, zk2_bml, zk3_bml, zk4_bml, zk5_bml, zk6_bml, igenz, norb, bml_type, threshold)
 Inverse factorization using Niklasson's algorithm. More...
 
subroutine, public prg_genz_sp_ref (smat_bml, zmat_bml, nref, norb, bml_type, threshold)
 Iterative refinement. More...
 

Variables

integer, parameter dp = kind(1.0d0)
 

Detailed Description

To produce a matrix \(Z\) which is needed to orthogonalize \(H\).

\( H_{orth} = Z^{\dagger}HZ \) See Negre 2016 [2]

Function/Subroutine Documentation

◆ prg_buildzdiag()

subroutine, public prg_genz_mod::prg_buildzdiag ( type(bml_matrix_t), intent(inout)  smat_bml,
type(bml_matrix_t)  zmat_bml,
real(dp threshold,
integer, intent(in)  mdimin,
character(len=*), intent(in)  bml_type,
integer, intent(in), optional  verbose,
logical, intent(inout), optional  err_out 
)

Usual subroutine involving diagonalization. \( Z=U\sqrt{s}U^{\dagger} \), where \( U \) = eigenvectors and \( s \) = eigenvalues. The purpose of this subroutine is to have an exact way of computing z for comparing with the sparse approach.

Parameters
smat_bmlOverlap matrix in bml format.
zmat_bmlCongruence transform in bml format.
thresholdThreshold value to use, in this case, only in the backtransformation to ellpack format.
mdimMaximun nonzero to use, in this case, only in the backtransformation to ellpack format.
bml_typethe bml type we are passing.
verboseVerbosity controll level.
errError handling variable

Definition at line 181 of file prg_genz_mod.F90.

◆ prg_buildzsparse()

subroutine, public prg_genz_mod::prg_buildzsparse ( type(bml_matrix_t)  smat_bml,
type(bml_matrix_t)  zmat_bml,
integer  igenz,
integer  mdim,
character(20)  bml_type,
type(bml_matrix_t)  zk1_bml,
type(bml_matrix_t)  zk2_bml,
type(bml_matrix_t)  zk3_bml,
type(bml_matrix_t)  zk4_bml,
type(bml_matrix_t)  zk5_bml,
type(bml_matrix_t)  zk6_bml,
integer  nfirst,
integer  nrefi,
integer  nreff,
real(dp thresholdi,
real(dp thresholdf,
logical  integration,
integer  verbose 
)

Inverse factorization using Niklasson's algorithm.

Parameters
smat_bmloverlap matrix
zmat_bmlcongruence transform to be updated or computed. (bml format)
igenzcounter to keep track of the calls to this subroutine.
mdimdimension of the maxnonzero per row.
zk1_bml-zk6_bmlhistory of the past congruence transforms.
nfirstfirst pre septs with nrefi and thresholdi.
nrefinumber of refinement iterations for the firsts "nfirst" steps.
nreffnumber of refinement iterations for the rest of the steps.
integrationif we want to apply xl integration scheme for z (default is always .true.)
verboseto print extra information.

Definition at line 318 of file prg_genz_mod.F90.

◆ prg_genz_sp_initial_zmat()

subroutine, public prg_genz_mod::prg_genz_sp_initial_zmat ( type(bml_matrix_t), intent(in)  smat_bml,
type(bml_matrix_t)  zmat_bml,
integer  norb,
integer  mdim,
character(20)  bml_type_f,
real(dp), intent(in)  threshold 
)

Initial estimation of Z.

Note
Most of the operations are done in pure dense format. The purpose of this subroutine is to have an exact way of computing z for comparing with the sparse approach.
Parameters
smat_bmlOverlap matrix in bml format.
zmat_bmlCongruence transform in bml format.
norbCongruence transform in bml format.
mdimCongruence transform in bml format.
bml_type_fThe bml final type of zmat_bml.
thresholdThreshold value to use, in this case, only in the backtransformation to ellpack format.

Definition at line 524 of file prg_genz_mod.F90.

◆ prg_genz_sp_initialz0()

subroutine, public prg_genz_mod::prg_genz_sp_initialz0 ( type(bml_matrix_t), intent(in)  smat_bml,
type(bml_matrix_t)  zmat_bml,
integer  norb,
integer  mdim,
character(20)  bml_type_f,
real(dp threshold 
)

Initial estimation of Z.

Note
Most of the operations are done in pure dense format. The purpose of this subroutine is to have an exact way of computing z for comparing with the sparse approach.
Parameters
smat_bmlOverlap matrix in bml format.
zmat_bmlCongruence transform in bml format.
norbCongruence transform in bml format.
mdimCongruence transform in bml format.
bml_type_fThe bml final type of zmat_bml.
thresholdThreshold value to use, in this case, only in the backtransformation to ellpack format.

Definition at line 384 of file prg_genz_mod.F90.

◆ prg_genz_sp_int()

subroutine prg_genz_mod::prg_genz_sp_int ( type(bml_matrix_t)  zmat_bml,
type(bml_matrix_t)  zk1_bml,
type(bml_matrix_t)  zk2_bml,
type(bml_matrix_t)  zk3_bml,
type(bml_matrix_t)  zk4_bml,
type(bml_matrix_t)  zk5_bml,
type(bml_matrix_t)  zk6_bml,
integer  igenz,
integer  norb,
character(20)  bml_type,
real(dp threshold 
)
private

Inverse factorization using Niklasson's algorithm.

Parameters
smat_bmloverlap matrix
zmat_bmlcongruence transform to be updated or computed. (bml format)
mdimdimension of the maxnonzero per row.
zk1_bml-zk6_bmlhistory of the past congruence transforms.
igenzcounter to keep track of the calls to this subroutine.
norbCongruence transform in bml format.
bml_type_fThe bml final type of zmat_bml.
thresholdThreshold value to use.

Definition at line 679 of file prg_genz_mod.F90.

◆ prg_genz_sp_ref()

subroutine, public prg_genz_mod::prg_genz_sp_ref ( type(bml_matrix_t), intent(in)  smat_bml,
type(bml_matrix_t), intent(inout)  zmat_bml,
integer, intent(in)  nref,
integer, intent(inout)  norb,
character(20), intent(in)  bml_type,
real(dp), intent(in)  threshold 
)

Iterative refinement.

Parameters
smat_bmloverlap matrix
zmat_bmlcongruence transform to be updated or computed. (bml format)
nrefNumber of refinement iterations.
bml_type_fThe bml final type of zmat_bml.
thresholdThreshold value to use.
verboseto print extra information.

Definition at line 765 of file prg_genz_mod.F90.

◆ prg_init_zspmat()

subroutine, public prg_genz_mod::prg_init_zspmat ( integer  igenz,
type(bml_matrix_t)  zk1_bml,
type(bml_matrix_t)  zk2_bml,
type(bml_matrix_t)  zk3_bml,
type(bml_matrix_t)  zk4_bml,
type(bml_matrix_t)  zk5_bml,
type(bml_matrix_t)  zk6_bml,
integer  norb,
character(20)  bml_type,
character(20), optional  bml_element_type 
)

Initiates the matrices for the Xl integration of Z.

Parameters
selfinput zsp variables
zk1_bml-zk6_bmlhistory record of the previous Z matrices.
norbnumber of orbitals.
bml_typethe bml format we are passing.

Definition at line 138 of file prg_genz_mod.F90.

◆ prg_parse_zsp()

subroutine, public prg_genz_mod::prg_parse_zsp ( type(genzspinp), intent(inout)  input,
character(len=*)  filename 
)

The parser for genz solver.

Definition at line 72 of file prg_genz_mod.F90.

Variable Documentation

◆ dp

integer, parameter prg_genz_mod::dp = kind(1.0d0)
private

Definition at line 23 of file prg_genz_mod.F90.