qdk_chemistry.algorithms.hamiltonian_constructor module
Public entry point for the Hamiltonian constructor algorithms.
This module re-exports the core HamiltonianConstructor and concrete
implementations so that consumers can import them directly from
qdk_chemistry.algorithms without depending on internal package paths.
- class qdk_chemistry.algorithms.hamiltonian_constructor.HamiltonianConstructor
Bases:
pybind11_objectAbstract base class for Hamiltonian constructors.
This class defines the interface for constructing Hamiltonian matrices from orbital data. Concrete implementations should inherit from this class and implement the construct method.
Examples
To create a custom Hamiltonian constructor, inherit from this class:
>>> import qdk_chemistry.algorithms as alg >>> import qdk_chemistry.data as data >>> class MyHamiltonianConstructor(alg.HamiltonianConstructor): ... def __init__(self): ... super().__init__() # Call the base class constructor ... # Implement the _run_impl method ... def _run_impl(self, orbitals: data.Orbitals) -> data.Hamiltonian: ... # Custom Hamiltonian construction implementation ... return hamiltonian
- __init__(self: qdk_chemistry.algorithms.HamiltonianConstructor) None
Create a
HamiltonianConstructorinstance.Default constructor for the abstract base class. This should typically be called from derived class constructors.
Examples
>>> # In a derived class: >>> class MyConstructor(alg.HamiltonianConstructor): ... def __init__(self): ... super().__init__() # Calls this constructor
- name(self: qdk_chemistry.algorithms.HamiltonianConstructor) str
The algorithm’s name.
- Returns:
The name of the algorithm
- Return type:
- run(self: qdk_chemistry.algorithms.HamiltonianConstructor, orbitals: qdk_chemistry.data.Orbitals) qdk_chemistry.data.Hamiltonian
Construct a Hamiltonian from the given orbitals.
This method automatically locks settings before execution to prevent modifications during construction.
- Parameters:
orbitals (qdk_chemistry.data.Orbitals) – The orbital data to construct the Hamiltonian from
- Returns:
The constructed Hamiltonian matrix
- Return type:
- Raises:
SettingsAreLocked – If attempting to modify settings after run() is called
- settings(self: qdk_chemistry.algorithms.HamiltonianConstructor) qdk_chemistry.data.Settings
Access the constructor’s configuration settings.
- Returns:
Reference to the settings object for configuring the constructor
- Return type:
- type_name(self: qdk_chemistry.algorithms.HamiltonianConstructor) str
The algorithm’s type name.
- Returns:
The type name of the algorithm
- Return type:
- class qdk_chemistry.algorithms.hamiltonian_constructor.QdkHamiltonianConstructor
Bases:
HamiltonianConstructorQDK implementation of the Hamiltonian constructor.
This class provides a concrete implementation of the Hamiltonian constructor using the internal backend. It constructs molecular Hamiltonian matrices from orbital data, computing the necessary one- and two-electron integrals.
Typical usage:
import qdk_chemistry.algorithms as alg import qdk_chemistry.data as data # Assuming you have orbitals from an SCF calculation constructor = alg.QdkHamiltonianConstructor() # Configure settings if needed constructor.settings().set("eri_method", "direct") # Construct Hamiltonian hamiltonian = constructor.run(orbitals)
- __init__(self: qdk_chemistry.algorithms.QdkHamiltonianConstructor) None
Default constructor.
Initializes a Hamiltonian constructor with default settings.