mqc_method_base Module

Defines the common interface that all quantum chemistry methods must implement, providing a unified API for energy and gradient calculations. Abstract base type for all QC methods


Uses

  • module~~mqc_method_base~~UsesGraph module~mqc_method_base mqc_method_base module~mqc_physical_fragment mqc_physical_fragment module~mqc_method_base->module~mqc_physical_fragment module~mqc_result_types mqc_result_types module~mqc_method_base->module~mqc_result_types pic_types pic_types module~mqc_method_base->pic_types module~mqc_physical_fragment->pic_types module~mqc_cgto mqc_cgto module~mqc_physical_fragment->module~mqc_cgto module~mqc_elements mqc_elements module~mqc_physical_fragment->module~mqc_elements module~mqc_error mqc_error module~mqc_physical_fragment->module~mqc_error module~mqc_geometry mqc_geometry module~mqc_physical_fragment->module~mqc_geometry module~mqc_physical_constants mqc_physical_constants module~mqc_physical_fragment->module~mqc_physical_constants module~mqc_xyz_reader mqc_xyz_reader module~mqc_physical_fragment->module~mqc_xyz_reader module~mqc_result_types->pic_types module~mqc_result_types->module~mqc_error pic_mpi_lib pic_mpi_lib module~mqc_result_types->pic_mpi_lib module~mqc_cgto->pic_types module~mqc_elements->pic_types pic_ascii pic_ascii module~mqc_elements->pic_ascii module~mqc_geometry->pic_types module~mqc_physical_constants->pic_types module~mqc_xyz_reader->pic_types module~mqc_xyz_reader->module~mqc_error module~mqc_xyz_reader->module~mqc_geometry

Used by

  • module~~mqc_method_base~~UsedByGraph module~mqc_method_base mqc_method_base module~mqc_mbe_fragment_distribution_scheme mqc_mbe_fragment_distribution_scheme module~mqc_mbe_fragment_distribution_scheme->module~mqc_method_base module~mqc_method_factory mqc_method_factory module~mqc_mbe_fragment_distribution_scheme->module~mqc_method_factory module~mqc_method_dft mqc_method_dft module~mqc_method_dft->module~mqc_method_base module~mqc_method_factory->module~mqc_method_base module~mqc_method_factory->module~mqc_method_dft module~mqc_method_hf mqc_method_hf module~mqc_method_factory->module~mqc_method_hf module~mqc_method_mcscf mqc_method_mcscf module~mqc_method_factory->module~mqc_method_mcscf module~mqc_method_xtb mqc_method_xtb module~mqc_method_factory->module~mqc_method_xtb module~mqc_method_hf->module~mqc_method_base module~mqc_method_mcscf->module~mqc_method_base module~mqc_method_xtb->module~mqc_method_base proc~hessian_coordinator hessian_coordinator proc~hessian_coordinator->module~mqc_method_base proc~hessian_coordinator->module~mqc_method_factory proc~hessian_worker hessian_worker proc~hessian_worker->module~mqc_method_base proc~hessian_worker->module~mqc_method_factory module~mpi_fragment_work_smod mpi_fragment_work_smod module~mpi_fragment_work_smod->module~mqc_mbe_fragment_distribution_scheme module~mqc_driver mqc_driver module~mqc_driver->module~mqc_mbe_fragment_distribution_scheme module~mqc_gmbe_fragment_distribution_scheme mqc_gmbe_fragment_distribution_scheme module~mqc_gmbe_fragment_distribution_scheme->module~mqc_mbe_fragment_distribution_scheme module~mqc_hessian_distribution_scheme mqc_hessian_distribution_scheme module~mqc_hessian_distribution_scheme->module~mqc_mbe_fragment_distribution_scheme module~mqc_serial_fragment_processor mqc_serial_fragment_processor module~mqc_serial_fragment_processor->module~mqc_mbe_fragment_distribution_scheme module~mqc_unfragmented_workflow mqc_unfragmented_workflow module~mqc_unfragmented_workflow->module~mqc_mbe_fragment_distribution_scheme proc~gmbe_run_distributed gmbe_context_t%gmbe_run_distributed proc~gmbe_run_distributed->module~mqc_mbe_fragment_distribution_scheme proc~gmbe_run_distributed->module~mqc_gmbe_fragment_distribution_scheme proc~mbe_run_distributed mbe_context_t%mbe_run_distributed proc~mbe_run_distributed->module~mqc_mbe_fragment_distribution_scheme proc~mbe_run_serial mbe_context_t%mbe_run_serial proc~mbe_run_serial->module~mqc_mbe_fragment_distribution_scheme proc~compute_energy_and_forces compute_energy_and_forces proc~compute_energy_and_forces->module~mqc_driver proc~gmbe_run_serial gmbe_context_t%gmbe_run_serial proc~gmbe_run_serial->module~mqc_gmbe_fragment_distribution_scheme program~main main program~main->module~mqc_driver

Abstract Interfaces

abstract interface

  • private subroutine calc_energy_interface(this, fragment, result)

    Interface for energy-only calculations

    Computes the electronic energy for a molecular fragment using the specified quantum chemistry method.

    Arguments

    Type IntentOptional Attributes Name
    class(qc_method_t), intent(in) :: this

    Method instance

    type(physical_fragment_t), intent(in) :: fragment

    Molecular fragment

    type(calculation_result_t), intent(out) :: result

    Calculation results

abstract interface

  • private subroutine calc_gradient_interface(this, fragment, result)

    Interface for energy and gradient calculations

    Computes both electronic energy and nuclear gradients for a molecular fragment using the specified quantum chemistry method.

    Arguments

    Type IntentOptional Attributes Name
    class(qc_method_t), intent(in) :: this

    Method instance

    type(physical_fragment_t), intent(in) :: fragment

    Molecular fragment

    type(calculation_result_t), intent(out) :: result

abstract interface

  • private subroutine calc_hessian_interface(this, fragment, result)

    Interface for energy, gradient, and Hessian calculations

    Computes electronic energy, nuclear gradients, and Hessian matrix for a molecular fragment using the specified quantum chemistry method.

    Arguments

    Type IntentOptional Attributes Name
    class(qc_method_t), intent(in) :: this

    Method instance

    type(physical_fragment_t), intent(in) :: fragment

    Molecular fragment

    type(calculation_result_t), intent(out) :: result

Derived Types

type, public, abstract ::  qc_method_t

Abstract base type for all quantum chemistry methods

Read more…

Type-Bound Procedures

procedure(calc_energy_interface), public, deferred :: calc_energy

Energy calculation interface

procedure(calc_gradient_interface), public, deferred :: calc_gradient

Gradient calculation interface

procedure(calc_hessian_interface), public, deferred :: calc_hessian

Hessian calculation interface