Esempio n. 1
0
 def c_der(self):
     n = self.num_of_inds
     factor = OpSum(i_op * Op(sigma4bar(n + 1, 0, -1)))
     f = Op(
         Tensor(self.c_name, [0] + list(range(-2, -n - 1, -1)),
                is_field=True,
                dimension=1.5,
                statistics=fermion))
     return factor * f.derivative(n + 1)
Esempio n. 2
0
 def quadratic_terms(self):
     n = self.num_of_inds
     f1 = Op(
         Tensor(self.name,
                list(range(n)),
                is_field=True,
                dimension=1,
                statistics=boson))
     f2 = Op(
         Tensor(self.name, [n] + list(range(1, n)),
                is_field=True,
                dimension=1,
                statistics=boson))
     half = OpSum(number_op(Fraction(1, 2)))
     kin1 = -half * f1.derivative(n) * f1.derivative(n)
     kin2 = half * f2.derivative(0) * f1.derivative(n)
     mass_term = half * OpSum(self.mass_sq * f1 * f1)
     return kin1 + kin2 + mass_term
Esempio n. 3
0
 def quadratic_terms(self):
     n = self.num_of_inds
     f1 = Op(
         Tensor(self.name,
                list(range(n)),
                is_field=True,
                dimension=1,
                statistics=boson))
     f1c = Op(
         Tensor(self.c_name,
                list(range(n)),
                is_field=True,
                dimension=1,
                statistics=boson))
     f2c = Op(
         Tensor(self.c_name, [n] + list(range(1, n)),
                is_field=True,
                dimension=1,
                statistics=boson))
     kin1 = -f1c.derivative(n) * f1.derivative(n)
     kin2 = f2c.derivative(0) * f1.derivative(n)
     mass_term = OpSum(self.mass_sq * f1c * f1)
     return kin1 + kin2 + mass_term