コード例 #1
0
 def calculate(self, i, j):
     s_ij = 0
     if i == j:
         return 1
     else:
         primitives_i = self.basis_set_array[i].primitive_gaussian_array
         primitives_j = self.basis_set_array[j].primitive_gaussian_array
         for primitive_a, primitive_b in itertools.product(primitives_i, primitives_j):
             c_1 = primitive_a.contraction
             c_2 = primitive_b.contraction
             n_1 = primitive_a.normalisation
             n_2 = primitive_b.normalisation
             s_ij += n_1 * n_2 * c_1 * c_2 * orbital_overlap(primitive_a, primitive_b)
         return s_ij
コード例 #2
0
 def calculate(self, i, j):
     t_ij = 0
     primitives_i = self.basis_set_array[i].primitive_gaussian_array
     primitives_j = self.basis_set_array[j].primitive_gaussian_array
     for primitive_a, primitive_b in itertools.product(primitives_i, primitives_j):
         c_1 = primitive_a.contraction
         c_2 = primitive_b.contraction
         n_1 = primitive_a.normalisation
         n_2 = primitive_b.normalisation
         primitives_k = del_operator(primitive_b)
         s_ij = 0
         for primitive_c in primitives_k:
             c_3 = primitive_c.contraction
             s_ij += n_1 * n_2 * c_1 * c_2 * c_3 * orbital_overlap(primitive_a, primitive_c)
         t_ij += s_ij
     return t_ij