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)
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
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