################ (2023) Dr.W.G. Lindner, Leichlingen DE ### tensorBox Tensor box ################ for calculations with tensors -- KRONECKER delta function d(i,j) delta(i,j) = test( i=j, 1, 0) - KRONECKER delta 2-tensor dij deltaij = zero(2,2) deltaij[1,1] = 1 deltaij[2,2] = 1 -- 2D permutation tensor als FUNCTION Eij(i,j) = j-i Eij(1,2) Eij(1,1) -- 2D permutation tensor eij as TABLE eij = zero(2,2) for(i,1,2, for(j,1,2, eij[i,j]=j-i )) -- 3D permutation tensor as FUNCTION Eijk(i,j,k) = test( or( (i,j,k)==(1,2,3), (i,j,k)==(2,3,1), (i,j,k)==(3,1,2)), +1, or( (i,j,k)==(3,2,1), (i,j,k)==(1,3,2), (i,j,k)==(2,1,3)), -1, or( i==j, j==k, k==i), 0 ) -- 3D permutation tensor as TABLE eijk = zero(3,3,3) eijk[1,2,3] = 1 eijk[2,3,1] = 1 eijk[3,1,2] = 1 eijk[3,2,1] = -1 eijk[1,3,2] = -1 eijk[2,1,3] = -1 -- 4D permutation tensor as FUNCTION Eijkl(i,j,k,l) = (i-j)*(i-k)*(i-l)*(j-k)*(j-l)*(k-l)/12 -- 4D permutation tensor as TABLE eijkl=zero(4,4,4,4) for(i,1,4, for(j,1,4, for(k,1,4, for(l,1,4, eijkl[i,j,k,l] = (i-j)*(i-k)*(i-l)*(j-k)*(j-l)*(k-l)/12 ) ))) -- metric tensor g in 2D, an example gdd = zero(2,2) gdd[1,1]= 4 gdd[1,2]= 1 gdd[2,1]= 1 gdd[2,2]= 1 -- inverse guu to gdd guu = inv(gdd) -- volume element Z = det(gdd) V = sqrt(Z) -- LEVI-CIVITA tensor epsilon in 2D epsilon = V * eij Epsilon = 1/V * eij -- 2D/3D/nD CHRISTOFFEL tensor 2nd kind -- specify dimension n = 2,3,.. n=3 Gamma=zero(n,n,n) for( k,1,n, for( l,1,n, for( m,1,n, Gamma[k,l,m] = sum(i,1,2, guu[k,i]/2 * ( d(gdd[m,i],X[l]) + d(gdd[l,i],X[m]) - d(gdd[m,l],X[i]) ) ))))