prob_not_solenoidal.py
1 from __future__ import print_function 2 3 from sympy import symbols,sin,cos,factor_terms,simplify 4 from galgebra.printer import enhance_print 5 from galgebra.deprecated import MV 6 7 def main(): 8 enhance_print() 9 10 X = (x,y,z) = symbols('x y z') 11 (ex,ey,ez,grad) = MV.setup('e_x e_y e_z',metric='[1,1,1]',coords=(x,y,z)) 12 13 A = x*(ey^ez) + y*(ez^ex) + z*(ex^ey) 14 print('A =', A) 15 print('grad^A =',(grad^A).simplify()) 16 print() 17 18 f = MV('f','scalar',fct=True) 19 f = (x**2 + y**2 + z**2)**(-1.5) 20 print('f =', f) 21 print('grad*f =',(grad*f).expand()) 22 print() 23 24 B = f*A 25 print('B =', B) 26 print() 27 28 Curl_B = grad^B 29 30 print('grad^B =', Curl_B.simplify()) 31 32 def Symplify(A): 33 return(factor_terms(simplify(A))) 34 35 print(Curl_B.func(Symplify)) 36 return 37 38 if __name__ == "__main__": 39 main()