1 public class Particle {
3 public float xcoord, ycoord, zcoord;
4 public float xvelocity,yvelocity,zvelocity;
7 //float [][][] sh_force2;
10 public Particle(float xcoord, float ycoord, float zcoord, float xvelocity,
11 float yvelocity,float zvelocity,/*float [][] sh_force,
12 float [][][] sh_force2, int id, */MD m) {
17 this.xvelocity = xvelocity;
18 this.yvelocity = yvelocity;
19 this.zvelocity = zvelocity;
20 //this.sh_force = sh_force;
21 //this.sh_force2 = sh_force2;
26 public void domove(float side,int part_id) {
27 xcoord = xcoord + xvelocity + this.md.sh_force[0][part_id];
28 ycoord = ycoord + yvelocity + this.md.sh_force[1][part_id];
29 zcoord = zcoord + zvelocity + this.md.sh_force[2][part_id];
31 if(xcoord < 0) { xcoord = xcoord + side; }
32 if(xcoord > side) { xcoord = xcoord - side; }
33 if(ycoord < 0) { ycoord = ycoord + side; }
34 if(ycoord > side) { ycoord = ycoord - side; }
35 if(zcoord < 0) { zcoord = zcoord + side; }
36 if(zcoord > side) { zcoord = zcoord - side; }
38 xvelocity = xvelocity + this.md.sh_force[0][part_id];
39 yvelocity = yvelocity + this.md.sh_force[1][part_id];
40 zvelocity = zvelocity + this.md.sh_force[2][part_id];
41 //System.printI(0xc0);
44 public void force(float side, float rcoff,int mdsize,int x, MDRunner runner) {
49 float rd,rrd,rrd2,rrd3,rrd4,rrd6,rrd7,r148;
50 float forcex,forcey,forcez;
54 sideh = (float)0.5*side;
60 //System.printString("here 111: " + runner.id + "\n");
61 for (int i=x+1;i<mdsize;i++) {
62 xx = this.xcoord - this.md.one[i].xcoord;
63 yy = this.ycoord - this.md.one[i].ycoord;
64 zz = this.zcoord - this.md.one[i].zcoord;
66 if(xx < (-sideh)) { xx = xx + side; }
67 if(xx > (sideh)) { xx = xx - side; }
68 if(yy < (-sideh)) { yy = yy + side; }
69 if(yy > (sideh)) { yy = yy - side; }
70 if(zz < (-sideh)) { zz = zz + side; }
71 if(zz > (sideh)) { zz = zz - side; }
74 rd = xx*xx + yy*yy + zz*zz;
83 runner.epot = runner.epot + (rrd6 - rrd3);
84 r148 = rrd7 - (float)0.5*rrd4;
85 runner.vir = runner.vir - rd*r148;
89 runner.sh_force2[0][i] = runner.sh_force2[0][i] - forcex;
94 runner.sh_force2[1][i] = runner.sh_force2[1][i] - forcey;
99 runner.sh_force2[2][i] = runner.sh_force2[2][i] - forcez;
101 //this.md.interacts[id]++;
105 //System.printString("here 222: " + runner.id + "\n");
106 runner.sh_force2[0][x] = runner.sh_force2[0][x] + fxi;
107 runner.sh_force2[1][x] = runner.sh_force2[1][x] + fyi;
108 runner.sh_force2[2][x] = runner.sh_force2[2][x] + fzi;
109 //System.printString("here 333: " + runner.id + "\n");
112 public float mkekin(float hsq2,int part_id) {
113 float sumt = (float)0.0;
115 xvelocity = xvelocity + this.md.sh_force[0][part_id];
116 yvelocity = yvelocity + this.md.sh_force[1][part_id];
117 zvelocity = zvelocity + this.md.sh_force[2][part_id];
119 sumt = (xvelocity*xvelocity)+(yvelocity*yvelocity)+(zvelocity*zvelocity);
123 public float velavg(float vaverh,float h) {
127 sq = Math.sqrtf(xvelocity*xvelocity + yvelocity*yvelocity + zvelocity*zvelocity);
133 public void dscal(float sc,int incx) {
134 xvelocity = xvelocity * sc;
135 yvelocity = yvelocity * sc;
136 zvelocity = zvelocity * sc;