mqc_method_factory Module

Provides centralized creation of quantum chemistry method instances. The factory pattern encapsulates method instantiation and configuration, making it easy to add new methods without modifying calling code. Convenience function


Uses

  • module~~mqc_method_factory~~UsesGraph module~mqc_method_factory mqc_method_factory mctc_env mctc_env module~mqc_method_factory->mctc_env module~mqc_method_base mqc_method_base module~mqc_method_factory->module~mqc_method_base module~mqc_method_config mqc_method_config module~mqc_method_factory->module~mqc_method_config module~mqc_method_dft mqc_method_dft 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_types mqc_method_types module~mqc_method_factory->module~mqc_method_types module~mqc_method_xtb mqc_method_xtb module~mqc_method_factory->module~mqc_method_xtb pic_types pic_types module~mqc_method_factory->pic_types module~mqc_method_base->pic_types 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 module~mqc_method_config->module~mqc_method_types module~mqc_method_config->pic_types module~mqc_method_dft->module~mqc_method_base module~mqc_method_dft->pic_types module~mqc_method_dft->module~mqc_physical_fragment module~mqc_method_dft->module~mqc_result_types module~mqc_method_hf->module~mqc_method_base module~mqc_method_hf->pic_types module~mqc_method_hf->module~mqc_physical_fragment module~mqc_method_hf->module~mqc_result_types module~mqc_method_mcscf->module~mqc_method_base module~mqc_method_mcscf->pic_types module~mqc_method_mcscf->module~mqc_physical_fragment module~mqc_method_mcscf->module~mqc_result_types module~mqc_method_types->pic_types module~mqc_method_xtb->mctc_env module~mqc_method_xtb->module~mqc_method_base module~mqc_method_xtb->pic_types mctc_io mctc_io module~mqc_method_xtb->mctc_io module~mqc_error mqc_error module~mqc_method_xtb->module~mqc_error module~mqc_method_xtb->module~mqc_physical_fragment module~mqc_method_xtb->module~mqc_result_types pic_logger pic_logger module~mqc_method_xtb->pic_logger pic_timer pic_timer module~mqc_method_xtb->pic_timer tblite_container tblite_container module~mqc_method_xtb->tblite_container tblite_context_type tblite_context_type module~mqc_method_xtb->tblite_context_type tblite_solvation tblite_solvation module~mqc_method_xtb->tblite_solvation tblite_wavefunction tblite_wavefunction module~mqc_method_xtb->tblite_wavefunction tblite_xtb_calculator tblite_xtb_calculator module~mqc_method_xtb->tblite_xtb_calculator tblite_xtb_gfn1 tblite_xtb_gfn1 module~mqc_method_xtb->tblite_xtb_gfn1 tblite_xtb_gfn2 tblite_xtb_gfn2 module~mqc_method_xtb->tblite_xtb_gfn2 tblite_xtb_singlepoint tblite_xtb_singlepoint module~mqc_method_xtb->tblite_xtb_singlepoint module~mqc_physical_fragment->pic_types module~mqc_physical_fragment->module~mqc_error 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_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_factory~~UsedByGraph module~mqc_method_factory mqc_method_factory module~mqc_mbe_fragment_distribution_scheme mqc_mbe_fragment_distribution_scheme module~mqc_mbe_fragment_distribution_scheme->module~mqc_method_factory proc~hessian_coordinator hessian_coordinator proc~hessian_coordinator->module~mqc_method_factory proc~hessian_worker hessian_worker 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

Derived Types

type, public ::  method_factory_t

Factory for creating quantum chemistry method instances

Read more…

Type-Bound Procedures

procedure, public :: create => factory_create

Functions

public function create_method(config) result(method)

Convenience function to create a method without instantiating factory

Read more…

Arguments

Type IntentOptional Attributes Name
type(method_config_t), intent(in) :: config

Return Value class(qc_method_t), allocatable

private function factory_create(this, config) result(method)

Create a quantum chemistry method instance from configuration

Read more…

Arguments

Type IntentOptional Attributes Name
class(method_factory_t), intent(in) :: this
type(method_config_t), intent(in) :: config

Return Value class(qc_method_t), allocatable


Subroutines

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

private subroutine configure_hf(method, config)

Configure a Hartree-Fock method instance from config%scf (shared SCF settings)

Arguments

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

private subroutine configure_mcscf(method, config)

Configure a MCSCF method instance from config%mcscf

Arguments

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

private subroutine configure_xtb(method, config)

Configure an XTB method instance from config%xtb

Arguments

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