Metadata-Version: 2.1
Name: opyrators
Version: 1.0.0
Summary: Manipulate quantum many-body operators
Home-page: https://github.com/everthemore/opyrators
Author: Evert van Nieuwenburg
Author-email: evert.v.nieuwenburg@gmail.com
License: UNKNOWN
Description: # Opyrators
        Opyrators is a lightweight python package that represents many-body fermion- and spin-operators as strings.
        
        For example, the fermionic string "012003" stands for
        a 6-site operator formed by a creation operator on site 2, an annihilation operator on site 3, a density operator on site 6 and identity operators on the rest. [See the encodings below](#encodings).
        
        In this representation, operator manipulations such as addition and multiplication are easily implemented. Super useful if you want to quickly compute commutators (and/or use this for research projects). [See the example below](#example).
        
        ## Installation
        ```python
        pip install opyrators
        ```
        
        ## Example
        Here is a quick example showing some of the basic features of fermionic opyrators.
        
        ```python
        # Import the fermion operators.
        from fermions import operator
        
        # The operator takes a dictionary as input, with its key-value pairs being
        # the operator string and its coefficient.
        A = operator({"112233":1.3})
        B = operator({"221133":0.34})
        C = A * B - B * A
        
        # The output of the print operation shows that this complex
        # operator consists of 6 terms, but is fully diagonal.
        print(C)
        # Term 0: 330033 0.442
        # Term 1: 330333 -0.442
        # Term 2: 333033 -0.442
        # Term 3: 003333 -0.442
        # Term 4: 033333 0.442
        # Term 5: 303333 0.442
        
        # As another example, here is an operator describing the hopping terms on a
        # 3-site periodic lattice.
        J = operator({"120":1, "012":1, "201":1})
        J = J + J.conj()
        ```
        
        ## Encodings
        ### Fermions
        For particles, the encoding works as follows:
        * 0 = Identity operator
        * 1 = Creation operator
        * 2 = Annihilation operator
        * 3 = Density operator
        
        ### Spins
        For spin-1/2 operators, the encoding works as follows:
        * 0 = Identity operator
        * 1 = Pauli-X operator
        * 2 = Pauli-Y operator
        * 3 = Pauli-Z operator
        
        An operator with X on site 2, Y on site 4 and Z on site 5, in a system of 8 sites, hence would be "01023000".
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=2.7
Description-Content-Type: text/markdown
