Dimensional analysis and reciprocal space...

The simplest reciprocal space formula is gd=λL, where d is a vector and g is a bivector

unitA = {a0  L^2, {ax  L, ay L }, axy } ;   unitB = {b0 L^2 ,  ... sp; } ; (* try scalars dimensionless, vectors in L, bivectors bxy in L^2 in an L^2 space *)

unitA = {a0 , {ax/L , ay/L }, axy/L^2 } ;   unitB = {b0 , {bx/L , by/L }, bxy/L^2 } ; (* try scalars dimensionless, vectors bx in L, bivectors bxy/L^2in a dimensionless space*)

unitA = {a0/L , {ax/L^2 , ay/L^2 }, axy/L^3 } ;   unitB = {b0/L , {bx/L^2 , by/L^2 }, bxy/L^3 } ; (* try scalars dimensionless, vectors bx in L, bivectors bxy/L^3 in a 1/L space*)

unitA//MatrixForm

( {{a0 L^2}, {{ax L, ay L}}, {axy}} )

Add2[unitA, unitB]//MatrixForm

( {{a0 L^2 + b0 L^2}, {{ax L + bx L, ay L + by L}}, {axy + bxy}} )

Mul2[unitA, unitB]//MatrixForm (* thus multivector multiplication seems dimensionally deviant ... *)

( {{-axy bxy + ax bx L^2 + ay by L^2 + a0 b0 L^4}, {{-ay bxy L + axy by L + ax b0 L^ ... ax bxy L + ay b0 L^3 + a0 by L^3}}, {axy b0 L^2 - ay bx L^2 + a0 bxy L^2 + ax by L^2}} )

unitA = {a0, {ax M, ay M}, axy/M^2M^2} ;   unitB = {b0, {bx M, by M}, bxy/M^2 M^2} ; (* ... unless we use vectors in meters with bivectors normalized by unit area like bxy/L^2 *)

unitA//MatrixForm

( {{a0}, {{ax M, ay M}}, {axy}} )

Add2[unitA, unitB]//MatrixForm

( {{a0 + b0}, {{ax M + bx M, ay M + by M}}, {axy + bxy}} )

Mul2[unitA, unitB]//MatrixForm (* now multivector multiplication mixes areas with scalars in even order, but otherwise works ... *)

( {{a0 b0 - axy bxy + ax bx M^2 + ay by M^2}, {{ax b0 M + a0 bx M - ay bxy M + axy by M, ay b0 M - axy bx M + ax bxy M + a0 by M}}, {axy b0 + a0 bxy - ay bx M^2 + ax by M^2}} )

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

aCell = Simplify[DotPr2[avec, bvec][[1]]]

ax bx + ay by

Simplify[Mul2[{0, {0, 0}, 1}, avec]/aCell]//MatrixForm (* new reciprocal basis vector a^* = (i2 a)/a . b *)

( {{0}, {{ay/(ax bx + ay by), -ax/(ax bx + ay by)}}, {0}} )

Simplify[Mul2[{0, {0, 0}, 1}, bvec]/aCell]//MatrixForm (* new reciprocal basis vector b^* = (i2 b)/a . b *)

( {{0}, {{by/(ax bx + ay by), -bx/(ax bx + ay by)}}, {0}} )


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