hartree_fock

Quick description

The scf program performs Restricted Hartree-Fock calculations (the spatial part of the MOs is common for alpha and beta spinorbitals).

See also

To see the keywords/options associated to the SCF algorithm itself, see the documentation of the scf_utils module.

More advanced description

The Hartree-Fock algorithm is a SCF and therefore is based on the scf_utils module.

The Fock matrix is defined in fock_matrix_hf.irp.f.

See also

For a more detailed description of the SCF structure, see the documentation of the scf_utils module.

EZFIO parameters

energy

Energy HF

Programs

Providers

ao_two_e_integral_alpha

File : hartree_fock/fock_matrix_hf.irp.f

double precision, allocatable   :: ao_two_e_integral_alpha      (ao_num,ao_num)
double precision, allocatable   :: ao_two_e_integral_beta       (ao_num,ao_num)

Alpha and Beta Fock matrices in AO basis set

Needs:

  • ao_coef_normalized_ordered_transp

  • ao_expo_ordered_transp

  • ao_integrals_map

  • ao_integrals_threshold

  • ao_nucl

  • ao_num

  • ao_overlap_abs

  • ao_power

  • ao_prim_num

  • ao_two_e_integral_alpha_chol

  • ao_two_e_integral_schwartz

  • ao_two_e_integrals_in_map

  • do_ao_cholesky

  • do_direct_integrals

  • is_periodic

  • n_pt_max_integrals

  • nucl_coord

  • read_ao_two_e_integrals

  • scf_density_matrix_ao_alpha

  • scf_density_matrix_ao_beta

  • use_cgtos

  • use_only_lr

Needed by:

  • fock_matrix_ao_alpha

  • hf_energy

ao_two_e_integral_alpha_chol

File : hartree_fock/fock_matrix_hf.irp.f

double precision, allocatable   :: ao_two_e_integral_alpha_chol (ao_num,ao_num)
double precision, allocatable   :: ao_two_e_integral_beta_chol  (ao_num,ao_num)

Alpha and Beta Fock matrices in AO basis set

Needs:

  • ao_num

  • cholesky_ao_num

  • elec_alpha_num

  • elec_beta_num

  • qp_max_mem

  • scf_density_matrix_ao

  • scf_density_matrix_ao_alpha

  • scf_density_matrix_ao_beta

Needed by:

  • ao_two_e_integral_alpha

ao_two_e_integral_beta

File : hartree_fock/fock_matrix_hf.irp.f

double precision, allocatable   :: ao_two_e_integral_alpha      (ao_num,ao_num)
double precision, allocatable   :: ao_two_e_integral_beta       (ao_num,ao_num)

Alpha and Beta Fock matrices in AO basis set

Needs:

  • ao_coef_normalized_ordered_transp

  • ao_expo_ordered_transp

  • ao_integrals_map

  • ao_integrals_threshold

  • ao_nucl

  • ao_num

  • ao_overlap_abs

  • ao_power

  • ao_prim_num

  • ao_two_e_integral_alpha_chol

  • ao_two_e_integral_schwartz

  • ao_two_e_integrals_in_map

  • do_ao_cholesky

  • do_direct_integrals

  • is_periodic

  • n_pt_max_integrals

  • nucl_coord

  • read_ao_two_e_integrals

  • scf_density_matrix_ao_alpha

  • scf_density_matrix_ao_beta

  • use_cgtos

  • use_only_lr

Needed by:

  • fock_matrix_ao_alpha

  • hf_energy

ao_two_e_integral_beta_chol

File : hartree_fock/fock_matrix_hf.irp.f

double precision, allocatable   :: ao_two_e_integral_alpha_chol (ao_num,ao_num)
double precision, allocatable   :: ao_two_e_integral_beta_chol  (ao_num,ao_num)

Alpha and Beta Fock matrices in AO basis set

Needs:

  • ao_num

  • cholesky_ao_num

  • elec_alpha_num

  • elec_beta_num

  • qp_max_mem

  • scf_density_matrix_ao

  • scf_density_matrix_ao_alpha

  • scf_density_matrix_ao_beta

Needed by:

  • ao_two_e_integral_alpha

extra_e_contrib_density

File : hartree_fock/hf_energy.irp.f

double precision        :: extra_e_contrib_density

Extra contribution to the SCF energy coming from the density.

For a Hartree-Fock calculation: extra_e_contrib_density = 0

For a Kohn-Sham or Range-separated Kohn-Sham: the exchange/correlation - trace of the V_xc potential

Needed by:

  • scf_energy

fock_matrix_ao_alpha

File : hartree_fock/fock_matrix_hf.irp.f

double precision, allocatable   :: fock_matrix_ao_alpha (ao_num,ao_num)
double precision, allocatable   :: fock_matrix_ao_beta  (ao_num,ao_num)

Alpha Fock matrix in AO basis set

Needs:

  • ao_num

  • ao_one_e_integrals

  • ao_two_e_integral_alpha

Needed by:

  • fock_matrix_ao

  • fock_matrix_mo_alpha

  • fock_matrix_mo_beta

  • mcscf_fock_alpha_ao

  • scf_energy

fock_matrix_ao_beta

File : hartree_fock/fock_matrix_hf.irp.f

double precision, allocatable   :: fock_matrix_ao_alpha (ao_num,ao_num)
double precision, allocatable   :: fock_matrix_ao_beta  (ao_num,ao_num)

Alpha Fock matrix in AO basis set

Needs:

  • ao_num

  • ao_one_e_integrals

  • ao_two_e_integral_alpha

Needed by:

  • fock_matrix_ao

  • fock_matrix_mo_alpha

  • fock_matrix_mo_beta

  • mcscf_fock_alpha_ao

  • scf_energy

hf_energy

File : hartree_fock/hf_energy.irp.f

double precision        :: hf_energy
double precision        :: hf_two_electron_energy
double precision        :: hf_one_electron_energy

Hartree-Fock energy containing the nuclear repulsion, and its one- and two-body components.

Needs:

  • ao_num

  • ao_one_e_integrals

  • ao_two_e_integral_alpha

  • nuclear_repulsion

  • scf_density_matrix_ao_alpha

  • scf_density_matrix_ao_beta

hf_kinetic_energy

File : hartree_fock/hf_energy.irp.f

double precision        :: hf_kinetic_energy
double precision        :: hf_n_e_energy

Hartree-Fock energy containing the nuclear repulsion, and its one- and two-body components.

Needs:

  • ao_integrals_n_e

  • ao_kinetic_integrals

  • ao_num

  • scf_density_matrix_ao_alpha

  • scf_density_matrix_ao_beta

hf_n_e_energy

File : hartree_fock/hf_energy.irp.f

double precision        :: hf_kinetic_energy
double precision        :: hf_n_e_energy

Hartree-Fock energy containing the nuclear repulsion, and its one- and two-body components.

Needs:

  • ao_integrals_n_e

  • ao_kinetic_integrals

  • ao_num

  • scf_density_matrix_ao_alpha

  • scf_density_matrix_ao_beta

hf_one_electron_energy

File : hartree_fock/hf_energy.irp.f

double precision        :: hf_energy
double precision        :: hf_two_electron_energy
double precision        :: hf_one_electron_energy

Hartree-Fock energy containing the nuclear repulsion, and its one- and two-body components.

Needs:

  • ao_num

  • ao_one_e_integrals

  • ao_two_e_integral_alpha

  • nuclear_repulsion

  • scf_density_matrix_ao_alpha

  • scf_density_matrix_ao_beta

hf_two_electron_energy

File : hartree_fock/hf_energy.irp.f

double precision        :: hf_energy
double precision        :: hf_two_electron_energy
double precision        :: hf_one_electron_energy

Hartree-Fock energy containing the nuclear repulsion, and its one- and two-body components.

Needs:

  • ao_num

  • ao_one_e_integrals

  • ao_two_e_integral_alpha

  • nuclear_repulsion

  • scf_density_matrix_ao_alpha

  • scf_density_matrix_ao_beta

Subroutines / functions

create_guess:

File : hartree_fock/scf.irp.f

subroutine create_guess

Create a MO guess if no MOs are present in the EZFIO directory

Needs:

  • ao_num

  • ezfio_filename

  • mo_coef

  • mo_guess_type

  • mo_label

  • mo_num

  • mo_one_e_integrals

Called by:

  • scf()

Calls:

  • ezfio_has_mo_basis_mo_coef()

  • huckel_guess()

  • mo_as_eigvectors_of_mo_matrix()

  • restore_symmetry()

Touches:

  • fock_matrix_ao_alpha

  • fock_matrix_ao_alpha

  • mo_coef

  • mo_label

main:

File : hartree_fock/print_scf_int.irp.f

subroutine main()

Needs:

  • ao_integrals_map

  • ao_num

  • ao_one_e_integrals

  • fock_matrix_ao

  • fock_matrix_mo_alpha

  • scf_density_matrix_ao_alpha

  • scf_density_matrix_ao_beta

Called by:

  • print_scf_int()

print_fock_diag:

File : hartree_fock/print_fock_diag.irp.f

subroutine print_fock_diag

Needs:

  • fock_matrix_mo

  • mo_num

print_pseudo_overlap:

File : hartree_fock/print_pseudo_overlap.irp.f

subroutine print_pseudo_overlap

Needs:

  • ao_num

  • ao_overlap

  • list_core

  • mo_coef

  • mo_num

  • n_core_orb

print_scf_int:

File : hartree_fock/print_scf_int.irp.f

subroutine print_scf_int

Calls:

  • main()

run:

File : hartree_fock/scf.irp.f

subroutine run

Run SCF calculation

Needs:

  • json_int_fmt

  • json_unit

  • mo_label

  • scf_energy

Called by:

  • casscf()

  • scf()

Calls:

  • ezfio_set_hartree_fock_energy()

  • json_close()

  • roothaan_hall_scf()

Touches:

  • fock_matrix_ao_alpha

  • fock_matrix_ao_alpha

  • mo_coef

  • level_shift

  • mo_coef