apr.py 文件源码

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

项目:APR 作者: GilsonLabUCSD 项目源码 文件源码
def WRelease(self,kr,r0,kt,t0,kb,b0,T):
        """
           Do the analytical "release" of guest to standard concentration
        """
        ### SETUP
        # Example: print WRelease(5.0,24.00,100.0,180.0,100.0,180.0,298.15)
        # kr, r0: distance restraint (r) force constant, target value
        # kt, t0: angle restraint (theta) force constant, target value
        # kb, b0: angle restraint (b) force constant, target value
        # T: Temperature
        R = 1.987204118e-3 # kcal/mol-K, a.k.a. boltzman constant
        beta = 1/(T*R)
        rlb,rub,rst = [0.0,100.0,0.0001]  # r lower bound, upper bound, step size
        tlb,tub,tst = [0.0,np.pi,0.00005] # theta ",       ",            "
        blb,bub,bst = [0.0,np.pi,0.00005] # b     ",       ",            "
        def fr(val):
          return (val**2)*np.exp(-beta*kr*(val-r0)**2)
        def ft(val):
          return np.sin(val)*np.exp(-beta*kt*(val-np.radians(t0))**2)
        def fb(val):
          return np.sin(val)*np.exp(-beta*kb*(val-np.radians(b0))**2)
        ### Integrate
        rint,tint,bint = [0.0,0.0,0.0]
        intrange = np.arange(rlb,rub,rst)
        rint = np.trapz(fr(intrange),intrange)
        intrange = np.arange(tlb,tub,tst)
        tint = np.trapz(ft(intrange),intrange)
        intrange = np.arange(blb,bub,bst)
        bint = np.trapz(fb(intrange),intrange)
        return R*T*np.log(np.pi*(1.0/1660.0)*rint*tint*bint)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号