Calculate energy Hessian using CASSCF
TODO: Analytical CASSCF Hessian is very complex: - Requires second derivatives of integrals - Coupled-perturbed MCSCF equations - CI second derivatives Typically done via finite difference of gradients
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(mcscf_method_t), | intent(in) | :: | this | |||
| type(physical_fragment_t), | intent(in) | :: | fragment | |||
| type(calculation_result_t), | intent(out) | :: | result |
subroutine mcscf_calc_hessian(this, fragment, result) !! Calculate energy Hessian using CASSCF !! !! TODO: Analytical CASSCF Hessian is very complex: !! - Requires second derivatives of integrals !! - Coupled-perturbed MCSCF equations !! - CI second derivatives !! Typically done via finite difference of gradients class(mcscf_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 *, "MCSCF: Analytical Hessian not implemented" print *, "MCSCF: 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 mcscf_calc_hessian