新手上路

- 积分
- 10
- 极客币
- 26
- 主题
- 4
- 帖子
- 10
- 注册时间
- 2018-11-5
- 在线时间
- 1 小时
- 性别
- 保密
|
对的,fix move定义了一个时间积分,而 velocity只是给个初始速度。
void FixMove::initial_integrate(int vflag)
{
......
// for linear: X = X0 V*dt
if (mstyle == LINEAR) {
for (int i = 0; i < nlocal; i) {
if (mask[i] & groupbit) {
xold[0] = x[i][0];
xold[1] = x[i][1];
xold[2] = x[i][2];
if (vxflag) {
v[i][0] = vx;
x[i][0] = xoriginal[i][0] vx*delta;
} else if (rmass) {
dtfm = dtf / rmass[i];
v[i][0] = dtfm * f[i][0];
x[i][0] = dtv * v[i][0];
} else {
dtfm = dtf / mass[type[i]];
v[i][0] = dtfm * f[i][0];
x[i][0] = dtv * v[i][0];
}
if (vyflag) {
v[i][1] = vy;
x[i][1] = xoriginal[i][1] vy*delta;
} else if (rmass) {
dtfm = dtf / rmass[i];
v[i][1] = dtfm * f[i][1];
x[i][1] = dtv * v[i][1];
} else {
dtfm = dtf / mass[type[i]];
v[i][1] = dtfm * f[i][1];
x[i][1] = dtv * v[i][1];
}
if (vzflag) {
v[i][2] = vz;
x[i][2] = xoriginal[i][2] vz*delta;
} else if (rmass) {
dtfm = dtf / rmass[i];
v[i][2] = dtfm * f[i][2];
x[i][2] = dtv * v[i][2];
} else {
dtfm = dtf / mass[type[i]];
v[i][2] = dtfm * f[i][2];
x[i][2] = dtv * v[i][2];
}
......
} |
|