mqc_calculation_keywords.f90 Source File

Calculation keyword types for structured configuration


This file depends on

sourcefile~~mqc_calculation_keywords.f90~~EfferentGraph sourcefile~mqc_calculation_keywords.f90 mqc_calculation_keywords.f90 sourcefile~mqc_calculation_defaults.f90 mqc_calculation_defaults.f90 sourcefile~mqc_calculation_keywords.f90->sourcefile~mqc_calculation_defaults.f90

Files dependent on this one

sourcefile~~mqc_calculation_keywords.f90~~AfferentGraph sourcefile~mqc_calculation_keywords.f90 mqc_calculation_keywords.f90 sourcefile~mqc_config_adapter.f90 mqc_config_adapter.f90 sourcefile~mqc_config_adapter.f90->sourcefile~mqc_calculation_keywords.f90 sourcefile~main.f90 main.f90 sourcefile~main.f90->sourcefile~mqc_config_adapter.f90 sourcefile~mqc_driver.f90 mqc_driver.f90 sourcefile~main.f90->sourcefile~mqc_driver.f90 sourcefile~mqc_calculation_interface.f90 mqc_calculation_interface.f90 sourcefile~mqc_calculation_interface.f90->sourcefile~mqc_config_adapter.f90 sourcefile~mqc_calculation_interface.f90->sourcefile~mqc_driver.f90 sourcefile~mqc_driver.f90->sourcefile~mqc_config_adapter.f90 sourcefile~mqc_frag_utils.f90 mqc_frag_utils.f90 sourcefile~mqc_driver.f90->sourcefile~mqc_frag_utils.f90 sourcefile~mqc_many_body_expansion.f90 mqc_many_body_expansion.f90 sourcefile~mqc_driver.f90->sourcefile~mqc_many_body_expansion.f90 sourcefile~mqc_mbe_fragment_distribution_scheme.f90 mqc_mbe_fragment_distribution_scheme.F90 sourcefile~mqc_driver.f90->sourcefile~mqc_mbe_fragment_distribution_scheme.f90 sourcefile~mqc_mbe.f90 mqc_mbe.f90 sourcefile~mqc_driver.f90->sourcefile~mqc_mbe.f90 sourcefile~mqc_frag_utils.f90->sourcefile~mqc_config_adapter.f90 sourcefile~mqc_many_body_expansion.f90->sourcefile~mqc_config_adapter.f90 sourcefile~mqc_many_body_expansion.f90->sourcefile~mqc_mbe_fragment_distribution_scheme.f90 sourcefile~mqc_gmbe_fragment_distribution_scheme.f90 mqc_gmbe_fragment_distribution_scheme.f90 sourcefile~mqc_many_body_expansion.f90->sourcefile~mqc_gmbe_fragment_distribution_scheme.f90 sourcefile~mqc_mbe_fragment_distribution_scheme.f90->sourcefile~mqc_config_adapter.f90 sourcefile~mqc_mbe_fragment_distribution_scheme.f90->sourcefile~mqc_mbe.f90 sourcefile~mqc_gmbe_fragment_distribution_scheme.f90->sourcefile~mqc_mbe_fragment_distribution_scheme.f90 sourcefile~mqc_mbe.f90->sourcefile~mqc_frag_utils.f90 sourcefile~mqc_mbe_fragment_distribution_scheme_hessian.f90 mqc_mbe_fragment_distribution_scheme_hessian.F90 sourcefile~mqc_mbe_fragment_distribution_scheme_hessian.f90->sourcefile~mqc_mbe_fragment_distribution_scheme.f90 sourcefile~mqc_mbe_mpi_fragment_distribution_scheme.f90 mqc_mbe_mpi_fragment_distribution_scheme.F90 sourcefile~mqc_mbe_mpi_fragment_distribution_scheme.f90->sourcefile~mqc_mbe_fragment_distribution_scheme.f90 sourcefile~mqc_serial_fragment_processor.f90 mqc_serial_fragment_processor.f90 sourcefile~mqc_serial_fragment_processor.f90->sourcefile~mqc_mbe_fragment_distribution_scheme.f90 sourcefile~mqc_unfragmented_workflow.f90 mqc_unfragmented_workflow.f90 sourcefile~mqc_unfragmented_workflow.f90->sourcefile~mqc_mbe_fragment_distribution_scheme.f90

Source Code

!! Calculation keyword types for structured configuration
module mqc_calculation_keywords
   !! Provides structured keyword types for calculation-specific settings
   !! These types are embedded in driver_config_t to organize keywords by category
   use pic_types, only: dp
   use mqc_calculation_defaults, only: DEFAULT_DISPLACEMENT, DEFAULT_TEMPERATURE, &
                                       DEFAULT_PRESSURE, DEFAULT_SCF_MAXITER, &
                                       DEFAULT_SCF_CONV, DEFAULT_USE_DIIS, &
                                       DEFAULT_AIMD_DT, DEFAULT_AIMD_NSTEPS, &
                                       DEFAULT_AIMD_TEMPERATURE, DEFAULT_AIMD_OUTPUT_FREQ
   implicit none
   private

   public :: hessian_keywords_t, aimd_keywords_t, scf_keywords_t

   type :: hessian_keywords_t
      !! Hessian calculation keywords
      real(dp) :: displacement = DEFAULT_DISPLACEMENT  !! Finite difference displacement (Bohr)
      real(dp) :: temperature = DEFAULT_TEMPERATURE    !! Temperature for thermochemistry (K)
      real(dp) :: pressure = DEFAULT_PRESSURE          !! Pressure for thermochemistry (atm)
   end type hessian_keywords_t

   type :: aimd_keywords_t
      !! Ab initio molecular dynamics keywords
      real(dp) :: dt = DEFAULT_AIMD_DT                       !! Timestep (femtoseconds)
      integer :: nsteps = DEFAULT_AIMD_NSTEPS                !! Number of MD steps (0 = no AIMD)
      real(dp) :: initial_temperature = DEFAULT_AIMD_TEMPERATURE  !! Initial temperature for velocity init (K)
      integer :: output_frequency = DEFAULT_AIMD_OUTPUT_FREQ  !! Write output every N steps
   end type aimd_keywords_t

   type :: scf_keywords_t
      !! SCF calculation keywords (placeholder for future use)
      logical :: use_diis = DEFAULT_USE_DIIS                   !! Use DIIS acceleration
      integer :: max_iterations = DEFAULT_SCF_MAXITER          !! Maximum SCF iterations
      real(dp) :: convergence_threshold = DEFAULT_SCF_CONV     !! Convergence threshold for SCF
   end type scf_keywords_t

end module mqc_calculation_keywords