Exemplo n.º 1
0
def test_extract_plane_and_line():
    metric = '# # # 0 0,'+ \
             '# # # 0 0,'+ \
             '# # # 0 0,'+ \
             '0 0 0 0 2,'+ \
             '0 0 0 2 0'

    MV.setup('p1 p2 p3 n nbar', metric, debug=0)
    MV.set_str_format(1)

    ZERO_MV = MV()

    P1 = F(p1)
    P2 = F(p2)
    P3 = F(p3)

    L = P1 ^ P2 ^ n
    delta = (L | n) | nbar
    delta_test = 2 * p1 - 2 * p2
    diff = delta - delta_test
    diff.compact()
    assert diff == ZERO_MV

    C = P1 ^ P2 ^ P3
    delta = ((C ^ n) | n) | nbar
    delta_test = 2 * (p1 ^ p2) - 2 * (p1 ^ p3) + 2 * (p2 ^ p3)
    diff = delta - delta_test
    diff.compact()
    assert diff == ZERO_MV
Exemplo n.º 2
0
def test_vector_extraction():
    metric = ' 0 -1 #,'+ \
             '-1  0 #,'+ \
             ' #  # #,'

    MV.setup('P1 P2 a', metric)
    ZERO_MV = MV()
    B = P1 ^ P2
    Bsq = B * B
    ap = a - (a ^ B) * B
    Ap = ap + ap * B
    Am = ap - ap * B
    Ap_test = (-2 * P2dota) * P1
    Am_test = (-2 * P1dota) * P2
    Ap.compact()
    Am.compact()
    Ap_test.compact()
    Am_test.compact()
    assert Ap == Ap_test
    assert Am == Am_test
    Ap2 = Ap * Ap
    Am2 = Am * Am
    Ap2.compact()
    Am2.compact()
    assert Ap2 == ZERO_MV
    assert Am2 == ZERO_MV
Exemplo n.º 3
0
def make_vector(a, n=3):
    if type(a) == types.StringType:
        sym_str = ''
        for i in range(n):
            sym_str += a + str(i) + ' '
        sym_lst = make_symbols(sym_str)
        sym_lst.append(ZERO)
        sym_lst.append(ZERO)
        a = MV(sym_lst, 'vector')
    return (F(a))
Exemplo n.º 4
0
def test_geometry():
    metric = '1 0 0 0 0,'+ \
             '0 1 0 0 0,'+ \
             '0 0 1 0 0,'+ \
             '0 0 0 0 2,'+ \
             '0 0 0 2 0'

    MV.setup('e0 e1 e2 n nbar', metric, debug=0)
    e = n + nbar
    #conformal representation of points
    ZERO_MV = MV()

    A = make_vector(e0)  # point a = (1,0,0)  A = F(a)
    B = make_vector(e1)  # point b = (0,1,0)  B = F(b)
    C = make_vector(-1 * e0)  # point c = (-1,0,0) C = F(c)
    D = make_vector(e2)  # point d = (0,0,1)  D = F(d)
    X = make_vector('x', 3)

    Circle = A ^ B ^ C ^ X
    Line = A ^ B ^ n ^ X
    Sphere = A ^ B ^ C ^ D ^ X
    Plane = A ^ B ^ n ^ D ^ X

    Circle_test = -x2 * (e0 ^ e1 ^ e2 ^ n) + x2 * (
        e0 ^ e1 ^ e2 ^ nbar) + HALF * (-1 + x0**2 + x1**2 +
                                       x2**2) * (e0 ^ e1 ^ n ^ nbar)
    diff = Circle - Circle_test
    diff.compact()
    assert diff == ZERO_MV

    Line_test = -x2*(e0^e1^e2^n)+HALF*(-1+x0+x1)*(e0^e1^n^nbar)+(HALF*x2)*(e0^e2^n^nbar)+\
                (-HALF*x2)*(e1^e2^n^nbar)
    diff = Line - Line_test
    diff.compact()
    assert diff == ZERO_MV

    Sphere_test = HALF * (1 - x0**2 - x1**2 - x2**2) * (e0 ^ e1 ^ e2 ^ n
                                                        ^ nbar)
    diff = Sphere - Sphere_test
    diff.compact()
    assert diff == ZERO_MV

    Plane_test = HALF * (1 - x0 - x1 - x2) * (e0 ^ e1 ^ e2 ^ n ^ nbar)
    diff = Plane - Plane_test
    diff.compact()
    assert diff == ZERO_MV