
We have seen last time that describing many particles moving on a manifold is best done by keeping on each cell a tag telling how many particles there are there. In other words, we do not evolve a sequence of maps but a divisor
. This is more effective if we deal with lots of particles.
The free geodesic flow is a permutation on the frame bundle , where
is the set of facets. Now, if we have a divisor
which evolves in time. If we want to have a model with interaction, we need to decide what to do on each
. Take the sum of all divisor values
at a position x, then use this number to decide how the particles on this cell
evolve. This needs to be simple and natural. The most obvious thing is to take a completely multiplicative function
and have
decide how the dynamics on this cell works. Why multiplicative functions? Because primes in division algebras have affinities to particles. I will talk more about the quaternion case next week. It is nice for example that every Baryon or Meson has a Lipschitz prime quark there, so that it still makes sense to talk about divisors (quaternion primes are either Lipschitz primes a+ib+jc+kd or then Hurwitz primes a+ib+jc+kd +(1,1,1,1)/2 and in the later case we would not have a particle association (what is a half particle?) In any case, we can also in the quaternion division algebra see particles evolve; but now, the Baryons and Mesons can decay and combine. Also, Leptons and Hadrons can interact. It is this number theoretical “allegory” which made us choose a multiplicative function for interaction.
The most natural completely multiplicative number theoretical function that also works on the Gaussian integers and Quaternion integers is the Liouville function , where
counts the number of primes in x. The quaternion integers do not form a unique factorization domain but almost do by the Conway-Smith theorem. The number of primes in x is unambiguous. We can now use
on how to turn the geodesic evolution on the cell x. The simplest way is to have every particle which has position
to evolve with the same rule depending on how many particles there are at x.
Here is the code which generated the animation above. There is a flag “free” if set True will have the particles not interact. The first few seconds of the clip shows the non-interacting case, where each particle moves on a geodesic. In the second case, the particles interact with the Liouville interaction rule.
free=True;d=0.3;M=100; Q=Table[0,{M},{M}];
P:=Table[If[Random[]<d && (k-M/2)^2+(l-M/2)^2<10,Random[Integer,1000],0],{k,M},{l,M}];
A123=P;A132=P;A213=P;A231=P;A312=P;A321=P; B123=P;B132=P;B213=P;B231=P;B312=P;B321=P;
AAAA=A123+A132+A213+A231+A312+A321;BBBB=B123+B132+B213+B231+B312+B321;
TX[A_]:=Transpose[RotateLeft[ Transpose[A]]];TY[A_]:=RotateLeft[ A];
SX[A_]:=Transpose[RotateRight[Transpose[A]]];SY[A_]:=RotateRight[A];
f[A_]:=Table[a=A[[i,j]];If[a==0,0,(LiouvilleLambda[a]+1)/2],{i,M},{j,M}];
DoIt:=Block[{},MA=f[AAAA];NA=(1-Q)-MA;MB=f[BBBB];NB=(1-Q)-MB;If[free,MA=1-Q;NA=Q;MB=1-Q;NB=Q];
C123=TY[MB*B213];C231=SX[MB*B321];C312=MB*B132;C213=SX[MB*B231];C321=MB*B312;C132=TY[MB*B123];
XB123=TX[MA*A132];XB231=MA*A213;XB312=SY[MA*A321];XB213=MA*A123;XB321=SY[MA*A231];XB132=TX[MA*A312];
XA123=C123;XA132=C132;XA213=C213;XA231=C231;XA312=C312;XA321=C321;
C123=TY[NB*B132];C231=SX[NB*B213];C312=NB*B321;C213=SX[NB*B312];C321=NB*B123;C132=TY[NB*B231];
YB123=TX[NA*A321];YB231=NA*A132;YB312=SY[NA*A213];YB213=NA*A231;YB321=SY[NA*A312];YB132=TX[NA*A123];
YA123=C123;YA132=C132;YA213=C213;YA231=C231;YA312=C312;YA321=C321;
A123=XA123+YA123;A132=XA132+YA132;A213=XA213+YA213;A231=XA231+YA231;A312=XA312+YA312;A321=XA321+YA321;
B123=XB123+YB123;B132=XB132+YB132;B213=XB213+YB213;B231=XB231+YB231;B312=XB312+YB312;B321=XB321+YB321;
AAAA=A123+A132+A213+A231+A312+A321;BBBB=B123+B132+B213+B231+B312+B321;]
DynamicModule[{},Dynamic[DoIt;MatrixPlot[AAAA+BBBB,ImageSize->1000]]]