def derivatives_in_toroidal_coordinates():
    Print_Function()
    a = symbols('a', real=True)
    coords = (u, v, phi) = symbols('u v phi', real=True)
    (t3d, eu, ev,
     ephi) = Ga.build('e_u e_v e_phi',
                      X=[
                          a * sinh(v) * cos(phi) / (cosh(v) - cos(u)),
                          a * sinh(v) * sin(phi) / (cosh(v) - cos(u)),
                          a * sin(u) / (cosh(v) - cos(u))
                      ],
                      coords=coords,
                      norm=True)
    grad = t3d.grad

    f = t3d.mv('f', 'scalar', f=True)
    A = t3d.mv('A', 'vector', f=True)
    B = t3d.mv('B', 'bivector', f=True)

    print('f =', f)
    print('A =', A)
    print('B =', B)

    print('grad*f =', grad * f)
    print('grad|A =', grad | A)
    print('-I*(grad^A) =', -t3d.i * (grad ^ A))
    print('grad^B =', grad ^ B)
    return
Example #2
0
def properties_of_geometric_objects():
    global n,nbar
    Print_Function()
    metric = '# # # 0 0,'+ \
             '# # # 0 0,'+ \
             '# # # 0 0,'+ \
             '0 0 0 0 2,'+ \
             '0 0 0 2 0'

    (p1,p2,p3,n,nbar) = MV.setup('p1 p2 p3 n \\bar{n}',metric)

    print('g_{ij} =',MV.metric)

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

    print('#%\\text{Extracting direction of line from }L = P1\\W P2\\W n')

    L = P1^P2^n
    delta = (L|n)|nbar
    print('(L|n)|\\bar{n} =',delta)

    print('#%\\text{Extracting plane of circle from }C = P1\\W P2\\W P3')

    C = P1^P2^P3
    delta = ((C^n)|n)|nbar
    print('((C^n)|n)|\\bar{n}=',delta)
    print('(p2-p1)^(p3-p1)=',(p2-p1)^(p3-p1))
    return
def derivatives_in_oblate_spheroidal_coordinates():
    Print_Function()
    a = symbols('a', real=True)
    coords = (xi, eta, phi) = symbols('xi eta phi', real=True)
    (os3d, er, eth, ephi) = Ga.build('e_xi e_eta e_phi',
                                     X=[
                                         a * cosh(xi) * cos(eta) * cos(phi),
                                         a * cosh(xi) * cos(eta) * sin(phi),
                                         a * sinh(xi) * sin(eta)
                                     ],
                                     coords=coords,
                                     norm=True)
    grad = os3d.grad

    f = os3d.mv('f', 'scalar', f=True)
    A = os3d.mv('A', 'vector', f=True)
    B = os3d.mv('B', 'bivector', f=True)

    print('f =', f)
    print('A =', A)
    print('B =', B)

    print('grad*f =', grad * f)
    print('grad|A =', grad | A)
    print('-I*(grad^A) =', -os3d.i * (grad ^ A))
    print('grad^B =', grad ^ B)
    return
Example #4
0
def Dirac_Equation_in_Geom_Calculus():
    Print_Function()
    coords = symbols('t x y z', real=True)
    (st4d, g0, g1, g2, g3) = Ga.build('gamma*t|x|y|z',
                                      g=[1, -1, -1, -1],
                                      coords=coords)
    I = st4d.i

    (m, e) = symbols('m e')

    psi = st4d.mv('psi', 'spinor', f=True)
    A = st4d.mv('A', 'vector', f=True)
    sig_z = g3 * g0

    print('\\text{4-Vector Potential\\;\\;}\\bm{A} =', A)
    print('\\text{8-component real spinor\\;\\;}\\bm{\\psi} =', psi)

    dirac_eq = (st4d.grad * psi) * I * sig_z - e * A * psi - m * psi * g0
    dirac_eq = dirac_eq.simplify()

    print(
        dirac_eq.Fmt(
            3,
            r'%\text{Dirac Equation\;\;}\nabla \bm{\psi} I \sigma_{z}-e\bm{A}\bm{\psi}-m\bm{\psi}\gamma_{t} = 0'
        ))

    return
Example #5
0
def Lorentz_Tranformation_in_Geog_Algebra():
    Print_Function()
    (alpha, beta, gamma) = symbols('alpha beta gamma')
    (x, t, xp, tp) = symbols("x t x' t'", real=True)
    (st2d, g0, g1) = Ga.build('gamma*t|x', g=[1, -1])

    from sympy import sinh, cosh

    R = cosh(alpha / 2) + sinh(alpha / 2) * (g0 ^ g1)
    X = t * g0 + x * g1
    Xp = tp * g0 + xp * g1
    print('R =', R)

    print(
        r"#%t\bm{\gamma_{t}}+x\bm{\gamma_{x}} = t'\bm{\gamma'_{t}}+x'\bm{\gamma'_{x}} = R\lp t'\bm{\gamma_{t}}+x'\bm{\gamma_{x}}\rp R^{\dagger}"
    )

    Xpp = R * Xp * R.rev()
    Xpp = Xpp.collect()
    Xpp = Xpp.trigsimp()
    print(r"%t\bm{\gamma_{t}}+x\bm{\gamma_{x}} =", Xpp)
    Xpp = Xpp.subs({sinh(alpha): gamma * beta, cosh(alpha): gamma})

    print(r'%\f{\sinh}{\alpha} = \gamma\beta')
    print(r'%\f{\cosh}{\alpha} = \gamma')

    print(r"%t\bm{\gamma_{t}}+x\bm{\gamma_{x}} =", Xpp.collect())
    return
Example #6
0
def derivatives_in_rectangular_coordinates():
    Print_Function()
    X = (x,y,z) = symbols('x y z')
    (ex,ey,ez,grad) = MV.setup('e_x e_y e_z',metric='[1,1,1]',coords=X)

    f = MV('f','scalar',fct=True)
    A = MV('A','vector',fct=True)
    B = MV('B','grade2',fct=True)
    C = MV('C','mv')
    print('f =',f)
    print('A =',A)
    print('B =',B)
    print('C =',C)

    print('grad*f =',grad*f)
    print('grad|A =',grad|A)
    print('grad*A =',grad*A)

    print(-MV.I)

    print('-I*(grad^A) =',-MV.I*(grad^A))
    print('grad*B =',grad*B)
    print('grad^B =',grad^B)
    print('grad|B =',grad|B)
    return
Example #7
0
def basic_multivector_operations_3D():
    Print_Function()

    (g3d,ex,ey,ez) = Ga.build('e*x|y|z')

    print('g_{ij} =',g3d.g)

    A = g3d.mv('A','mv')

    print(A.Fmt(1,'A'))
    print(A.Fmt(2,'A'))
    print(A.Fmt(3,'A'))

    print(A.even().Fmt(1,'%A_{+}'))
    print(A.odd().Fmt(1,'%A_{-}'))

    X = g3d.mv('X','vector')
    Y = g3d.mv('Y','vector')

    print(X.Fmt(1,'X'))
    print(Y.Fmt(1,'Y'))

    print((X*Y).Fmt(2,'X*Y'))
    print((X^Y).Fmt(2,'X^Y'))
    print((X|Y).Fmt(2,'X|Y'))
    return
Example #8
0
def derivatives_in_rectangular_coordinates():
    Print_Function()

    X = (x, y, z) = symbols('x y z')
    o3d = Ga('e_x e_y e_z', g=[1, 1, 1], coords=X)
    (ex, ey, ez) = o3d.mv()
    grad = o3d.grad

    f = o3d.mv('f', 'scalar', f=True)
    A = o3d.mv('A', 'vector', f=True)
    B = o3d.mv('B', 'bivector', f=True)
    C = o3d.mv('C', 'mv', f=True)
    print('f =', f)
    print('A =', A)
    print('B =', B)
    print('C =', C)

    print('grad*f =', grad * f)
    print('grad|A =', grad | A)
    print('grad*A =', grad * A)

    print('-I*(grad^A) =', -o3d.E() * (grad ^ A))
    print('grad*B =', grad * B)
    print('grad^B =', grad ^ B)
    print('grad|B =', grad | B)

    print('grad<A =', grad < A)
    print('grad>A =', grad > A)
    print('grad<B =', grad < B)
    print('grad>B =', grad > B)
    print('grad<C =', grad < C)
    print('grad>C =', grad > C)

    return
Example #9
0
def extracting_vectors_from_conformal_2_blade():
    Print_Function()
    print(r'B = P1\W P2')

    metric = '0 -1 #,'+ \
             '-1 0 #,'+ \
             '# # #'

    (P1,P2,a) = MV.setup('P1 P2 a',metric)

    print('g_{ij} =',MV.metric)

    B = P1^P2
    Bsq = B*B
    print('%B^{2} =',Bsq)
    ap = a-(a^B)*B
    print("a' = a-(a^B)*B =",ap)

    Ap = ap+ap*B
    Am = ap-ap*B

    print("A+ = a'+a'*B =",Ap)
    print("A- = a'-a'*B =",Am)

    print('%(A+)^{2} =',Ap*Ap)
    print('%(A-)^{2} =',Am*Am)

    aB = a|B
    print('a|B =',aB)
    return
Example #10
0
def Dirac_Equation_in_Geometric_Calculus():
    Print_Function()
    vars = symbols('t x y z')
    (g0, g1, g2, g3, grad) = MV.setup('gamma*t|x|y|z',
                                      metric='[1,-1,-1,-1]',
                                      coords=vars)
    I = MV.I

    (m, e) = symbols('m e')

    psi = MV('psi', 'spinor', fct=True)
    A = MV('A', 'vector', fct=True)
    sig_z = g3 * g0

    print('\\text{4-Vector Potential\\;\\;}\\bm{A} =', A)
    print('\\text{8-component real spinor\\;\\;}\\bm{\\psi} =', psi)

    dirac_eq = (grad * psi) * I * sig_z - e * A * psi - m * psi * g0
    dirac_eq.simplify()

    dirac_eq.Fmt(
        3,
        r'%\text{Dirac Equation\;\;}\nabla \bm{\psi} I \sigma_{z}-e\bm{A}\bm{\psi}-m\bm{\psi}\gamma_{t} = 0'
    )

    return
Example #11
0
def extracting_vectors_from_conformal_2_blade():
    Print_Function()

    g = '0 -1 #,'+ \
        '-1 0 #,'+ \
        '# # #'

    e2b = Ga('P1 P2 a', g=g)

    (P1, P2, a) = e2b.mv()

    print('g_{ij} =\n', e2b.g)

    B = P1 ^ P2
    Bsq = B * B
    print('B**2 =', Bsq)
    ap = a - (a ^ B) * B
    print("a' = a-(a^B)*B =", ap)

    Ap = ap + ap * B
    Am = ap - ap * B

    print("A+ = a'+a'*B =", Ap)
    print("A- = a'-a'*B =", Am)

    print('(A+)^2 =', Ap * Ap)
    print('(A-)^2 =', Am * Am)

    aB = a | B
    print('a|B =', aB)
    return
Example #12
0
def Fmt_test():
    Print_Function()

    e3d = Ga('e1 e2 e3', g=[1, 1, 1])

    v = e3d.mv('v', 'vector')
    B = e3d.mv('B', 'bivector')
    M = e3d.mv('M', 'mv')

    Fmt(2)

    print('#Global $Fmt = 2$')

    print('v =', v)
    print('B =', B)
    print('M =', M)

    print('#Using $.Fmt()$ Function')

    print('v.Fmt(3) =', v.Fmt(3))
    print('B.Fmt(3) =', B.Fmt(3))
    print('M.Fmt(2) =', M.Fmt(2))
    print('M.Fmt(1) =', M.Fmt(1))

    print('#Global $Fmt = 1$')

    Fmt(1)

    print('v =', v)
    print('B =', B)
    print('M =', M)

    return
Example #13
0
def main():
    Print_Function()

    (a, b, c) = abc = symbols('a,b,c',real=True)
    (o3d, ea, eb, ec) = Ga.build('e_a e_b e_c', g=[1, 1, 1], coords=abc)
    grad = o3d.grad

    x = symbols('x',real=True)
    A = o3d.lt([[x*a*c**2,x**2*a*b*c,x**2*a**3*b**5],\
                [x**3*a**2*b*c,x**4*a*b**2*c**5,5*x**4*a*b**2*c],\
                [x**4*a*b**2*c**4,4*x**4*a*b**2*c**2,4*x**4*a**5*b**2*c]])
    print('A =',A)

    v = a*ea+b*eb+c*ec

    print('v =',v)

    f = v|A(v)

    print(r'%f = v\cdot \f{A}{v} =',f)

    (grad * f).Fmt(3,r'%\nabla f')

    Av = A(v)

    print(r'%\f{A}{v} =', Av)

    (grad * Av).Fmt(3,r'%\nabla \f{A}{v}')

    return
Example #14
0
def properties_of_geometric_objects():
    Print_Function()
    global n, nbar
    Fmt(1)
    g = '# # # 0 0,'+ \
        '# # # 0 0,'+ \
        '# # # 0 0,'+ \
        '0 0 0 0 2,'+ \
        '0 0 0 2 0'

    c3d = Ga('p1 p2 p3 n \\bar{n}', g=g)
    (p1, p2, p3, n, nbar) = c3d.mv()

    print('g_{ij} =', c3d.g)

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

    print('\\text{Extracting direction of line from }L = P1\\W P2\\W n')

    L = P1 ^ P2 ^ n
    delta = (L | n) | nbar
    print('(L|n)|\\bar{n} =', delta)

    print('\\text{Extracting plane of circle from }C = P1\\W P2\\W P3')

    C = P1 ^ P2 ^ P3
    delta = ((C ^ n) | n) | nbar
    print('((C^n)|n)|\\bar{n}=', delta)
    print('(p2-p1)^(p3-p1)=', (p2 - p1) ^ (p3 - p1))
    return
Example #15
0
def basic_multivector_operations_3D():
    Print_Function()

    g3d = Ga('e*x|y|z')
    (ex, ey, ez) = g3d.mv()

    A = g3d.mv('A', 'mv')

    print(A.Fmt(1, 'A'))
    print(A.Fmt(2, 'A'))
    print(A.Fmt(3, 'A'))

    print(A.even().Fmt(1, '%A_{+}'))
    print(A.odd().Fmt(1, '%A_{-}'))

    X = g3d.mv('X', 'vector')
    Y = g3d.mv('Y', 'vector')

    print('g_{ij} = ', g3d.g)

    print(X.Fmt(1, 'X'))
    print(Y.Fmt(1, 'Y'))

    print((X * Y).Fmt(2, 'X*Y'))
    print((X ^ Y).Fmt(2, 'X^Y'))
    print((X | Y).Fmt(2, 'X|Y'))
    print(cross(X, Y).Fmt(1, r'X\times Y'))
    return
Example #16
0
def basic_multivector_operations_3D():
    Print_Function()

    (ex,ey,ez) = MV.setup('e*x|y|z')

    A = MV('A','mv')

    A.Fmt(1,'A')
    A.Fmt(2,'A')
    A.Fmt(3,'A')

    A.even().Fmt(1,'%A_{+}')
    A.odd().Fmt(1,'%A_{-}')

    X = MV('X','vector')
    Y = MV('Y','vector')

    print('g_{ij} = ',MV.metric)

    X.Fmt(1,'X')
    Y.Fmt(1,'Y')

    (X*Y).Fmt(2,'X*Y')
    (X^Y).Fmt(2,'X^Y')
    (X|Y).Fmt(2,'X|Y')
    return
Example #17
0
def Maxwells_Equations_in_Geom_Calculus():
    Print_Function()
    X = symbols('t x y z', real=True)
    (st4d, g0, g1, g2, g3) = Ga.build('gamma*t|x|y|z',
                                      g=[1, -1, -1, -1],
                                      coords=X)

    I = st4d.i

    B = st4d.mv('B', 'vector', f=True)
    E = st4d.mv('E', 'vector', f=True)
    B.set_coef(1, 0, 0)
    E.set_coef(1, 0, 0)
    B *= g0
    E *= g0
    J = st4d.mv('J', 'vector', f=True)
    F = E + I * B

    print(r'\text{Pseudo Scalar\;\;}I =', I)
    print('\\text{Magnetic Field Bi-Vector\\;\\;} B = \\bm{B\\gamma_{t}} =', B)
    print('\\text{Electric Field Bi-Vector\\;\\;} E = \\bm{E\\gamma_{t}} =', E)
    print('\\text{Electromagnetic Field Bi-Vector\\;\\;} F = E+IB =', F)
    print('%\\text{Four Current Density\\;\\;} J =', J)
    gradF = st4d.grad * F
    print('#Geom Derivative of Electomagnetic Field Bi-Vector')
    gradF.Fmt(3, 'grad*F')

    print('#Maxwell Equations')
    print('grad*F = J')
    print('#Div $E$ and Curl $H$ Equations')
    print((gradF.get_grade(1) - J).Fmt(3, '%\\grade{\\nabla F}_{1} -J = 0'))
    print('#Curl $E$ and Div $B$ equations')
    print((gradF.get_grade(3)).Fmt(3, '%\\grade{\\nabla F}_{3} = 0'))
    return
def Lorentz_Tranformation_in_Geometric_Algebra():
    Print_Function()
    (alpha,beta,gamma) = symbols('alpha beta gamma')
    (x,t,xp,tp) = symbols("x t x' t'")
    (g0,g1) = MV.setup('gamma*t|x',metric='[1,-1]')

    from sympy import sinh,cosh

    R = cosh(alpha/2)+sinh(alpha/2)*(g0^g1)
    X = t*g0+x*g1
    Xp = tp*g0+xp*g1
    print('R =',R)

    print(r"#%t\bm{\gamma_{t}}+x\bm{\gamma_{x}} = t'\bm{\gamma'_{t}}+x'\bm{\gamma'_{x}} = R\lp t'\bm{\gamma_{t}}+x'\bm{\gamma_{x}}\rp R^{\dagger}")

    Xpp = R*Xp*R.rev()
    Xpp = Xpp.collect()
    Xpp = Xpp.subs({2*sinh(alpha/2)*cosh(alpha/2):sinh(alpha),sinh(alpha/2)**2+cosh(alpha/2)**2:cosh(alpha)})
    print(r"%t\bm{\gamma_{t}}+x\bm{\gamma_{x}} =",Xpp)
    Xpp = Xpp.subs({sinh(alpha):gamma*beta,cosh(alpha):gamma})

    print(r'%\f{\sinh}{\alpha} = \gamma\beta')
    print(r'%\f{\cosh}{\alpha} = \gamma')

    print(r"%t\bm{\gamma_{t}}+x\bm{\gamma_{x}} =",Xpp.collect())
    return
Example #19
0
def properties_of_geometric_objects():
    Print_Function()
    global n, nbar

    g = '# # # 0 0,'+ \
        '# # # 0 0,'+ \
        '# # # 0 0,'+ \
        '0 0 0 0 2,'+ \
        '0 0 0 2 0'

    c3d = Ga('p1 p2 p3 n nbar', g=g)

    (p1, p2, p3, n, nbar) = c3d.mv()

    print('g_{ij} =\n', c3d.g)

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

    print('Extracting direction of line from L = P1^P2^n')

    L = P1 ^ P2 ^ n
    delta = (L | n) | nbar
    print('(L|n)|nbar =', delta)

    print('Extracting plane of circle from C = P1^P2^P3')

    C = P1 ^ P2 ^ P3
    delta = ((C ^ n) | n) | nbar
    print('((C^n)|n)|nbar =', delta)
    print('(p2-p1)^(p3-p1) =', (p2 - p1) ^ (p3 - p1))
def Maxwells_Equations_in_Geometric_Calculus():
    Print_Function()
    X = symbols('t x y z')
    (g0,g1,g2,g3,grad) = MV.setup('gamma*t|x|y|z',metric='[1,-1,-1,-1]',coords=X)
    I = MV.I

    B = MV('B','vector',fct=True)
    E = MV('E','vector',fct=True)
    B.set_coef(1,0,0)
    E.set_coef(1,0,0)
    B *= g0
    E *= g0
    J = MV('J','vector',fct=True)
    F = E+I*B

    print(r'\text{Pseudo Scalar\;\;}I =',I)
    print('\\text{Magnetic Field Bi-Vector\\;\\;} B = \\bm{B\\gamma_{t}} =',B)
    print('\\text{Electric Field Bi-Vector\\;\\;} E = \\bm{E\\gamma_{t}} =',E)
    print('\\text{Electromagnetic Field Bi-Vector\\;\\;} F = E+IB =',F)
    print('%\\text{Four Current Density\\;\\;} J =',J)
    gradF = grad*F
    print('#Geometric Derivative of Electomagnetic Field Bi-Vector')
    gradF.Fmt(3,'grad*F')

    print('#Maxwell Equations')
    print('grad*F = J')
    print('#Div $E$ and Curl $H$ Equations')
    (gradF.grade(1)-J).Fmt(3,'%\\grade{\\nabla F}_{1} -J = 0')
    print('#Curl $E$ and Div $B$ equations')
    (gradF.grade(3)).Fmt(3,'%\\grade{\\nabla F}_{3} = 0')
    return
Example #21
0
def signature_test():
    Print_Function()

    e3d = Ga('e1 e2 e3', g=[1, 1, 1])
    print('e3d.g =', e3d.g)
    print('Signature = (3,0) I =', e3d.I(), ' I**2 =', e3d.I() * e3d.I())

    e3d = Ga('e1 e2 e3', g=[2, 2, 2])
    print('e3d.g =', e3d.g)
    print('Signature = (3,0) I =', e3d.I(), ' I**2 =', e3d.I() * e3d.I())

    sp4d = Ga('e1 e2 e3 e4', g=[1, -1, -1, -1])
    print('e3d.g =', sp4d.g)
    print('Signature = (1,3) I =', sp4d.I(), ' I**2 =', sp4d.I() * sp4d.I())

    sp4d = Ga('e1 e2 e3 e4', g=[2, -2, -2, -2])
    print('e3d.g =', sp4d.g)
    print('Signature = (1,3) I =', sp4d.I(), ' I**2 =', sp4d.I() * sp4d.I())

    e4d = Ga('e1 e2 e3 e4', g=[1, 1, 1, 1])
    print('e4d.g =', e4d.g)
    print('Signature = (4,0) I =', e4d.I(), ' I**2 =', e4d.I() * e4d.I())

    cf3d = Ga('e1 e2 e3 e4 e5', g=[1, 1, 1, 1, -1])
    print('cf4d.g =', cf3d.g)
    print('Signature = (4,1) I =', cf3d.I(), ' I**2 =', cf3d.I() * cf3d.I())

    cf3d = Ga('e1 e2 e3 e4 e5', g=[2, 2, 2, 2, -2])
    print('cf4d.g =', cf3d.g)
    print('Signature = (4,1) I =', cf3d.I(), ' I**2 =', cf3d.I() * cf3d.I())

    return
def derivatives_in_bipolar_coordinates():
    Print_Function()
    a = symbols('a', real=True)
    coords = (u, v, z) = symbols('u v z', real=True)
    (bp3d, eu, ev, ez) = Ga.build('e_u e_v e_z',
                                  X=[
                                      a * sinh(v) / (cosh(v) - cos(u)),
                                      a * sin(u) / (cosh(v) - cos(u)), z
                                  ],
                                  coords=coords,
                                  norm=True)
    grad = bp3d.grad

    f = bp3d.mv('f', 'scalar', f=True)
    A = bp3d.mv('A', 'vector', f=True)
    B = bp3d.mv('B', 'bivector', f=True)

    print('f =', f)
    print('A =', A)
    print('B =', B)

    print('grad*f =', grad * f)
    print('grad|A =', grad | A)
    print('-I*(grad^A) =', -bp3d.i * (grad ^ A))
    print('grad^B =', grad ^ B)
    return
Example #23
0
def basic_multivector_operations():
    Print_Function()
    (ex, ey, ez) = MV.setup('e*x|y|z')

    A = MV('A', 'mv')

    A.Fmt(1, 'A')
    A.Fmt(2, 'A')
    A.Fmt(3, 'A')

    X = MV('X', 'vector')
    Y = MV('Y', 'vector')

    print('g_{ij} =\n', MV.metric)

    X.Fmt(1, 'X')
    Y.Fmt(1, 'Y')

    (X * Y).Fmt(2, 'X*Y')
    (X ^ Y).Fmt(2, 'X^Y')
    (X | Y).Fmt(2, 'X|Y')

    (ex, ey) = MV.setup('e*x|y')

    print('g_{ij} =\n', MV.metric)

    X = MV('X', 'vector')
    A = MV('A', 'spinor')

    X.Fmt(1, 'X')
    A.Fmt(1, 'A')

    (X | A).Fmt(2, 'X|A')
    (X < A).Fmt(2, 'X<A')
    (A > X).Fmt(2, 'A>X')

    (ex, ey) = MV.setup('e*x|y', metric='[1,1]')

    print('g_{ii} =\n', MV.metric)

    X = MV('X', 'vector')
    A = MV('A', 'spinor')

    X.Fmt(1, 'X')
    A.Fmt(1, 'A')

    (X * A).Fmt(2, 'X*A')
    (X | A).Fmt(2, 'X|A')
    (X < A).Fmt(2, 'X<A')
    (X > A).Fmt(2, 'X>A')

    (A * X).Fmt(2, 'A*X')
    (A | X).Fmt(2, 'A|X')
    (A < X).Fmt(2, 'A<X')
    (A > X).Fmt(2, 'A>X')
    return
Example #24
0
def General_Lorentz_Tranformation():
    Print_Function()
    (alpha, beta, gamma) = symbols('alpha beta gamma')
    (x, y, z, t) = symbols("x y z t", real=True)
    (st4d, g0, g1, g2, g3) = Ga.build('gamma*t|x|y|z', g=[1, -1, -1, -1])

    B = (x * g1 + y * g2 + z * g3) ^ (t * g0)
    print(B)
    print(B.exp(hint='+'))
    print(B.exp(hint='-'))
Example #25
0
def rounding_numerical_components():
    Print_Function()
    (ex,ey,ez) = MV.setup('e_x e_y e_z',metric='[1,1,1]')

    X = 1.2*ex+2.34*ey+0.555*ez
    Y = 0.333*ex+4*ey+5.3*ez

    print('X =',X)
    print('Nga(X,2) =',Nga(X,2))
    print('X*Y =',X*Y)
    print('Nga(X*Y,2) =',Nga(X*Y,2))
    return
Example #26
0
def rounding_numerical_components():
    Print_Function()
    o3d = Ga('e_x e_y e_z', g=[1, 1, 1])
    (ex, ey, ez) = o3d.mv()

    X = 1.2 * ex + 2.34 * ey + 0.555 * ez
    Y = 0.333 * ex + 4 * ey + 5.3 * ez

    print('X =', X)
    print('Nga(X,2) =', Nga(X, 2))
    print('X*Y =', X * Y)
    print('Nga(X*Y,2) =', Nga(X * Y, 2))
    return
Example #27
0
def coefs_test():
    Print_Function()

    (o3d, e1, e2, e3) = Ga.build('e_1 e_2 e_3', g=[1, 1, 1])
    print(o3d.blades_lst)
    print(o3d.mv_blades_lst)
    v = o3d.mv('v', 'vector')
    print(v)
    print(v.blade_coefs([e3, e1]))
    A = o3d.mv('A', 'mv')
    print(A)
    print(A.blade_coefs([e1 ^ e3, e3, e1 ^ e2, e1 ^ e2 ^ e3]))
    print(A.blade_coefs())
    return
Example #28
0
def check_generalized_BAC_CAB_formulas():
    Print_Function()
    (a,b,c,d) = MV.setup('a b c d')

    print('g_{ij} =',MV.metric)
    print('\\bm{a|(b*c)} =',a|(b*c))
    print('\\bm{a|(b^c)} =',a|(b^c))
    print('\\bm{a|(b^c^d)} =',a|(b^c^d))
    print('\\bm{a|(b^c)+c|(a^b)+b|(c^a)} =',(a|(b^c))+(c|(a^b))+(b|(c^a)))
    print('\\bm{a*(b^c)-b*(a^c)+c*(a^b)} =',a*(b^c)-b*(a^c)+c*(a^b))
    print('\\bm{a*(b^c^d)-b*(a^c^d)+c*(a^b^d)-d*(a^b^c)} =',a*(b^c^d)-b*(a^c^d)+c*(a^b^d)-d*(a^b^c))
    print('\\bm{(a^b)|(c^d)} =',(a^b)|(c^d))
    print('\\bm{((a^b)|c)|d} =',((a^b)|c)|d)
    print('\\bm{(a^b)\\times (c^d)} =',Ga.com(a^b,c^d))
    return
Example #29
0
def basic_multivector_operations_2D():
    Print_Function()
    (ex,ey) = MV.setup('e*x|y')

    print('g_{ij} =',MV.metric)

    X = MV('X','vector')
    A = MV('A','spinor')

    X.Fmt(1,'X')
    A.Fmt(1,'A')

    (X|A).Fmt(2,'X|A')
    (X<A).Fmt(2,'X<A')
    (A>X).Fmt(2,'A>X')
    return
Example #30
0
def Lie_Group():
    Print_Function()
    coords = symbols('t x y z', real=True)
    (st4d, g0, g1, g2, g3) = Ga.build('gamma*t|x|y|z',
                                      g=[1, -1, -1, -1],
                                      coords=coords)
    I = st4d.i

    a = st4d.mv('a', 'vector')
    B = st4d.mv('B', 'bivector')
    print('a =', a)
    print('B =', B)
    print('a|B =', a | B)
    print(((a | B) | B).simplify().Fmt(3, '(a|B)|B'))
    print((((a | B) | B) | B).simplify().Fmt(3, '((a|B)|B)|B'))

    return