材料硬度的局部控制
Rig-Space Physics论文中,提到了一种控制模型硬度的方法。
此方法的关键是找到一种途径,缩放每个四面体元素的硬度。
最直接的思路是,把某个位移下,参数空间的恢复力表示成四面体元素硬度的函数。这样,让某个恢复力增大k倍,再反求出此时四面体元素的硬度。
但是有一个问题,那就是多数本构模型都是非线性的,函数关系十分复杂,基本上不可能求解。
(似乎不一定,因为恢复力是位移的非线性函数,但一般来说是硬度的线性函数)
论文的解决办法是,考虑恢复力的导数。因为若恢复力增大k倍,则恢复力对位移的导数必然也增大k倍。而某点恢复力的导数是可以用矩阵表示的(T = tangent stiffness matrix),矩阵的每个元素都是四面体元素硬度加权和。
参数空间的恢复力导数Hp = J^T * T(e1,...en) * J,
现在令 S * Hp = Hp' = J^T * T(e1,...en) * J, 解出元素硬度 e1...en即可。
当前的实现方法可以是有两种:
1.先计算参数的不同取值下的几组 tangent stiffness matrix,再换算出参数空间的恢复力导数,想办法把恢复力导数表示成元素硬度的线性函数,最后解方程。
2.改为计算参数的不同取值下每个元素对其顶点产生的恢复力,分别存起来,再换算成参数空间的恢复力,把参数空间恢复力表示成元素硬度的线性函数,最后解方程。
另一个要考虑的是解方程的方法。论文中用的是二次规划,倍数都加上正数约束,同时最小化的函数加上一项 Σ (μ-1)^2。具体方法有待研究。