Skip to content
Permalink
Branch: master
Commits on Feb 20, 2019
  1. Wedge product code between two tensors (#506)

    ncrubin authored and jarrodmcc committed Feb 20, 2019
    * Wedge product code between two tensors
    
    The two tensors are the moments for a particular sequence of
    fermionic ladder operators.
    
    Symmetric vs anitysmmetric could be an easy extension to this code.
    
    * Remove type annotations to avoid py27 problem.
    
    OpenFermion does not use 3to2 conversion so types are taken
    as literal arguments in the python2.7 interpreter.
    
    * Fix minor typo in test description
Commits on Apr 20, 2018
  1. Marginal maps (#310)

    ncrubin authored and babbush committed Apr 20, 2018
    * RDM mapping functions with extensive testing
    
    This PR provides functionality to convert marginals in various forms to
    one another.  All inputs attempt to obey the tensor ordering convention
    used throughout openfermion.
    
    In order to have quality tests we've also added 2-hole-marginals,
    particle-hole-marginals, and the code that generated them.
    
    I am completely open to moving the functions somewhere else in the
    package if everyone thinks the `measurements` submodule is an
    inappropriate place for the methods.
    
    * PR code updates
    
    1. Changed method names to verbose versions
    2. Split up tests
    3. Used python3 division
    4. Changed krond to kronecker_delta
    
    * Moved files to utils module
    
    * Removed rdm generation example
Commits on Jan 24, 2018
  1. Minor string adjustment to docs in spin-gens (#189)

    ncrubin authored and babbush committed Jan 24, 2018
    * Minor string adjustment to docs in spin-gens
    
    tabs didn't align
    
    * Clean up docs and check clean compile
    
    attempt at fixing failed doc build
Commits on Jan 23, 2018
  1. Implementation of Sz, S-, S+, S^{2} fermion ops (#179)

    ncrubin authored and babbush committed Jan 23, 2018
    * Implementation of Sz, S-, S+, S^{2} fermion ops
    
    Implented these useful observables at the level of fermion operators.
    That way they can be transformed into the qubit representation by an
    arbitrary fermion-to-qubit transform.
    
    Unlike the previously implemented number operator these spin operators
    require knowledge of the fermionic modes corresponding to spin-up or
    spin-down.  As a first pass I have assumed a number occupation vector
    corresponding to spin-less fermions where the even-odd pairs correspond
    to a single spatial orbital (or site). This assumption is listed in the
    warning of the docstring.  Generalizing to arbitrarying ordering of
    alpha, beta spin-orbital sets would require the user to input these sets
    when calling these functions.
    
    Test implementations:
    
    Implemented according to the style of the other tests.  But, further
    accuracy tests can be included by first performing JW transform,
    tensoring up, and then looking at the diagonal elements.  These elements
    will correspond to the expected value of the operator for the bitstring.
    For example, sz op diagonal elements should give [0, 0.5, -0.5, 0] with
    the given orbital order convention.
    
    * improved fermionic spin-operators
    
    Allows for different spin-up/down maps.  Default is canonical order of
    even sites in the occupation number vector being alpha spins and odd
    sites being beta spins.
    
    Also moved the `up_index` and `down_index` into `_fermion_ops.py`
    
    * moved fermion spin generators under hamiltonians
    
    The only place to move the spin-generators is under the hamiltonians
    package.  If moved to utils there is a cyclic import because `up_index`
    and `down_index` will be used by `hamiltonians._hubabrd.py` and
    `hamiltonians._mean_field_dwave.py`.
    
    Maybe the `hamiltonians` package is a batter place for it since these
    spin operators are technically fermionic Hamiltonians correspond to an
    observable one likely wants to measure.
    
    * renamed module to `_spin_operators.py`
    
    reducing verbosity
    
    * such a rename
    
    Is this name better than `_angular_momentum_generators`?
You can’t perform that action at this time.