• 11月20日


    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







  • 相关阅读:
    Classification and Representation(分类与表示)
    静态链表
    拓扑序列
    二分图问题
    大数据概述
    QT出现应用程序无法正常启动0xc000007b的错误
    简易有穷自动机实验
    一个简易的C语言文法
    词法分析器实验报告
    浅谈词法分析器
  • 原文地址:https://www.cnblogs.com/dydx/p/4235966.html
Copyright © 2020-2023  润新知