码迷,mamicode.com
首页 > 其他好文 > 详细

11月20日

时间:2015-01-20 15:28:59      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

11月20日

ImplicitBackwardEulerSparse::DoTimestep的

总步骤:

1 通过当前的位移,计算出内力和刚度矩阵

2 用刚度矩阵和质量矩阵构造阻尼矩阵

3 用求解器解出qdelta,就是下一步的速度增量(为什么?求解器的矩阵在哪里更新?

    求解器实际上求解 tangentStiffnessMatrix * qdelta = bufferConstrained

    于是关键在于知道 tangentStiffnessMatrix是什么

4  qvel[i] += qdelta[i],q[i] += q_1[i] - q[i] + timestep * qvel[i];

5 重新把约束了的变量的q qvel qacc(分别代表广义坐标、速度、加速度)设为0


当前问题:

什么是tangent stiffness matrix?各种矩阵的构造方法是什么?

隐式欧拉积分器的具体做法是什么?

内力的计算方法是什么?


计算出内力和刚度矩阵调用层次结构

ImplicitBackwardEulerSparse::DoTimestep

      CorotationalLinearFEMForceModel::GetForceAndMatrix

      (double * u, double * internalForces, SparseMatrix * tangentStiffnessMatrix)

             CorotationalLinearFEM::ComputeForceAndStiffnessMatrix

             (double * u, double * f, SparseMatrix * stiffnessMatrix, int warp)



为什么刚度矩阵需要实时生成?


CorotationalLinearFEM::ComputeForceAndStiffnessMatrixOfSubmesh

试图根据偏移u求出变形梯度F,再求出内力

其中

发现计算四面体变形梯度F的方法


此函数中

fElement存放四个顶点的f







11月20日

标签:

原文地址:http://www.cnblogs.com/dydx/p/4235966.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!