8.2 颗粒位置的更新¶
得到某颗粒在时刻 \(t\) 所受合力后,就可以更新颗粒的位置和角速度 。根据牛顿第二运动定律有:
其中,\(\vec{a_t}\) 和 \(\eta_t\) 分别表示颗粒在时刻 \(t\) 的平动加速度和角加速度, \(\vec{F_t}\) 和 \(M_t\) 分别为颗粒在该时刻的合力和合力矩,\(m\) 和 \(I\) 分别为颗粒的质量和惯性矩。
假设已知某颗粒在 \(\eta_t\) 时的位置 \(\vec{P_t}\) 和 \(t-\bigtriangleup{t}\) 平动加速度 \(\overrightarrow{v_{t-\bigtriangleup{t}/2}}\) 时的平动速度,则按照跳蛙法有,
其中,\(\bigtriangleup{t}\) 为一个时步。
首先,得到颗粒在 \(t+\bigtriangleup{t}/2\) 时的速度 \(\overrightarrow{v_{t+\bigtriangleup{t}/2}}\) ,再得到颗粒在 \(t+\bigtriangleup{t}\) 时的位置 \(\overrightarrow{v_{t+\bigtriangleup{t}/2}}\)。之后,由相应的接触力学模型计算颗粒间的接触力,得到 \(t+\bigtriangleup{t}\) 时颗粒所受合力,通过牛顿第二运动定律求得 \(t+\bigtriangleup{t}\) 的颗粒的平动加速度,就可以更新颗粒 \(t+\bigtriangleup{t}\) 时的位置,这样一直迭代循环下去,直到计算结束。
同理,假设某颗粒在 \(t\) 时的角度为 \(\theta_{t}\) 和角加速度为 \(\eta_t\) ,\(t-\bigtriangleup{t}/2\) 时的角速度为 \(\omega_{t-\bigtriangleup{t}/2}\) ,则按照跳蛙法有,
在接触力学模型部分, 颗粒所受切向力一般由位移增量(颗粒在接触点处的相对速度 \(\times\bigtriangleup{t}\) )计算得到,不需要颗粒的角度值。如果没有其它特殊需要,可以不更新颗粒的角度,只更新颗粒的角速度即可。