Various improvements have been made in MyQLM-fermion
. This includes new features, as well as many optimizations, bugfixes and
quality of life improvements.
- The module is now called
qat.fermion
(replacesqat.dqs
). - The
qchem
submodule has been renamedchemistry
(qat.fermion.chemistry
). qat.fermion
is fully compatible with PySCF 2.0 version.- The
SpinHamiltonian
andFermionHamiltonian
classes have been rewritten:FermionHamiltonian
now has ato_spin()
method.- Fermionic algebraic operations are now possible between
FermionHamiltonian
and/orElectronicStructureHamiltonian
. - Wick ordering and subsequent simplifications are now automatic for fermionic Hamiltonians.
- It is now possible to cast
FermionHamiltonian
to anElectronicStructureHamiltonian
, using theFermionHamiltonian.to_electronic()
method.
Note : Since the
ElectronicStructureHamiltonian
inherits fromFermionHamiltonian
, any method available forFermionHamiltonian
is available forElectronicStructureHamiltonian
.
- Many improvements have been made to the chemistry module:
- the class
MolecularHamiltonian
has been added. It allows for easier basis changes and active space selection. It is also useful for easier transformation intoElectronicStructureHamiltonian
. - the class
MoleculeInfo
has been added to help with atomic and molecular computations.
- the class
A set of new plugins is now available:
- AdaptVQEPlugin: This plugin implements the ADAPT-VQE algorithm, to efficiently build an ansatz from a pool of operators;
- GradientDescentOptimizer: Allows for natural gradient descent-based optimizations;
- SequentialOptimizer: An implementation of the quantum-classical hybrid sequential minimal optimization method introduced by (Nakanashi et. al.)[https://journals.aps.org/prresearch/abstract/10.1103/PhysRevResearch.2.043158] has been added;
- ZeroNoiseExtrapolator: A plugin helping with multiqubit gate noise mitigation.
qat.dqs.fermionic_util
functions have now been included inqat.fermion.util
.- function
exact_eigen_energies
has been deleted. - function
fermionic_hamiltonian_exponential
has been deleted.
- function
qat.dqs.impurity
models have been relocated inqat.fermion.hamiltonians
.qat.dqs.ansatz_circuits
has been renamedqat.fermion.circuits
.- In
qat.fermion.chemistry.ucc
(previouslyqat.dqs.qchem.ucc
):build_ucc_ansatz
has been deprecated. It has been relocated toqat.fermion.chemistry.ucc_deprecated
, but the methodconstruct_ucc_ansatz
should be used instead. The underlying lower level methods have been clarified and can be used as well.compute_active_space_integrals
has been split into_compute_active_space_constant
andcompute_active_space_integrals
.build_cluster_ops
is now a private method.select_active_orbitals
default threshold values have been updated.init_uccsd
is now a private method, and returns only the trial Mollet-Plesset 2nd order guess initial parameter.- The
get_initial_params_and_cluster_ops
function has been split into 3 separate functions for better clarity:guess_init_params
to get the initial parameter guess computed via 2nd order Mollet-Plesset perturbation theory,get_hf_ket
to get the Hartree-Fock state,get_cluster_ops
to get the cluster operator list.
select_excitation_operators
andget_cluster_ops
have been updated. The deprecated versions are located inqat.fermion.chemistry.ucc_deprecated
.get_active_space_hamiltonian
has been deprecated. It can still be found inqat.fermion.chemistry.ucc_deprecated
.