Re: Curl

*To*: mathgroup at smc.vnet.net*Subject*: [mg30470] Re: Curl*From*: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>*Date*: Thu, 23 Aug 2001 02:15:34 -0400 (EDT)*Organization*: Universitaet Leipzig*References*: <9lvh0j$4o5$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Hi, curl include a cross product. The cross product is written with the epsilon[] tensor, Sum[epsilon[i,j,k] D[f[j],x[k]],j,k] The epsilon tensor is 1 for an even permutation of {i,j,k} and -1 for an odd permutation of {i,j,k} and zero otherwise. In three dimensions this gives just a three dimensional vector. In higher dimensions you get tensors of higher rank. In Mathematica you can define epsilon[index__Integer] := Signature[{index}] dpos[i_, n_] := Table[If[k == i, 1, 0], {k, n}] CurlN[f_, x_, n_Integer] := Module[{index, run}, index = {Sequence @@ Table[Unique[], {n - 2}], j, k}; run = {#, n} & /@ Drop[index, -2]; Table[ Sum[epsilon[Sequence @@ index]Derivative[f[j]][Sequence @@ dpos[k, n]][ x], {j, n}, {k, n}], Evaluate[Sequence @@ run]] ] that gives for n=3 the usual curl but for higher dimensions n you get a tensor of rank n-2. Regards Jens Carlo Gabrieli wrote: > > Hi, > I found on Roman Maeder "Computer Science with Mathematica" elegant > implementations of Grad, Div, Laplacian, Jacobian but not of Curl. I > know that the Mathematica package VectorAnalysis has a Curl function > but I'd like to learn how to implement a Curl function for an > arbitrary number of Cartesian coordinates > > Thanks in advance to all > Best Regards > Carlo Gabrieli