def project(coarse, fine, basis): cot = coarse.otype fot = fine.otype tmp = gpt.lattice(coarse) coarse[:] = 0 for j in fot.v_idx: for i in cot.v_idx: cgpt.block_project(tmp.v_obj[i], fine.v_obj[j], basis[cot.v_n0[i]:cot.v_n1[i]], j) coarse += tmp
def project(coarse, fine, basis): assert fine.checkerboard().__name__ == basis[0].checkerboard().__name__ cot = coarse.otype fot = fine.otype tmp = gpt.lattice(coarse) coarse[:] = 0 for j in fot.v_idx: for i in cot.v_idx: cgpt.block_project(tmp.v_obj[i], fine.v_obj[j], basis[cot.v_n0[i]:cot.v_n1[i]], j) coarse += tmp return coarse
def _project(coarse, fine): assert fine[0].checkerboard().__name__ == basis[0].checkerboard().__name__ cgpt.block_project(self.obj, coarse, fine)