Exemplo n.º 1
0
Arquivo: ebond.py Projeto: madlee/kuai
    def __init__(self):
        x1, y1, z1, x2, y2, z2 = symbols('x1 y1 z1 x2 y2 z2')
        e0, r0 = symbols('e0 r0')
        self.x = x1, y1, z1, x2, y2, z2 
        self.k = r0, e0

        dx = x1-x2
        dy = y1-y2
        dz = z1-z2
        r = sqrt(dx*dx+dy*dy+dz*dz)
        e = e0*(r-r0)*(r-r0)
        self.e = e

        EnergyFunction.__init__(self)
Exemplo n.º 2
0
Arquivo: ebond.py Projeto: madlee/kuai
    def __init__(self):
        x1, y1, z1, x2, y2, z2 = symbols('x1 y1 z1 x2 y2 z2')
        r0, k2, k3, k4 = symbols('r0, k2, k3, k4')
        self.x = x1, y1, z1, x2, y2, z2 
        self.k = r0, k2, k3, k4

        dx = x1-x2
        dy = y1-y2
        dz = z1-z2
        r = sqrt(dx*dx+dy*dy+dz*dz)
        dr = r - r0
        e = dr * dr *(k2 + dr*(k3 + k4*dr))
        self.e = e

        EnergyFunction.__init__(self)
Exemplo n.º 3
0
    def __init__(self):
        x1, y1, z1, x2, y2, z2 = symbols('x1 y1 z1 x2 y2 z2')
        r0, e0 = symbols('r0 e0')
        self.x = x1, y1, z1, x2, y2, z2 
        self.k = r0, e0

        dx = x1-x2
        dy = y1-y2
        dz = z1-z2
        r2 = (r0*r0)/(dx*dx+dy*dy+dz*dz)
        r6 = r2 * r2 * r2
        e = e0 * r6 * (r6 - 2)
        self.e = e

        EnergyFunction.__init__(self)
Exemplo n.º 4
0
    def __init__(self):
        x1, y1, z1, x2, y2, z2, x3, y3, z3 = symbols("x1 y1 z1 x2 y2 z2 x3 y3 z3")
        e0, cos0 = symbols("e0 cos0")
        self.x = x1, y1, z1, x2, y2, z2, x3, y3, z3
        self.k = cos0, e0

        dx1, dy1, dz1 = x1 - x2, y1 - y2, z1 - z2
        dx2, dy2, dz2 = x3 - x2, y3 - y2, z3 - z2

        r12 = sqrt((dx1 * dx1 + dy1 * dy1 + dz1 * dz1) * (dx2 * dx2 + dy2 * dy2 + dz2 * dz2))
        cost = (dx1 * dx2 + dy1 * dy2 + dz1 * dz2) / r12
        e = e0 * (cost - cos0) * (cost - cos0)
        self.e = e

        EnergyFunction.__init__(self)
Exemplo n.º 5
0
    def __init__(self):
        x1, y1, z1, x2, y2, z2 = symbols('x1 y1 z1 x2 y2 z2')
        r0, e0 = symbols('r0 e0')
        self.x = x1, y1, z1, x2, y2, z2 
        self.k = r0, e0

        dx = x1-x2
        dy = y1-y2
        dz = z1-z2
        r = sqrt(dx*dx+dy*dy+dz*dz)
        r = r0/r
        r3 = r * r * r
        e = e0 * r3 * r3 * (2 * r3 - 3)
        self.e = e

        EnergyFunction.__init__(self)
Exemplo n.º 6
0
    def __init__(self):
        x1, y1, z1, x2, y2, z2, x3, y3, z3 = symbols("x1 y1 z1 x2 y2 z2 x3 y3 z3")
        k2, k3, k4, theta0 = symbols("k2 k3 k4 theta0")
        self.x = x1, y1, z1, x2, y2, z2, x3, y3, z3
        self.k = theta0, k2, k3, k4

        dx1, dy1, dz1 = x1 - x2, y1 - y2, z1 - z2
        dx2, dy2, dz2 = x3 - x2, y3 - y2, z3 - z2

        r12 = sqrt((dx1 * dx1 + dy1 * dy1 + dz1 * dz1) * (dx2 * dx2 + dy2 * dy2 + dz2 * dz2))
        theta = acos((dx1 * dx2 + dy1 * dy2 + dz1 * dz2) / r12)
        dt = theta - theta0
        e = dt * dt * (k2 + dt * (k3 + k4 * dt))
        self.e = e

        EnergyFunction.__init__(self)
Exemplo n.º 7
0
    def __init__(self):
        x1, y1, z1, x2, y2, z2, x3, y3, z3 = symbols("x1 y1 z1 x2 y2 z2 x3 y3 z3")
        e0, theta0 = symbols("e0 theta0")
        self.x = x1, y1, z1, x2, y2, z2, x3, y3, z3
        self.k = theta0, e0

        dx1, dy1, dz1 = x1 - x2, y1 - y2, z1 - z2
        dx2, dy2, dz2 = x3 - x2, y3 - y2, z3 - z2

        r12 = sqrt((dx1 * dx1 + dy1 * dy1 + dz1 * dz1) * (dx2 * dx2 + dy2 * dy2 + dz2 * dz2))
        theta = acos((dx1 * dx2 + dy1 * dy2 + dz1 * dz2) / r12)

        e = e0 * (theta - theta0) * (theta - theta0)
        self.e = e

        EnergyFunction.__init__(self)
Exemplo n.º 8
0
    def __init__(self):
        x1, y1, z1, x2, y2, z2 = symbols('x1 y1 z1 x2 y2 z2')
        x3, y3, z3, x4, y4, z4 = symbols('x3 y3 z3 x4 y4 z4')
        e0, e1, e2, e3, e4, e5 = symbols('e0 e1, e2, e3, e4, e5')
        self.x = x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4
        self.k = e0, e1, e2, e3, e4, e5

        vx1, vy1, vz1 = x1-x2, y1-y2, z1-z2
        vx2, vy2, vz2 = x4-x3, y4-y3, z4-z3
        
        ax, ay, az = x2-x3, y2-y3, z2-z3
        
        nx1, ny1, nz1 = vy1*az-vz1*ay, vz1*ax - vx1*az, vx1*ay - vy1*ax 
        nx2, ny2, nz2 = vy2*az-vz2*ay, vz2*ax - vx2*az, vx2*ay - vy2*ax

        r12 = sqrt((nx1*nx1+ny1*ny1+nz1*nz1)*(nx2*nx2+ny2*ny2+nz2*nz2))
        p = (nx1*nx2+ny1*ny2+nz1*nz2) / r12
        
        e = e0 + p*(e1 + p*(e2 + p*(e3 + p*(e4 +p*e5))))
        self.e = e

        EnergyFunction.__init__(self)