In[]:=
CHSEvolution[Catenate[Table[<|"Position"->{1+2i,15-2j},"Velocity"->{1.5,-1.5},"Mass"->1|>,{i,4},{j,4}]],15,20,30]
Out[]=
CHSEventData[init_,bound_,resolution_,maxTime_,maxStep_:1000]
Module[{num=15,boxSize=5,rad=1,InitPos},(*Ensureinitialpositionsarenotoverlappingbyrunningashortsimulationfirst.*)(*Runasimulationandextractthecausalgraph*)ResourceFunction["HardSphereSimulation"][<|"Positions"->InitPos,"Velocities"->RandomPoint[Ball[{0,0},1],num],"BoxRadius"->boxSize,"ParticleRadius"->rad,"Steps"->100,"dt"->0.1,"BoundaryCondition"->"Reflecting","Output"->"CausalGraph"|>]//Graph[#,VertexLabels->None]&]
In[]:=
Graph[ResourceFunction["HardSphereSimulation"][Association[{"Positions"->Catenate@Table[{-14+2.5i,14-2.5j},{i,4},{j,4}],"Velocities"->Table[.5{1,-1},16],"BoundaryCondition"->"Reflecting","BoxRadius"->15,"dt"->0.1,"ParticleRadius"->1,"Steps"->2000,"Output"->"CausalGraph"}]],VertexLabels->None]
Out[]=
In[]:=
ResourceFunction["HardSphereSimulation"][Association[{"Positions"->Catenate@Table[{-14+2.5i,14-2.5j},{i,4},{j,4}],"Velocities"->Table[.5{1,-1},16],"BoundaryCondition"->"Reflecting","BoxRadius"->15,"dt"->0.1,"ParticleRadius"->1,"Steps"->2000,"Output"->"CausalGraph"}]]
Out[]=
In[]:=
Graph[ResourceFunction["HardSphereSimulation"][Association[{"Positions"->Catenate@Table[{-14+2.5i,14-2.5j},{i,4},{j,4}],"Velocities"->Table[.5{1,-1},16],"BoundaryCondition"->"Reflecting","BoxRadius"->15,"dt"->0.1,"ParticleRadius"->1,"Steps"->2000,"Output"->"CausalGraph"}]],VertexLabels->None,GraphLayout->"LayeredDigraphEmbedding"]
Out[]=
In[]:=
ResourceFunction["HardSphereSimulation"][Association[{"Positions"->Catenate@Table[{-14+2.5i,14-2.5j},{i,4},{j,4}],"Velocities"->Table[.5{1,-1},16],"BoundaryCondition"->"Reflecting","BoxRadius"->30,"dt"->0.1,"ParticleRadius"->1,"Steps"->2000,"Output"->"CausalGraph"}]]
CA case
CA case