Calculate energy Hessian using Kohn-Sham DFT
TODO: Analytical Hessian requires: 1. Converged SCF and gradient 2. Coupled-perturbed Kohn-Sham (CPKS) equations 3. Second derivatives of integrals 4. XC kernel contributions Alternative: Use finite difference of gradients (via driver)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(dft_method_t), | intent(in) | :: | this | |||
| type(physical_fragment_t), | intent(in) | :: | fragment | |||
| type(calculation_result_t), | intent(out) | :: | result |
subroutine dft_calc_hessian(this, fragment, result) !! Calculate energy Hessian using Kohn-Sham DFT !! !! TODO: Analytical Hessian requires: !! 1. Converged SCF and gradient !! 2. Coupled-perturbed Kohn-Sham (CPKS) equations !! 3. Second derivatives of integrals !! 4. XC kernel contributions !! Alternative: Use finite difference of gradients (via driver) class(dft_method_t), intent(in) :: this type(physical_fragment_t), intent(in) :: fragment type(calculation_result_t), intent(out) :: result if (this%options%verbose) then print *, "DFT: Analytical Hessian not yet implemented" print *, "DFT: Use finite difference of gradients instead" end if ! For now, just compute energy call this%calc_energy(fragment, result) result%has_hessian = .false. end subroutine dft_calc_hessian