Exemple #1
0
 def _evaluate(J1, J2, J3, K):
     return ensure_real(
         J1 * sum(o.evaluate(context)() for o in self.operators_J1) +
         J2 * sum(o.evaluate(context)() for o in self.operators_J2) +
         J3 * sum(o.evaluate(context)() for o in self.operators_J3) +
         K * sum(o.evaluate(context)() for o in self.operators_K)
     )
Exemple #2
0
 def _evaluate():
     if self.samesite:
         return .75 * (context[operators[0]] + context[operators[1]])  # i.e. .75 * rho, scaled by number of sites if summing
     else:
         return ensure_real(
             -.5 * soft_ensure_hermitian(context[operators[4]] + context[operators[5]]) +
             +.25 * context[operators[0]] +
             +.25 * context[operators[1]] +
             -.25 * context[operators[2]] +
             -.25 * context[operators[3]]
         )
Exemple #3
0
        def _evaluate(J, K, Jperp=None):
            # of course, Jperp only means what you think it does if the legs
            # are long in the x direction

            if Jperp is None:
                Jperp = J

            return ensure_real(
                -J * greenx / divx +
                -Jperp * greeny / divy +
                K * ringexchange / divx / divy
             )
Exemple #4
0
        def _evaluate(t, J, K, tperp=None, Jperp=None):
            # of course, tperp only means what you think it does if the legs
            # are long in the x direction

            if tperp is None:
                tperp = t
            if Jperp is None:
                Jperp = J

            return ensure_real(
                -t * greenx / divx +
                -tperp * greeny / divy +
                J * spinspinx / divx +
                Jperp * spinspiny / divy +
                2 * K * ringexchange / divx / divy
            )