# | Line 10 | Line 10 | GhostBend::GhostBend( Atom &a, Atom &b ){ | |
---|---|---|
10 | ||
11 | ||
12 | GhostBend::GhostBend( Atom &a, Atom &b ){ | |
13 | < | |
13 | > | |
14 | c_p_a = &a; | |
15 | ||
16 | if( !b.isDirectional() ){ | |
# | Line 48 | Line 48 | void GhostBend::calc_forces(){ | |
48 | double daxi, dayi, dazi, daxk, dayk, dazk, daxj, dayj, dazj; | |
49 | double u[3]; | |
50 | ||
51 | < | dx = c_p_a->getX() - atomB->getX(); |
52 | < | dy = c_p_a->getY() - atomB->getY(); |
53 | < | dz = c_p_a->getZ() - atomB->getZ(); |
54 | < | |
51 | > | double aR[3], bR[3]; |
52 | > | double aF[3], bF[3], bTrq[3]; |
53 | > | |
54 | > | c_p_a->getPos( aR ); |
55 | > | atomB->getPos( bR ); |
56 | > | |
57 | > | |
58 | > | dx = aR[0] - bR[0]; |
59 | > | dy = aR[1] - bR[1]; |
60 | > | dz = aR[2] - bR[2]; |
61 | > | |
62 | atomB->getU(u); | |
63 | ||
64 | gx = u[0]; | |
# | Line 126 | Line 133 | void GhostBend::calc_forces(){ | |
133 | dayj = -dayi - dayk; | |
134 | dazj = -dazi - dazk; | |
135 | ||
136 | < | c_p_a->addFx(daxi); |
137 | < | c_p_a->addFy(dayi); |
138 | < | c_p_a->addFz(dazi); |
136 | > | aF[0] = daxi; |
137 | > | aF[1] = dayi; |
138 | > | aF[2] = dazi; |
139 | ||
140 | < | atomB->addFx(daxj + daxk); |
141 | < | atomB->addFy(dayj + dayk); |
142 | < | atomB->addFz(dazj + dazk); |
140 | > | bF[0] = daxj + daxk; |
141 | > | bF[1] = dayj + dayk; |
142 | > | bF[2] = dazj + dazk; |
143 | ||
144 | < | atomB->addTx(gy*dazk - gz*dayk); |
145 | < | atomB->addTy(gz*daxk - gx*dazk); |
146 | < | atomB->addTz(gx*dayk - gy*daxk); |
147 | < | |
144 | > | bTrq[0] = gy*dazk - gz*dayk; |
145 | > | bTrq[1] = gz*daxk - gx*dazk; |
146 | > | bTrq[2] = gx*dayk - gy*daxk; |
147 | > | |
148 | > | |
149 | > | c_p_a->addFrc( aF ); |
150 | > | atomB->addFrc( bF ); |
151 | > | atomB->addTrq( bTrq ); |
152 | > | |
153 | return; | |
154 | } | |
155 |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |