zoukankan      html  css  js  c++  java
  • 11月27日

    11月27日

    任务:

    研究reducedDynamicSolver-rt,了解降维后的积分方法


    代码结构:

    函数initScene()准备必要的资源,按顺序为:

    1. 调用了ReadMatrixFromDisk_()从磁盘读取低维基向量,放入ModalMatrix 对象renderingModalMatrix之中,这个类可以由高维力算出低维力。同时分配低维坐标q 低维力 fq fqBase。其中fqBase表示在参考动作(参考动作不一定是未变形动作)的情形下的低维力,模拟实际的力是在这个力的基础上加上用户施加的力fq。

    2. 用模态矩阵和网格初始化SceneObjectReducedCPU对象deformableObjectRenderingMeshCPU,并赋给基类指针deformableObjectRenderingMeshReduced。SceneObjectReducedCPU可以即时指定的新的低维坐标,并换算成高维坐标(顶点的位移)。

    3.  用多项式系数初始化 StVKReducedInternalForces(cubicPolynomialFilename)对象stVKReducedInternalForces,此类既可以用已经计算好的stvk多项式系数初始化,也可以即时计算系数

      这个类可以用给定的低维坐标,计算出低维力

    4. 用 StVKReducedInternalForces 初始化 StVKReducedStiffnessMatrix,这个矩阵可以通过给定的低维坐标,构造出对应位置的tangent stiffness matrix

    5.  用前述计算低维力和低维切向刚度矩阵的两个类构造ReducedStVKForceModel对象

    6. 用以上数据初始化ImplicitNewmarkDense积分器


    函数idleFunction()迭代求解

    1. 给积分器设置当前的外力fq,fq= 参考动作鼠标拖动的外力 + 当前鼠标拖动的外力

    2. 调用积分器的DoTimeStep函数进行数值积分

    3. 获得积分器计算出的低维坐标q,赋值给SceneObjectReducedCPU,并调用其Compute_uUq函数计算出高维坐标(顶点偏移)

    4. 更新显示







  • 相关阅读:
    杭电1176解答免费馅饼
    Locust 关联
    Locust 参数化
    Locust 介绍篇
    Locust 集合点
    Locust 其他协议
    团队项目需求分析报告
    第一次个人编程作业
    团队项目选题报告
    第一次软工作业
  • 原文地址:https://www.cnblogs.com/dydx/p/4235921.html
Copyright © 2011-2022 走看看