Skip to content

API Reference - VQE

Detailed API reference for Variational Quantum Eigensolver.

quantumpytho.modules.vqe_h2_cli

Functions

run_vqe_h2_cli

from quantumpytho.modules.vqe_h2_cli import run_vqe_h2_cli

run_vqe_h2_cli(
    config: QuantumConfig | None = None,
    max_iters: int = 50
) -> None

Runs VQE simulation for H2 molecule.

Parameters:

  • config (QuantumConfig, optional) - Configuration object. Default: None
  • max_iters (int, optional) - Maximum optimization iterations. Default: 50

Returns:

None (prints to stdout)

Example:

from quantumpytho.modules.vqe_h2_cli import run_vqe_h2_cli
from quantumpytho.config import QuantumConfig, ExecutionMode

# Run with noisy simulation
config = QuantumConfig(
    mode=ExecutionMode.NOISY_SIMULATOR,
    noise_profile="ibm_brisbane"
)

run_vqe_h2_cli(config=config, max_iters=50)

quantumpytho.modules.vqe_molecules

Classes

MoleculeConfig

from quantumpytho.modules.vqe_molecules import MoleculeConfig

config = MoleculeConfig(
    name: str,
    formula: str,
    geometry: list[tuple[float, float, float]],
    charge: int,
    multiplicity: int,
    basis: str
)

Configuration for a molecule.

Parameters:

  • name (str) - Molecule name
  • formula (str) - Chemical formula
  • geometry (list) - Atomic coordinates [(x, y, z), ...]
  • charge (int) - Total charge
  • multiplicity (int) - Spin multiplicity
  • basis (str) - Basis set (e.g., "sto3g")

Functions

get_molecule

from quantumpytho.modules.vqe_molecules import get_molecule

config = get_molecule(name: str) -> MoleculeConfig

Get configuration for a predefined molecule.

Parameters:

  • name (str) - Molecule name (H2, LiH, HeH+, BeH2, H2O)

Returns:

MoleculeConfig object

Example:

from quantumpytho.modules.vqe_molecules import get_molecule

# Get H2 configuration
h2_config = get_molecule("H2")
print(f"Formula: {h2_config.formula}")
print(f"Geometry: {h2_config.geometry}")

list_molecules

from quantumpytho.modules.vqe_molecules import list_molecules

molecules = list_molecules() -> list[str]

List all available predefined molecules.

Returns:

List of molecule names

Example:

from quantumpytho.modules.vqe_molecules import list_molecules

molecules = list_molecules()
for mol in molecules:
    print(mol)

get_reference_energy

from quantumpytho.modules.vqe_molecules import get_reference_energy

energy = get_reference_energy(name: str) -> float

Get reference energy for a molecule.

Parameters:

  • name (str) - Molecule name

Returns:

Reference energy in Hartree

Example:

from quantumpytho.modules.vqe_molecules import get_reference_energy

# Get H2 reference energy
ref_energy = get_reference_energy("H2")
print(f"Reference energy: {ref_energy} Hartree")

scan_bond_distance

from quantumpytho.modules.vqe_molecules import scan_bond_distance

result = scan_bond_distance(
    name: str,
    distances: list[float],
    max_iters: int = 50
) -> dict

Scan bond distances to find equilibrium geometry.

Parameters:

  • name (str) - Molecule name
  • distances (list) - Bond distances to scan (in Å)
  • max_iters (int, optional) - Maximum iterations per point. Default: 50

Returns:

Dictionary containing: - energies (list) - Energies at each distance - distances (list) - Bond distances - equilibrium_distance (float) - Equilibrium bond distance - min_energy (float) - Minimum energy

Example:

from quantumpytho.modules.vqe_molecules import scan_bond_distance

# Scan H2 bond distances
result = scan_bond_distance(
    name="H2",
    distances=[0.5, 0.6, 0.735, 0.8, 0.9, 1.0],
    max_iters=50
)

print(f"Equilibrium distance: {result['equilibrium_distance']} Å")
print(f"Minimum energy: {result['min_energy']} Hartree")

quantumpytho.modules.vqe_utils

Functions

scan_h2_bond_distances

from quantumpytho.modules.vqe_utils import scan_h2_bond_distances

result = scan_h2_bond_distances(
    distances: list[float] | None = None,
    max_iters: int = 50
) -> dict

Scan H2 bond distances (convenience function).

Parameters:

  • distances (list, optional) - Bond distances. Default: [0.5, 0.6, 0.735, 0.8, 0.9, 1.0]
  • max_iters (int, optional) - Maximum iterations. Default: 50

Returns:

Dictionary with scan results

compare_optimizers

from quantumpytho.modules.vqe_utils import compare_optimizers

result = compare_optimizers(
    optimizers: list[str] | None = None,
    max_iters: int = 50
) -> dict

Compare different classical optimizers for VQE.

Parameters:

  • optimizers (list, optional) - Optimizer names. Default: ["SPSA", "COBYLA", "SLSQP"]
  • max_iters (int, optional) - Maximum iterations. Default: 50

Returns:

Dictionary comparing optimizer performance

quantumpytho.modules.vqe_core

Functions

run_vqe_h2

from quantumpytho.modules.vqe_core import run_vqe_h2

result = run_vqe_h2(
    config: QuantumConfig | None = None,
    max_iters: int = 50,
    use_physical: bool = False
) -> dict

Run VQE for H2 molecule (core function).

Parameters:

  • config (QuantumConfig, optional) - Configuration object
  • max_iters (int, optional) - Maximum iterations. Default: 50
  • use_physical (bool, optional) - Use physical energies. Default: False

Returns:

Dictionary containing: - energies (list) - Energy convergence history - final_energy (float) - Final energy - iterations (int) - Number of iterations - converged (bool) - Whether converged - molecule (str) - Molecule name - basis (str) - Basis set

run_vqe_molecule

from quantumpytho.modules.vqe_core import run_vqe_molecule

result = run_vqe_molecule(
    molecule: str,
    config: QuantumConfig | None = None,
    max_iters: int = 50
) -> dict

Run VQE for any supported molecule.

Parameters:

  • molecule (str) - Molecule name
  • config (QuantumConfig, optional) - Configuration object
  • max_iters (int, optional) - Maximum iterations. Default: 50

Returns:

Dictionary with VQE results

See Also