首页 > 其他 > 详细

11月20日

时间:2015-01-20 15:26:20      阅读:231      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!