module to construct Fock matrix for RHF and ROHF calculations and various orbital transformation routines
constructs UHF Fock Matrix
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(param), | intent(in) | :: | p | |||
type(basis), | intent(in) | :: | b | |||
type(wf_data), | intent(inout) | :: | f | |||
real(kind=long), | intent(in), | dimension(b%n_basis, b%n_basis) | :: | dmata | ||
real(kind=long), | intent(in), | dimension(b%n_basis, b%n_basis) | :: | dmatb | ||
real(kind=long), | intent(inout), | dimension(b%n_basis, b%n_basis) | :: | focka | ||
real(kind=long), | intent(inout), | dimension(b%n_basis, b%n_basis) | :: | fockb |
returns RHF Fock matrix
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=long), | intent(in) | :: | h0(:,:) | |||
real(kind=long), | intent(in) | :: | teints(:) | |||
real(kind=long), | intent(in), | dimension(size(h0, 1), size(h0, 1)) | :: | d | ||
real(kind=long), | intent(out) | :: | fock(size(h0,1),size(h0,1)) |
returns ROHF Fock matrix for high spin half filled open shell variant=1 (default) Roothan variant=2 Davidson variant=3 Guest & Saunders
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(param), | intent(in) | :: | p | |||
type(basis), | intent(in) | :: | b | |||
type(wf_data), | intent(inout) | :: | f | |||
integer, | intent(in), | optional | :: | variant |
This function constructs the RHF Fock Matrix assumes that density matrix is symmetric
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(param), | intent(in) | :: | p | |||
type(basis), | intent(in) | :: | b | |||
type(wf_data), | intent(inout) | :: | f | |||
logical, | intent(in), | optional | :: | use_d_diff | ||
real(kind=long), | intent(in), | optional, | dimension(p%n_basis, p%n_basis) | :: | dmat_given |
this subroutine returns the matrix it expects to find the MO-space twoelectron integrals in F%teint
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(param), | intent(in) | :: | p | |||
type(wf_data), | intent(in) | :: | f | |||
real(kind=long), | intent(in), | dimension(:, :, :) | :: | du | ||
real(kind=long), | intent(out), | dimension(:, :, :) | :: | m |
this subroutine returns the matrix it expects to find the MO-space twoelectron integrals in F%teint
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(param), | intent(in) | :: | p | |||
type(wf_data), | intent(in) | :: | f | |||
real(kind=long), | intent(in), | dimension(:, :, :) | :: | du | ||
real(kind=long), | intent(out), | dimension(:, :, :) | :: | m |
this subroutine returns the matrix idea: employ a density difference and screen low contributions
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(param), | intent(in) | :: | p | |||
type(atom_set), | intent(in) | :: | a(:) | |||
type(basis), | intent(in) | :: | b | |||
type(wf_data), | intent(in) | :: | f | |||
real(kind=long), | intent(in), | dimension(:, :, :) | :: | du | ||
real(kind=long), | intent(out), | dimension(:, :, :) | :: | m |
this subroutine returns the matrix it expects to find the MO-space twoelectron integrals in F%teint
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(param), | intent(in) | :: | p | |||
type(wf_data), | intent(in) | :: | f | |||
real(kind=long), | intent(in), | dimension(:, :, :) | :: | do | ||
real(kind=long), | intent(out), | dimension(:, :, :) | :: | m |
this subroutine returns the matrix it doesn't need transformed integrals
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(param), | intent(in) | :: | p | |||
type(atom_set), | intent(in) | :: | a(:) | |||
type(basis), | intent(in) | :: | b | |||
type(wf_data), | intent(in) | :: | f | |||
real(kind=long), | intent(in), | dimension(:, :, :) | :: | do | ||
real(kind=long), | intent(out), | dimension(:, :, :) | :: | m |
This function constructs the J Matrix
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=long), | intent(in) | :: | teints(:) | |||
real(kind=long), | intent(in), | dimension(:, :) | :: | dmat | ||
real(kind=long), | intent(out), | dimension(size(dmat, 1), size(dmat, 2)) | :: | j_matrix |
construct the K matrix
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=long), | intent(in) | :: | teints(:) | |||
real(kind=long), | intent(in), | dimension(:, :) | :: | dmat | ||
real(kind=long), | intent(out), | dimension(size(dmat, 1), size(dmat, 2)) | :: | k_matrix |
transform 2el matrix elements into MO space only those of type (cc|ij) and (ci|cj) where two electrons are member of the array core
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(param), | intent(in) | :: | p | |||
type(basis), | intent(in) | :: | b | |||
type(wf_data), | intent(inout) | :: | f | |||
integer, | intent(in) | :: | core(:) | |||
integer, | intent(in) | :: | output |
transform 2el matrix elements into MO space only those where two electrons are member of the array active
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(param), | intent(in) | :: | p | |||
type(basis), | intent(inout) | :: | b | |||
type(wf_data), | intent(inout) | :: | f | |||
integer, | intent(in) | :: | active(:) | |||
integer, | intent(in) | :: | output |
transform all 2el matrix elements into MO space only those where two electrons are member of the array core and two electrons are in the array virtual (as required for CIS)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(param), | intent(in) | :: | p | |||
type(basis), | intent(in) | :: | b | |||
type(wf_data), | intent(inout) | :: | f | |||
integer, | intent(in) | :: | core(:) | |||
integer, | intent(in) | :: | virtual(:) | |||
integer, | intent(in) | :: | output |
contracts a packed storage teints set with dimension n along the first coordinate with coefficients LC
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(param), | intent(in) | :: | p | |||
real(kind=long), | intent(in) | :: | teint(:) | |||
real(kind=long), | intent(in) | :: | lc(:,:) | |||
integer, | intent(in) | :: | n | |||
real(kind=long), | intent(out) | :: | teint_ijka(size(lc,2),n,n*(n+1)/2) |
contracts a packed storage teints set with dimension n along the first coordinate with coefficients LC
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(param), | intent(in) | :: | p | |||
real(kind=long), | intent(in) | :: | teint_ijka(:,:,:) | |||
real(kind=long), | intent(in) | :: | lc(:,:) | |||
real(kind=long), | intent(out) | :: | teint_ijba(size(teint_ijka,1)*size(lc,2),size(teint_ijka,3)) |
contracts a packed storage teints set with dimension n along the first coordinate with coefficients LC
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(param), | intent(in) | :: | p | |||
real(kind=long), | intent(in) | :: | teint_ijab(:,:) | |||
real(kind=long), | intent(in) | :: | lc(:,:) | |||
integer, | intent(in) | :: | n | |||
real(kind=long), | intent(out) | :: | teint_icab(size(lc,2),n,size(teint_ijab,2)) |
contracts a packed storage teints set with dimension n along the first coordinate with coefficients LC
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(param), | intent(in) | :: | p | |||
real(kind=long), | intent(in) | :: | teint_icab(:,:,:) | |||
real(kind=long), | intent(in) | :: | lc(:,:) | |||
real(kind=long), | intent(out) | :: | teint_cdab(size(teint_icab,1)*size(lc,2),size(teint_icab,3)) |
subroutine to transform all 2el matrix elements into MO space where two electrons are member of the array core and two electrons are in the array virtual (as required for CIS)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(param), | intent(in) | :: | p | |||
type(basis), | intent(in) | :: | b | |||
type(wf_data), | intent(inout) | :: | f | |||
integer, | intent(in) | :: | core(:) | |||
integer, | intent(in) | :: | virtual(:) | |||
integer, | intent(in) | :: | output |