secondorder_scf Module

second-order SCF module



Derived Types

type, public ::  indep_mo_pair

pair of molecular orbitals

Components

Type Visibility Attributes Name Initial
integer, public :: mo1
integer, public :: mo2

Subroutines

public subroutine prepare_independent_pairs(p, f, pairs, irrep)

fills the structure indep_mo_pairs containing pairs of mos forming independent SCF optimization parameters

Arguments

Type IntentOptional Attributes Name
type(param), intent(in) :: p
type(wf_data), intent(in) :: f
type(indep_mo_pair), intent(out), allocatable :: pairs(:)
integer, intent(in), optional :: irrep(:)

public subroutine rotate_orbitals(theta, pairs, c)

rotates orbital pairs by given angle theta

Arguments

Type IntentOptional Attributes Name
real(kind=long), intent(in) :: theta(:)
type(indep_mo_pair), intent(in) :: pairs(:)
real(kind=long), intent(out) :: c(:,:)

public subroutine bfgs_hessian(old_step, gradient, old_gradient, old_inv_hessian, inv_hessian)

Broyden-Fletcher-Goldfarb-Shanno (BFGS) method to approximate the inverse hessian by previous step and this step gradient and previous step gradient, and previous estimated hessian

Arguments

Type IntentOptional Attributes Name
real(kind=long), intent(in) :: old_step(:)
real(kind=long), intent(in) :: gradient(:)
real(kind=long), intent(in) :: old_gradient(:)
real(kind=long), intent(in) :: old_inv_hessian(:,:)
real(kind=long), intent(out) :: inv_hessian(size(old_inv_hessian,1),size(old_inv_hessian,1))

public subroutine make_soscf_step(h, lc, pairs, theta, gradient, inv_hessian)

Arguments

Type IntentOptional Attributes Name
real(kind=long), intent(in) :: h(:,:)

fock matrix or hamiltoninan

real(kind=long), intent(inout) :: lc(:,:)

mo coefficients

type(indep_mo_pair), intent(in) :: pairs(:)

pair structure

real(kind=long), intent(inout) :: theta(:)

rotation angles

real(kind=long), intent(inout) :: gradient(:)

gradients

real(kind=long), intent(inout) :: inv_hessian(:,:)

inv_hessian