qrunch.chemistry.calculators.vqe_ground_state_calculator
Classes for calculating the ground state energy of a molecule using a VQE algorithm.
The module contains one class for using a non-adaptive VQE algorithm, BasicVqeGroundStateCalculator, and one class for using an adaptive VQE algorithm, AdaptiveVqeGroundStateCalculator.
The latter algorithm builds the circuit ansatz adaptively, and is thus much more gate efficient. The adaptive version is the recommended option, while the “basic” (non-adaptive) is meant for expert users, who want to build their own ansatz circuit.
Classes
Class for calculating the ground state energy using an adaptive VQE algorithm. |
|
Class for calculating the ground state energy using a non-adaptive VQE algorithm. |
|
Class for calculating the ground state energies of a reaction path. |
|
Class for calculating the ground state energies of a reaction path using a BEAST-VQE algorithm. |
- class AdaptiveVqeGroundStateCalculator
Bases:
objectClass for calculating the ground state energy using an adaptive VQE algorithm.
- __init__(vqe: SecondQuantizationAdaptiveVqeAlgorithm, *, paired_electron_approximation: bool, include_single_excitations: bool = True, include_double_excitations: bool = True) None
Initialize the adaptive VQE ground state energy calculator.
- Parameters:
vqe (SecondQuantizationAdaptiveVqeAlgorithm) – The VQE algorithm to use for the calculation. Must be an adaptive VQE. If a basic VQE is desired, use the
BasicVqeGroundStateCalculatorclass instead.paired_electron_approximation (bool) – Whether to use the paired-electron approximation.
include_single_excitations (bool) – whether to include single-excitation gates in the gate pool.
include_double_excitations (bool) – whether to include double-excitation gates in the gate pool.
- Return type:
None
- calculate(problem: RestrictedGroundStateProblem | UnrestrictedGroundStateProblem, callback: AdaptiveIterationCallback | None = None, vqe_input_result: SecondQuantizationAdaptiveVqeResult | None = None) AdaptiveVqeGroundStateProblemCalculatorResult
- calculate(problem: RestrictedReactionPathProblem | UnrestrictedReactionPathProblem, callback: AdaptiveIterationCallback | None = None, vqe_input_result: SecondQuantizationAdaptiveVqeResult | None = None) AdaptiveVqeReactionPathProblemCalculatorResult
Calculate the ground state energies along the path of the given reaction path problem.
- Parameters:
problem – The problem to calculate ground state energies for.
callback – The callback function used to register intermediate states of the calculation.
vqe_input_result – A prior VQE results that should be refined. Not used for a ReactionPathProblem problem type.
- class BasicVqeGroundStateCalculator
Bases:
objectClass for calculating the ground state energy using a non-adaptive VQE algorithm.
- __init__(vqe: SecondQuantizationVqeAlgorithm) None
Initialize the basic VQE ground state energy calculator.
- Parameters:
vqe (SecondQuantizationVqeAlgorithm) – The VQE algorithm to use for the calculation. Must be a non-adaptive VQE. If an adaptive VQE is desired, use the
AdaptiveVqeGroundStateCalculatorinstead.- Return type:
None
- calculate(problem: RestrictedGroundStateProblem | UnrestrictedGroundStateProblem, ansatz: Circuit, *, paired_electron_approximation: bool) GroundStateProblemCalculatorResult
- calculate(problem: RestrictedReactionPathProblem | UnrestrictedReactionPathProblem, ansatz: Circuit, *, paired_electron_approximation: bool) ReactionPathProblemCalculatorResult
Calculate the expectation value of the ground state energy of the given molecule/reaction.
- Parameters:
problem – Ground state problem or reaction path problem to calculate energy for.
ansatz – The ansatz circuit to use in the VQE.
paired_electron_approximation – Whether to use the paired-electron approximation.
- class BeastAcceleratedAdaptiveVqeGroundStateCalculator
Bases:
objectClass for calculating the ground state energies of a reaction path.
This calculation is using an adaptive algorithm accelerated by a BEAST-VQE algorithm. The BEAST-VQE algorithm is a combination of using the FAST-VQE idea behind adaptively adding gates to a VQE (https://doi.org/10.1103/PhysRevA.108.052422) coupled with the orbital-optimization correction from (https://doi.org/10.1038/s41534-023-00730-8).
The latter is a necessary correction when using the paired-electron approximation thereby the name ‘BEAST’ (Bosonic Encoding Adaptive Sampling Theory).
- __init__(beast_calculator: BeastVqeGroundStateCalculator, adaptive_calculator: AdaptiveVqeGroundStateCalculator) None
Initialize the molecular ground state energy calculator.
- Parameters:
beast_calculator (BeastVqeGroundStateCalculator) – The initial BEAST calculator to use first.
adaptive_calculator (AdaptiveVqeGroundStateCalculator) – The final ground state energy calculator.
- Return type:
None
- calculate(problem: RestrictedGroundStateProblem | UnrestrictedGroundStateProblem, callback: BeastToFastCircuitProtocol | None = None) AdaptiveVqeGroundStateProblemCalculatorResult
- calculate(problem: RestrictedReactionPathProblem | UnrestrictedReactionPathProblem, callback: BeastToFastCircuitProtocol | None = None) AdaptiveVqeReactionPathProblemCalculatorResult
Calculate the ground state energies along the path of the given reaction path problem.
- Parameters:
problem – The problem to calculate ground state energies for.
callback – The callback function used to register intermediate states of the calculation.
- class BeastVqeGroundStateCalculator
Bases:
objectClass for calculating the ground state energies of a reaction path using a BEAST-VQE algorithm.
The BEAST-VQE algorithm is a combination of using the FAST-VQE idea behind adaptively adding gates to a VQE (https://doi.org/10.1103/PhysRevA.108.052422) together with a paired-electron approximation and bosonic encoding, thereby the name ‘BEAST’ (Bosonic Encoding Adaptive Sampling Theory).
This can optionally be coupled with the orbital-optimization correction from (https://doi.org/10.1038/s41534-023-00730-8), and/or a second-order perturbative correction to the energy.
- __init__(vqe: SecondQuantizationAdaptiveVqeAlgorithm, second_order_corrector: BeastSecondOrderPerturbationCorrector | None = None) None
Initialize the molecular ground state energy calculator.
- Parameters:
vqe (SecondQuantizationAdaptiveVqeAlgorithm) – The VQE algorithm to use for the calculation. Must be a an adaptive VQE.
second_order_corrector (BeastSecondOrderPerturbationCorrector | None) – Corrector used to calculate correction to the final energy.
- Return type:
None
- calculate(problem: RestrictedGroundStateProblem | UnrestrictedGroundStateProblem, callback: AdaptiveIterationCallback | None = None) AdaptiveVqeGroundStateProblemCalculatorResult
- calculate(problem: RestrictedReactionPathProblem | UnrestrictedReactionPathProblem, callback: AdaptiveIterationCallback | None = None) AdaptiveVqeReactionPathProblemCalculatorResult
Calculate the ground state energies along the path of the given reaction path problem.
- Parameters:
problem – The problem to calculate ground state energies for.
callback – The callback function used to register intermediate states of the calculation.