Package: vqepy
VqePyInstallationVqePy requires Python 3.9 or newer.To install VqePy on macOS or Linux, open a terminal and run:python3-mpipinstallvqepyOther way to do it, is clone the repository and and call all the functions adding the PATH.Tesis projectThis library was a project to get a degree in computer science in the UTFSM University.The main idea is implement a few variational quantum algorithms to study condensed matter and chemistry models and give a basic template to study complex phenomena. This project didnt want to be another quantum library. This should be see as a high level implementation to study systems with a fixed route to be executed, so, the user only need to give the parameters and just the minimun programming is needed.ParametersHere, all the parameters of each class are listed.HamiltoniansMoleculesThe parameters considered here, come from the definition of the methods defined in pennylaneMolecular. Here we list the ones considered:Mapping (mapping).Charge (charge).Multiplicity (mult).Basis set (basis).Differential method (method).Active electrons (active_electrons).Active orbitals (active_orbitals).We recomended to not let any of this as a None value, to have a correct execution.Fermi-HubbardThe parameters considered here, come from the definition of the hamiltonian indicated hereTenpy Hamiltonian. Here we list the ones considerated:t hopping (hopping).On-site potencial U (U).Potencial V (V).Electric field (E).Number of sites (sites).We recomended to not let any of this as a None value, to have a correct execution.Fermi-HubbardThe parameters considered here, come from the definition of the hamiltonian indicated hereWikipedia Hamiltonian. Here we list the ones considerated:Exchange's vector (J): [Jx, Jy, Jz] .Magnetic field's vector (h): [hx, hy, hz] .Number of spins (sites).The values of the exchange and magnetic field are the same for all the corresponding terms. We recomended to not let any of this as a None value, to have a correct execution.AnsatzHere there are a lot of element of the base library to take into account, i recommended review:BaseInterfaceDifferential methodUCCSD AnsatzThis ansatz should be use with molecules and Fermi-Hubbard hamiltonianNumber of repetitions of the curcuit (repetitions): Here the number should 1Base structure for circuits execution(base)Interface of execution of the circuits (interface)Number of electrons of the system (electrons)Number of qubits of the circuit (qubits).Differential method of the ansatz (diff_method): adjoint and best is recommended.k-UpCCGSD AnsatzThis ansatz should be use with molecules and Fermi-Hubbard hamiltonianNumber of repetitions of the curcuit (repetitions)Base structure for circuits execution(base)Interface of execution of the circuits (interface)Number of electrons of the system (electrons)Number of qubits of the circuit (qubits).Differential method of the ansatz (diff_method): adjoint and best is recommended.Hardware Efficient AnsatzThis ansatz should be use with spin systemNumber of repetitions of the curcuit (repetitions)Base structure for circuits execution(base)Interface of execution of the circuits (interface)Number of electrons of the system (electrons)Number of qubits of the circuit (qubits).Differential method of the ansatz (diff_method): adjoint and best is recommended.Pattern of the non local gates (pattert): chain or ringThere also the begin state of size 2**n that is needed.Custom AnsatzThis ansatz should be use with molecules and Fermi-Hubbard hamiltonianNumber of repetitions of the curcuit (repetitions)Base structure for circuits execution(base)Interface of execution of the circuits (interface)Number of electrons of the system (electrons)Number of qubits of the circuit (qubits).Differential method of the ansatz (diff_method): adjoint and best is recommended.Other elements are the set of singles and doubled given gates obteined from the ADAPT-VQE. There also the begin state of size 2**n.OptimizersPennylane's optimizersNumber of parameters (number).Maximum number of iterations (maxiter).Theta optimizer (theta): list of optimizer (generic, adam or adagrad) and learning rate.X optimizer (x): list of optimizer (generic, adam or adagrad) and learning rate.Tolerance of relative error (tol).Scipy's optimizersNumber of parameters (number).Maximum number of iterations (maxiter).Optimizerscipy method section(type).Tolerance of relative error (tol).Adapt optimizerMaximum number of iterations (maxiter).Optimizer (theta): list of optimizer (generic) and learning rate.Tolerance of relative error (tol).Number of electrons (electrons).Number of qubits (qubits).Sz proyection value (sz) (I recommend keek that value as 0).Jax's optimizersNumber of parameters (number).Maximum number of iterations (maxiter).Theta optimizer (theta): list of optimizer (adam or adagrad) and learning rate.X optimizer (x): list of optimizer (adam or adagrad) and learning rate.Tolerance of relative error (tol).LatticeFor the construction of the lattice, we use the library networkx, for the purpose of the code, the parameters are the following:Bound type (bound): boolean value, open (false) and periodic (close).Lattice type (lattice): chain, triangle, square, hexagon.Size of the lattice (size): tuple of integers (x,y).I recommended reviewing my repositorymy codes, where I have a few workflows using this code to compute VQE in molecules and 1D Fermi-Hubbard. This could be helpful to understand how to use it.