NuclearOperator.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:spectroscopy 作者: jgoodknight 项目源码 文件源码
def __init__(self, space, nuclearHamiltonian, overRideDT=None):
        #raise Exception("DO NOT USE HIGH-ACCURACY PROPAGATOR; FUNCTIONALITY NOT CODED YET")
        self.myHamiltonian = nuclearHamiltonian
        self.mySpace = space
        if overRideDT is None:
            self.dt = self.mySpace.dt
        else:
            self.dt = overRideDT

        gamma = 1.0 / (2.0 - 2.0**(1.0/3.0))
        lam = -1.0j * self.dt / self.mySpace.hbar
        #set up the kinetic propagator,
        kineticSurfaceLambda = self.myHamiltonian.myKineticOperator.surface * lam * .5
        kineticSurface1 = np.exp( gamma * kineticSurfaceLambda )
        kineticSurface2 = np.exp( (1.0 - gamma) * kineticSurfaceLambda )
        self.myKineticOperator1 = momentumOperator(self.mySpace, kineticSurface1)
        self.myKineticOperator2 = momentumOperator(self.mySpace, kineticSurface2)

        #set up the potential propagator
        potentialSurfaceLambda = self.myHamiltonian.myPotentialOperator.surface * lam
        potentialSurface1 = np.exp( gamma * potentialSurfaceLambda )
        potentialSurface2 = np.exp( (1.0 - 2.0 *gamma) * potentialSurfaceLambda )
        self.myPotentialOperator1 = positionOperator(self.mySpace, potentialSurface1)
        self.myPotentialOperator2 = positionOperator(self.mySpace, potentialSurface2)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号