File: prob_not_solenoidal.py

package info (click to toggle)
sympy 0.7.5-3
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 26,576 kB
  • ctags: 27,948
  • sloc: python: 213,240; xml: 359; makefile: 117; sh: 53; lisp: 4
file content (41 lines) | stat: -rwxr-xr-x 880 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/env python

from __future__ import print_function

from sympy import symbols, sin, cos, factor_terms, simplify
from sympy.galgebra import enhance_print
from sympy.galgebra import MV

def main():
    enhance_print()

    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, y, z))

    A = x*(ey ^ ez) + y*(ez ^ ex) + z*(ex ^ ey)
    print('A =', A)
    print('grad^A =', (grad ^ A).simplify())
    print()

    f = MV('f', 'scalar', fct=True)
    f = (x**2 + y**2 + z**2)**(-1.5)
    print('f =', f)
    print('grad*f =', (grad*f).expand())
    print()

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

    Curl_B = grad ^ B

    print('grad^B =', Curl_B.simplify())

    def Symplify(A):
        return(factor_terms(simplify(A)))

    print(Curl_B.func(Symplify))
    return

if __name__ == "__main__":
    main()