Configure a MCSCF method instance from config%mcscf
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(qc_method_t), | intent(inout) | :: | method | |||
| type(method_config_t), | intent(in) | :: | config |
subroutine configure_mcscf(method, config) !! Configure a MCSCF method instance from config%mcscf class(qc_method_t), intent(inout) :: method type(method_config_t), intent(in) :: config select type (m => method) type is (mcscf_method_t) ! Common settings m%options%basis_set = config%basis_set m%options%spherical = config%use_spherical m%options%verbose = config%verbose ! Active space from config%mcscf m%options%n_active_electrons = config%mcscf%n_active_electrons m%options%n_active_orbitals = config%mcscf%n_active_orbitals m%options%n_inactive_orbitals = config%mcscf%n_inactive_orbitals ! State averaging m%options%n_states = config%mcscf%n_states if (allocated(config%mcscf%state_weights)) then if (allocated(m%options%state_weights)) deallocate (m%options%state_weights) allocate (m%options%state_weights(size(config%mcscf%state_weights))) m%options%state_weights = config%mcscf%state_weights end if ! Convergence m%options%max_macro_iter = config%mcscf%max_macro_iter m%options%max_micro_iter = config%mcscf%max_micro_iter m%options%orbital_tol = config%mcscf%orbital_convergence m%options%ci_tol = config%mcscf%ci_convergence ! PT2 corrections m%options%use_pt2 = config%mcscf%use_pt2 m%options%pt2_type = config%mcscf%pt2_type m%options%ipea_shift = config%mcscf%ipea_shift m%options%imaginary_shift = config%mcscf%imaginary_shift end select end subroutine configure_mcscf