Open f0uriest opened 1 year ago
including code here for generating new basis vector compute funs.
From mathematica> derivatives.txt
:
{(R^(1,0,0))[\[Rho],\[Theta],\[Zeta]],R[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]],(Z^(1,0,0))[\[Rho],\[Theta],\[Zeta]]}
{(R^(0,1,0))[\[Rho],\[Theta],\[Zeta]],R[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]],(Z^(0,1,0))[\[Rho],\[Theta],\[Zeta]]}
{(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]],R[\[Rho],\[Theta],\[Zeta]] (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]),(Z^(0,0,1))[\[Rho],\[Theta],\[Zeta]]}
{-R[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]^2+(R^(2,0,0))[\[Rho],\[Theta],\[Zeta]],2 (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (W^(2,0,0))[\[Rho],\[Theta],\[Zeta]],(Z^(2,0,0))[\[Rho],\[Theta],\[Zeta]]}
{-R[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(1,1,0))[\[Rho],\[Theta],\[Zeta]],(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]],(Z^(1,1,0))[\[Rho],\[Theta],\[Zeta]]}
{-R[\[Rho],\[Theta],\[Zeta]] (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(1,0,1))[\[Rho],\[Theta],\[Zeta]],(1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]],(Z^(1,0,1))[\[Rho],\[Theta],\[Zeta]]}
{-3 (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]^2-3 R[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (W^(2,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(3,0,0))[\[Rho],\[Theta],\[Zeta]],3 ((W^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (R^(2,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (W^(2,0,0))[\[Rho],\[Theta],\[Zeta]])+R[\[Rho],\[Theta],\[Zeta]] (-(W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]^3+(W^(3,0,0))[\[Rho],\[Theta],\[Zeta]]),(Z^(3,0,0))[\[Rho],\[Theta],\[Zeta]]}
{-(R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]^2-2 R[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]]-(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (2 (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (W^(2,0,0))[\[Rho],\[Theta],\[Zeta]])+(R^(2,1,0))[\[Rho],\[Theta],\[Zeta]],2 (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (R^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+2 (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (R^(2,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(2,0,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (-(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]^2+(W^(2,1,0))[\[Rho],\[Theta],\[Zeta]]),(Z^(2,1,0))[\[Rho],\[Theta],\[Zeta]]}
{-2 (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]-(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]^2-2 R[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (W^(2,0,0))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(2,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(2,0,1))[\[Rho],\[Theta],\[Zeta]],2 (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (R^(1,0,1))[\[Rho],\[Theta],\[Zeta]]+2 (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]]+(R^(2,0,0))[\[Rho],\[Theta],\[Zeta]]+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (R^(2,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(2,0,0))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] ((1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]^2-(W^(2,0,1))[\[Rho],\[Theta],\[Zeta]]),(Z^(2,0,1))[\[Rho],\[Theta],\[Zeta]]}
{-(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]^2 (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (W^(0,2,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]-2 (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] ((R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]])+(R^(1,2,0))[\[Rho],\[Theta],\[Zeta]],(W^(0,2,0))[\[Rho],\[Theta],\[Zeta]] (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,2,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+2 (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (R^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+2 (R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (-(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]^2 (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(W^(1,2,0))[\[Rho],\[Theta],\[Zeta]]),(Z^(1,2,0))[\[Rho],\[Theta],\[Zeta]]}
{-((1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]])-R[\[Rho],\[Theta],\[Zeta]] (W^(0,1,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]-(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] ((1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]])-R[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+(R^(1,1,1))[\[Rho],\[Theta],\[Zeta]],(W^(0,1,1))[\[Rho],\[Theta],\[Zeta]] (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,1,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (R^(1,0,1))[\[Rho],\[Theta],\[Zeta]]+(R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]]+(R^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (R^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (-((1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]])+(W^(1,1,1))[\[Rho],\[Theta],\[Zeta]]),(Z^(1,1,1))[\[Rho],\[Theta],\[Zeta]]}
{-(1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]])^2 (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]-2 (R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (W^(0,0,2))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]-2 R[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]]-2 R[\[Rho],\[Theta],\[Zeta]] (W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]]+(R^(1,0,2))[\[Rho],\[Theta],\[Zeta]],(W^(0,0,2))[\[Rho],\[Theta],\[Zeta]] (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,2))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+2 (R^(1,0,1))[\[Rho],\[Theta],\[Zeta]]+2 (W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (R^(1,0,1))[\[Rho],\[Theta],\[Zeta]]+2 (R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] ((1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]])^2 (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]-(W^(1,0,2))[\[Rho],\[Theta],\[Zeta]]),(Z^(1,0,2))[\[Rho],\[Theta],\[Zeta]]}
{-R[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(1,1,0))[\[Rho],\[Theta],\[Zeta]],(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]],(Z^(1,1,0))[\[Rho],\[Theta],\[Zeta]]}
{-R[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]^2+(R^(0,2,0))[\[Rho],\[Theta],\[Zeta]],2 (R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (W^(0,2,0))[\[Rho],\[Theta],\[Zeta]],(Z^(0,2,0))[\[Rho],\[Theta],\[Zeta]]}
{-R[\[Rho],\[Theta],\[Zeta]] (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,1,1))[\[Rho],\[Theta],\[Zeta]],(1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (R^(0,1,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (W^(0,1,1))[\[Rho],\[Theta],\[Zeta]],(Z^(0,1,1))[\[Rho],\[Theta],\[Zeta]]}
{-(R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]^2-2 R[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]]-(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (2 (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (W^(2,0,0))[\[Rho],\[Theta],\[Zeta]])+(R^(2,1,0))[\[Rho],\[Theta],\[Zeta]],2 (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (R^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+2 (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (R^(2,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(2,0,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (-(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]^2+(W^(2,1,0))[\[Rho],\[Theta],\[Zeta]]),(Z^(2,1,0))[\[Rho],\[Theta],\[Zeta]]}
{-(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]^2 (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (W^(0,2,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]-2 (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] ((R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]])+(R^(1,2,0))[\[Rho],\[Theta],\[Zeta]],(W^(0,2,0))[\[Rho],\[Theta],\[Zeta]] (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,2,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+2 (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (R^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+2 (R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (-(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]^2 (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(W^(1,2,0))[\[Rho],\[Theta],\[Zeta]]),(Z^(1,2,0))[\[Rho],\[Theta],\[Zeta]]}
{-((1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]])-R[\[Rho],\[Theta],\[Zeta]] (W^(0,1,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]-(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] ((1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]])-R[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+(R^(1,1,1))[\[Rho],\[Theta],\[Zeta]],(W^(0,1,1))[\[Rho],\[Theta],\[Zeta]] (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,1,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (R^(1,0,1))[\[Rho],\[Theta],\[Zeta]]+(R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]]+(R^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (R^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (-((1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]])+(W^(1,1,1))[\[Rho],\[Theta],\[Zeta]]),(Z^(1,1,1))[\[Rho],\[Theta],\[Zeta]]}
{-3 (R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]^2-3 R[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(0,2,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,3,0))[\[Rho],\[Theta],\[Zeta]],3 ((W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (R^(0,2,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(0,2,0))[\[Rho],\[Theta],\[Zeta]])+R[\[Rho],\[Theta],\[Zeta]] (-(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]^3+(W^(0,3,0))[\[Rho],\[Theta],\[Zeta]]),(Z^(0,3,0))[\[Rho],\[Theta],\[Zeta]]}
{-2 (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]-(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]^2-2 R[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,1))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (W^(0,2,0))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(0,2,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,2,1))[\[Rho],\[Theta],\[Zeta]],2 (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (R^(0,1,1))[\[Rho],\[Theta],\[Zeta]]+2 (R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,1))[\[Rho],\[Theta],\[Zeta]]+(R^(0,2,0))[\[Rho],\[Theta],\[Zeta]]+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (R^(0,2,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(0,2,0))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] ((1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]^2-(W^(0,2,1))[\[Rho],\[Theta],\[Zeta]]),(Z^(0,2,1))[\[Rho],\[Theta],\[Zeta]]}
{-(1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]])^2 (R^(0,1,0))[\[Rho],\[Theta],\[Zeta]]-2 (R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (W^(0,0,2))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]-2 R[\[Rho],\[Theta],\[Zeta]] (W^(0,1,1))[\[Rho],\[Theta],\[Zeta]]-2 R[\[Rho],\[Theta],\[Zeta]] (W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,1))[\[Rho],\[Theta],\[Zeta]]+(R^(0,1,2))[\[Rho],\[Theta],\[Zeta]],(W^(0,0,2))[\[Rho],\[Theta],\[Zeta]] (R^(0,1,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,2))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]+2 (R^(0,1,1))[\[Rho],\[Theta],\[Zeta]]+2 (W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (R^(0,1,1))[\[Rho],\[Theta],\[Zeta]]+2 (R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,1))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] ((1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]])^2 (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]-(W^(0,1,2))[\[Rho],\[Theta],\[Zeta]]),(Z^(0,1,2))[\[Rho],\[Theta],\[Zeta]]}
{-R[\[Rho],\[Theta],\[Zeta]] (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(1,0,1))[\[Rho],\[Theta],\[Zeta]],(1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]],(Z^(1,0,1))[\[Rho],\[Theta],\[Zeta]]}
{-R[\[Rho],\[Theta],\[Zeta]] (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,1,1))[\[Rho],\[Theta],\[Zeta]],(1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (R^(0,1,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (W^(0,1,1))[\[Rho],\[Theta],\[Zeta]],(Z^(0,1,1))[\[Rho],\[Theta],\[Zeta]]}
{-R[\[Rho],\[Theta],\[Zeta]] (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]])^2+(R^(0,0,2))[\[Rho],\[Theta],\[Zeta]],2 (R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]])+R[\[Rho],\[Theta],\[Zeta]] (W^(0,0,2))[\[Rho],\[Theta],\[Zeta]],(Z^(0,0,2))[\[Rho],\[Theta],\[Zeta]]}
{-2 (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]-(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]^2-2 R[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (W^(2,0,0))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(2,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(2,0,1))[\[Rho],\[Theta],\[Zeta]],2 (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (R^(1,0,1))[\[Rho],\[Theta],\[Zeta]]+2 (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]]+(R^(2,0,0))[\[Rho],\[Theta],\[Zeta]]+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (R^(2,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(2,0,0))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] ((1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]^2-(W^(2,0,1))[\[Rho],\[Theta],\[Zeta]]),(Z^(2,0,1))[\[Rho],\[Theta],\[Zeta]]}
{-((1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]])-R[\[Rho],\[Theta],\[Zeta]] (W^(0,1,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]-(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] ((1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]])-R[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+(R^(1,1,1))[\[Rho],\[Theta],\[Zeta]],(W^(0,1,1))[\[Rho],\[Theta],\[Zeta]] (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,1,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (R^(1,0,1))[\[Rho],\[Theta],\[Zeta]]+(R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]]+(R^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (R^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,1,0))[\[Rho],\[Theta],\[Zeta]]+R[\[Rho],\[Theta],\[Zeta]] (-((1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]])+(W^(1,1,1))[\[Rho],\[Theta],\[Zeta]]),(Z^(1,1,1))[\[Rho],\[Theta],\[Zeta]]}
{-(1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]])^2 (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]-2 (R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (W^(0,0,2))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]-2 R[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]]-2 R[\[Rho],\[Theta],\[Zeta]] (W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]]+(R^(1,0,2))[\[Rho],\[Theta],\[Zeta]],(W^(0,0,2))[\[Rho],\[Theta],\[Zeta]] (R^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,2))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]+2 (R^(1,0,1))[\[Rho],\[Theta],\[Zeta]]+2 (W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (R^(1,0,1))[\[Rho],\[Theta],\[Zeta]]+2 (R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(1,0,1))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] ((1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]])^2 (W^(1,0,0))[\[Rho],\[Theta],\[Zeta]]-(W^(1,0,2))[\[Rho],\[Theta],\[Zeta]]),(Z^(1,0,2))[\[Rho],\[Theta],\[Zeta]]}
{-2 (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]-(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]^2-2 R[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,1))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (W^(0,2,0))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(0,2,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,2,1))[\[Rho],\[Theta],\[Zeta]],2 (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (R^(0,1,1))[\[Rho],\[Theta],\[Zeta]]+2 (R^(0,1,0))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,1))[\[Rho],\[Theta],\[Zeta]]+(R^(0,2,0))[\[Rho],\[Theta],\[Zeta]]+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (R^(0,2,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(0,2,0))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] ((1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]^2-(W^(0,2,1))[\[Rho],\[Theta],\[Zeta]]),(Z^(0,2,1))[\[Rho],\[Theta],\[Zeta]]}
{-(1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]])^2 (R^(0,1,0))[\[Rho],\[Theta],\[Zeta]]-2 (R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (W^(0,0,2))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]-2 R[\[Rho],\[Theta],\[Zeta]] (W^(0,1,1))[\[Rho],\[Theta],\[Zeta]]-2 R[\[Rho],\[Theta],\[Zeta]] (W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,1))[\[Rho],\[Theta],\[Zeta]]+(R^(0,1,2))[\[Rho],\[Theta],\[Zeta]],(W^(0,0,2))[\[Rho],\[Theta],\[Zeta]] (R^(0,1,0))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,2))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]+2 (R^(0,1,1))[\[Rho],\[Theta],\[Zeta]]+2 (W^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (R^(0,1,1))[\[Rho],\[Theta],\[Zeta]]+2 (R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(0,1,1))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] ((1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]])^2 (W^(0,1,0))[\[Rho],\[Theta],\[Zeta]]-(W^(0,1,2))[\[Rho],\[Theta],\[Zeta]]),(Z^(0,1,2))[\[Rho],\[Theta],\[Zeta]]}
{-3 (R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]])^2-3 R[\[Rho],\[Theta],\[Zeta]] (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (W^(0,0,2))[\[Rho],\[Theta],\[Zeta]]+(R^(0,0,3))[\[Rho],\[Theta],\[Zeta]],3 (1+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]) (R^(0,0,2))[\[Rho],\[Theta],\[Zeta]]+3 (R^(0,0,1))[\[Rho],\[Theta],\[Zeta]] (W^(0,0,2))[\[Rho],\[Theta],\[Zeta]]-R[\[Rho],\[Theta],\[Zeta]] (1+3 (W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]+3 (W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]^2+(W^(0,0,1))[\[Rho],\[Theta],\[Zeta]]^3-(W^(0,0,3))[\[Rho],\[Theta],\[Zeta]]),(Z^(0,0,3))[\[Rho],\[Theta],\[Zeta]]}
from mathematica > derivatives_labels.txt
0,0,0 Simplify[projVec[erho]]
1,0,0 Simplify[projVec[etheta]]
2,0,0 Simplify[projVec[ezeta]]
0,1,0 Simplify[projVec[D[erho,\[Rho]]]]
0,2,0 Simplify[projVec[D[erho,\[Theta]]]]
0,3,0 Simplify[projVec[D[erho,\[Zeta]]]]
0,1,1 Simplify[projVec[D[erho,\[Rho],\[Rho]]]]
0,1,2 Simplify[projVec[D[erho,\[Rho],\[Theta]]]]
0,1,3 Simplify[projVec[D[erho,\[Rho],\[Zeta]]]]
0,2,2 Simplify[projVec[D[erho,\[Theta],\[Theta]]]]
0,2,3 Simplify[projVec[D[erho,\[Theta],\[Zeta]]]]
0,3,3 Simplify[projVec[D[erho,\[Zeta],\[Zeta]]]]
1,1,0 Simplify[projVec[D[etheta,\[Rho]]]]
1,2,0 Simplify[projVec[D[etheta,\[Theta]]]]
1,3,0 Simplify[projVec[D[etheta,\[Zeta]]]]
1,1,1 Simplify[projVec[D[etheta,\[Rho],\[Rho]]]]
1,1,2 Simplify[projVec[D[etheta,\[Rho],\[Theta]]]]
1,1,3 Simplify[projVec[D[etheta,\[Rho],\[Zeta]]]]
1,2,2 Simplify[projVec[D[etheta,\[Theta],\[Theta]]]]
1,2,3 Simplify[projVec[D[etheta,\[Theta],\[Zeta]]]]
1,3,3 Simplify[projVec[D[etheta,\[Zeta],\[Zeta]]]]
2,1,0 Simplify[projVec[D[ezeta,\[Rho]]]]
2,2,0 Simplify[projVec[D[ezeta,\[Theta]]]]
2,3,0 Simplify[projVec[D[ezeta,\[Zeta]]]]
2,1,1 Simplify[projVec[D[ezeta,\[Rho],\[Rho]]]]
2,1,2 Simplify[projVec[D[ezeta,\[Rho],\[Theta]]]]
2,1,3 Simplify[projVec[D[ezeta,\[Rho],\[Zeta]]]]
2,2,2 Simplify[projVec[D[ezeta,\[Theta],\[Theta]]]]
2,2,3 Simplify[projVec[D[ezeta,\[Theta],\[Zeta]]]]
2,3,3 Simplify[projVec[D[ezeta,\[Zeta],\[Zeta]]]]
In python for parsing and code generation:
import re
f = open("../derivatives.txt")
lines = f.readlines()
f = open("../derivatives_labels.txt")
labels = f.readlines()
assert len(lines) == len(labels)
def txt_to_desc(s):
X, d = s.split("^")
X = X.replace("(", "").replace(")", "")
d = d.replace("(", "").replace(")", "").replace(",", "")
s = X + "_" + "r"*int(d[0]) + "t"*int(d[1]) +"z"*int(d[2])
out = """data["{}"]""".format(s)
return out
slines = []
pattern = "\([A-Z]\^\([0-9]\,[0-9]\,[0-9]\)\)"
for line in lines:
s = line.replace("}", "").replace("{", "").replace("[\\[Rho],\\[Theta],\\[Zeta]]", "").replace(" ", "*").replace("\n", "")
matches = re.findall(pattern, s)
for m in matches:
s = s.replace(m, txt_to_desc(m))
s = s.replace("R*", """data["R"]*""")
s = "jnp.array([" + s + "]).T"
s = s.replace("^", "**")
s = s.replace("W", "omega")
slines += [s]
lab = ["rho", "theta", "zeta"]
tex = [""] + ["""{\\\\""" + foo + "}" for foo in lab]
cha = ["", "r", "t", "z"]
des = ["", "radial", "poloidal", "toroidal"]
Des = ["", "Radial", "Poloidal", "Toroidal"]
cnt = 0
for k, line in enumerate(labels):
l = int(line[0])
i = int(line[2])
j = int(line[4])
name = f"e_{lab[l]}"
if i>0:
name += f"_{cha[i]}{cha[j]}"
# elif i>0 and j==0:
# name += f"_{cha[i-1]}"
label = r"\\mathbf{e}_" + f"{tex[l+1]}"
if i>0:
label = f"\\\partial_{tex[i]}{tex[j]} " + label
description = f"Covariant {Des[l+1]} basis vector"
if i>0 and j>0:
description += f", second derivative wrt {des[i]} and {des[j]} coordinates"
elif i>0 and j==0:
description += f", derivative wrt {des[i]} coordinate"
s = (
f"""
@register_compute_fun(
name="{name}",
label="{label}",
units="m",
units_long="meters",
description="{description}",
dim=3,
params=[],
transforms={{}},
profiles=[],
coordinates="rtz",
"""
)
src=(
f"""
def _e_sub_{lab[l]}_{cha[i]}{cha[j]}(params, transforms, profiles, data, **kwargs):
data["{name}"] = {slines[k]}
return data
"""
)
pattern = r"data\[(.*?)\]"
variables = re.findall(pattern, src)
variables = [s.replace("'", "").replace('"', "") for s in variables]
variables = sorted(list(set(variables[1:])))
s += f"data={variables}\n)"
print(s+src)
cnt += 1
@unalmis check what is done and check boxes
I marked the two I knew were done and added couple
This has come up several times now, and would be very useful for dealing with strongly shaped axes, racetrack/figure8 type shapes etc.
The main things to do:
Equilibrium.to_sfl
to specify which SFL coordinates