Dimensional analysis and reciprocal space...

unitA3 = {a0 L^3, {ax L^2, ay L^2, az L^2}, {ayz L, azx L, axy L}, ai } ;   unitB3 ... y L}, bi  } ; (* try vectors in L, bivectors normalized by unit volume like byz/L^3 *)

unitA3 = {a0 L^3, {ax L^2, ay L^2, az L^2}, {ayz L, azx L, axy L}, ai }/L^3 ;   un ... L^3 ; (* imagine vectors in L & bivectors normalized by volume like byz/L^3, in L^3 space *)

unitA3 = {a0, {ax M, ay M, az M}, {ayz/M^2 M^2, azx/M^2 M^2, axy/M^2 M^2}, ai/M^2 M^3} ; &nb ... nbsp; } ; (* imagine vectors in meters, bivectors normalized by unit volume like byz/M^2 *)

unitB3//MatrixForm

( {{b0}, {{bx/L, by/L, bz/L}}, {{byz/L^2, bzx/L^2, bxy/L^2}}, {bi/L^3}} )

Add2[unitA3, unitB3]//MatrixForm

( {{a0 + b0}, {{ax/L + bx/L, ay/L + by/L, az/L + bz/L}}, {{ayz/L^2 + byz/L^2, azx/L^2 + bzx/L^2, axy/L^2 + bxy/L^2}}, {ai/L^3 + bi/L^3}} )

Simplify[Mul3[unitA3, unitB3]]//MatrixForm (* now multivector multiplication mixes areas with scalars in even order, but otherwise works ... *)

( {{(-ai bi + L^2 (-axy bxy - ayz byz - azx bzx + ax bx L^2 + ay by L^2 + az bz L^2  ... 2)/L^4}}, {(ai b0 + a0 bi + ayz bx + az bxy + azx by + ax byz + axy bz + ay bzx)/L^3}} )

(* from direct non - orthogonal bases avec and bvec, one can then construct a reciprocal basis as follows ... *)

vCell = Simplify[DotPr3[a3v, Wedge3[b3v, c3v]][[4]]]

-az by cx + ay bz cx + az bx cy - ax bz cy - ay bx cz + ax by cz

Simplify[Wedge3[b3v, c3v]/vCell]//MatrixForm(* new reciprocal basis vector a^* = (i3 a)/a . bxc *)

( {{0}, {{0, 0, 0}}, {{(bz cy - by cz)/(az by cx - ay bz cx - az bx cy + ax bz cy +  ...  cx - bx cy)/(az by cx - ay bz cx - az bx cy + ax bz cy + ay bx cz - ax by cz)}}, {0}} )

Simplify[Wedge3[c3v, a3v]/vCell]//MatrixForm(* new reciprocal basis vector b^* = (i3 b)/a . bxc *)

( {{0}, {{0, 0, 0}}, {{(az cy - ay cz)/(-az by cx + ay bz cx + az bx cy - ax bz cy - ... cx - ax cy)/(-az by cx + ay bz cx + az bx cy - ax bz cy - ay bx cz + ax by cz)}}, {0}} )

Simplify[Wedge3[a3v, b3v]/vCell]//MatrixForm(* new reciprocal basis vector c^* = (i3 c)/a . bxc *)

( {{0}, {{0, 0, 0}}, {{(az by - ay bz)/(az by cx - ay bz cx - az bx cy + ax bz cy +  ...  bx - ax by)/(az by cx - ay bz cx - az bx cy + ax bz cy + ay bx cz - ax by cz)}}, {0}} )


Created by Mathematica  (April 17, 2005) Valid XHTML 1.1!