Symmetries of Molecular Integrals - Azure Quantum | Microsoft Learn
Fri May 12 2023 20:21:14 GMT+0000 (Coordinated Universal Time)
Saved by
@mybusybeeadmin
// Create a `OrbitalIntegral` instance to store a two-electron molecular
// orbital integral data.
var orbitalIntegral = new OrbitalIntegral(new[] { 0, 1, 2, 3 }, 0.123);
// Create an `OrbitalIntegralHamiltonian` instance to store the orbital integral
// terms.
var orbitalIntegralHamiltonian = new OrbitalIntegralHamiltonian();
orbitalIntegralHamiltonian.Add(orbitalIntegral);
// Convert the orbital integral representation to a fermion
// representation. This also requires choosing a convention for
// mapping spin orbital indices to integer indices.
var fermionHamiltonian = orbitalIntegralHamiltonian.ToFermionHamiltonian(IndexConvention.UpDown);
// Alternatively, one can add orbital integrals directly to a fermion Hamiltonian
// as follows. This automatically enumerates over all symmetries, and then
// orders the `HermitianFermionTerm` instances in canonical order. We will need to
// choose an indexing convention as well.
fermionHamiltonian.AddRange(orbitalIntegral
.ToHermitianFermionTerms(0, IndexConvention.UpDown)
.Select(o => (o.Item1, o.Item2.ToDoubleCoeff())));
content_copyCOPY
https://learn.microsoft.com/en-us/azure/quantum/user-guide/libraries/chemistry/concepts/symmetries-molecular
Comments