configure_dft Subroutine

private subroutine configure_dft(method, config)

Configure a DFT method instance from config%scf (shared) and config%dft (DFT-specific)

Arguments

Type IntentOptional Attributes Name
class(qc_method_t), intent(inout) :: method
type(method_config_t), intent(in) :: config

Called by

proc~~configure_dft~~CalledByGraph proc~configure_dft configure_dft proc~factory_create method_factory_t%factory_create proc~factory_create->proc~configure_dft proc~create_method create_method proc~create_method->proc~factory_create proc~do_fragment_work do_fragment_work proc~do_fragment_work->proc~create_method proc~hessian_coordinator hessian_coordinator proc~hessian_coordinator->proc~create_method proc~hessian_worker hessian_worker proc~hessian_worker->proc~create_method interface~do_fragment_work do_fragment_work interface~do_fragment_work->proc~do_fragment_work interface~hessian_coordinator hessian_coordinator interface~hessian_coordinator->proc~hessian_coordinator interface~hessian_worker hessian_worker interface~hessian_worker->proc~hessian_worker proc~distributed_unfragmented_hessian distributed_unfragmented_hessian proc~distributed_unfragmented_hessian->interface~hessian_coordinator proc~distributed_unfragmented_hessian->interface~hessian_worker proc~node_worker node_worker proc~node_worker->interface~do_fragment_work proc~serial_fragment_processor serial_fragment_processor proc~serial_fragment_processor->interface~do_fragment_work proc~serial_gmbe_pie_processor serial_gmbe_pie_processor proc~serial_gmbe_pie_processor->interface~do_fragment_work proc~unfragmented_calculation unfragmented_calculation proc~unfragmented_calculation->interface~do_fragment_work

Source Code

   subroutine configure_dft(method, config)
      !! Configure a DFT method instance from config%scf (shared) and config%dft (DFT-specific)
      class(qc_method_t), intent(inout) :: method
      type(method_config_t), intent(in) :: config

      select type (m => method)
      type is (dft_method_t)
         ! Common settings
         m%options%basis_set = config%basis_set
         m%options%spherical = config%use_spherical
         m%options%verbose = config%verbose

         ! SCF settings from shared config%scf
         m%options%max_iter = config%scf%max_iter
         m%options%energy_tol = config%scf%energy_convergence
         m%options%density_tol = config%scf%density_convergence
         m%options%use_diis = config%scf%use_diis
         m%options%diis_size = config%scf%diis_size

         ! DFT-specific from config%dft
         m%options%functional = config%dft%functional
         m%options%grid_type = config%dft%grid_type
         m%options%radial_points = config%dft%radial_points
         m%options%angular_points = config%dft%angular_points

         ! Density fitting
         m%options%use_density_fitting = config%dft%use_density_fitting
         m%options%aux_basis_set = config%dft%aux_basis_set

         ! Dispersion
         m%options%use_dispersion = config%dft%use_dispersion
         m%options%dispersion_type = config%dft%dispersion_type
      end select
   end subroutine configure_dft