Documentation for module pao_methods

Methods used by pao_main.F

source: pao_methods.F
Loading...

public Subroutines/Functions:

Calculate the forces contributed by PAO
Creates the matrix_H0 which contains the core hamiltonian
Creates new DBCSR distribution which spreads diagonal blocks evenly across ranks
Creates the matrix_X
Constructs matrix_N and its inverse.
Build rectangular matrix to converert between primary and PAO basis.
Calculate the pao energy
Helper routine, calculates partial derivative dE/dU
Debugging routine for checking the analytic gradient.
Ensure that the number of electrons is correct.
Provide an initial guess for the density matrix
SUBROUTINE
pao_init_kinds (pao, qs_env)
Initialize qs kinds
Prints a one line summary for each atom.
Stores density matrix as initial guess for next SCF optimization.
Test whether the PAO optimization has reached convergence

SUBROUTINEpao_add_forces(qs_env, ls_scf_env)

Calculate the forces contributed by PAO

Arguments:
POINTER
:: qs_env ...
TARGET
:: ls_scf_env ...

SUBROUTINEpao_build_core_hamiltonian(pao, qs_env)

Creates the matrix_H0 which contains the core hamiltonian

Arguments:
POINTER
:: pao ...
POINTER
:: qs_env ...

SUBROUTINEpao_build_diag_distribution(pao, qs_env)

Creates new DBCSR distribution which spreads diagonal blocks evenly across ranks

Arguments:
POINTER
:: pao ...
POINTER
:: qs_env ...

SUBROUTINEpao_build_matrix_x(pao, qs_env)

Creates the matrix_X

Arguments:
POINTER
:: pao ...
POINTER
:: qs_env ...

SUBROUTINEpao_build_orthogonalizer(pao, qs_env)

Constructs matrix_N and its inverse.

Arguments:
POINTER
:: pao ...
POINTER
:: qs_env ...

SUBROUTINEpao_build_selector(pao, qs_env)

Build rectangular matrix to converert between primary and PAO basis.

Arguments:
POINTER
:: pao ...
POINTER
:: qs_env ...

SUBROUTINEpao_calc_energy(pao, qs_env, ls_scf_env, energy)

Calculate the pao energy

Arguments:
POINTER
:: pao ...
POINTER
:: qs_env ...
TARGET
:: ls_scf_env ...
REAL(dp),
INTENT(out)
:: energy ...

SUBROUTINEpao_calc_outer_grad_lnv(qs_env, ls_scf_env, matrix_m_diag)

Helper routine, calculates partial derivative dE/dU

Arguments:
POINTER
:: qs_env ...
TARGET
:: ls_scf_env ...
:: matrix_m_diag the derivate, matrix uses pao%diag_distribution

SUBROUTINEpao_check_grad(pao, qs_env, ls_scf_env)

Debugging routine for checking the analytic gradient.

Arguments:
POINTER
:: pao ...
POINTER
:: qs_env ...
TARGET
:: ls_scf_env ...

SUBROUTINEpao_check_trace_ps(ls_scf_env)

Ensure that the number of electrons is correct.

Arguments:
:: ls_scf_env ...

SUBROUTINEpao_guess_initial_p(pao, qs_env, ls_scf_env)

Provide an initial guess for the density matrix

Arguments:
POINTER
:: pao ...
POINTER
:: qs_env ...
TARGET
:: ls_scf_env ...

SUBROUTINEpao_init_kinds(pao, qs_env)

Initialize qs kinds

Arguments:
POINTER
:: pao ...
POINTER
:: qs_env ...

SUBROUTINEpao_print_atom_info(pao)

Prints a one line summary for each atom.

Arguments:
POINTER
:: pao ...

SUBROUTINEpao_store_p(qs_env, ls_scf_env)

Stores density matrix as initial guess for next SCF optimization.

Arguments:
POINTER
:: qs_env ...
TARGET
:: ls_scf_env ...

SUBROUTINEpao_test_convergence(pao, ls_scf_env, new_energy, is_converged)

Test whether the PAO optimization has reached convergence

Arguments:
POINTER
:: pao ...
:: ls_scf_env ...
REAL(dp),
INTENT(in)
:: new_energy ...
LOGICAL,
INTENT(out)
:: is_converged ...