Games201-拉格朗日视角有限元
概念#
Deformation 形变 and deformation gradients 形变梯度
elastic 弹性
Strain and stress
Hyperelastic material model 超弹性模型
线性有限元
elastic 弹性的
viscoelastic 粘性的
elastoplastic 弹塑性的
viscopplastic 粘塑性的
有限元的教程
mpm论文https://www.seas.upenn.edu/~cffjiang/research/mpmcourse/mpmcourse.pdf
形变#
现在的材料位置和静止时的材料位置的变化
deformation map:把静止位置映射到形变位置 描述形变,形变梯度也是十分重要的一个点
按边形变的demo
有限元方法弹性模拟,显式的 demo 有限元处理自碰撞难以处理
弹性#
回复自己静止状态的性质,是很多材料的基础
Hyperelasticity 超弹性
Hyperelastic materials: materials whose stress–strain relationship is defined by a strain energy density function
ψ = ψ(F)
Intuitive understanding: ψ is a potential function that penalizes deformation.
“Stress”: the material’s internal elastic forces. 应力
“Strain”: just replace it with deformation gradients F for now 应变
stress tensor 材料微元的施加的力,材料微元之间的相互作用
可以看成一个3x3的矩阵
有很多种stress tensor 几种tensor可以转化
rest space 静止空间(对应的是形变以后的空间)
traction 牵引力
Young's modulus 杨氏模量E
泊松比v 是正的,比较大,会接近不可压缩体积,橡皮筋中间越拉越细,也有材料有负的泊松比,3d打印会有负的泊松比,泊松比是0是表示橡皮筋中间不会随着拉长而变化,不会保持自己的体积
一边回指定杨氏模量和泊松比,Bulk modulus一般是模拟可压缩液体时候用到
常见的超弹性模型#
各项同性材质使用Neo-Hookean
默认都是neo-hookean 如果形变很小会用Linear elasticity导出的一般都是线性方程,Linear elasticity的材料旋转有可能会出现旋转后体积变大而不受到任何物理惩罚的情况(势能不变)
Fixed Corotated是对Linear elasticity的改进版本,为了解决旋转体积变大的问题
FEM#
强行式在离散情况下描述物理系统不适用,逐点满足转化成方程的residual和test func的积分得到满足
把空间分成很小的element ,单体,三角形,正方形,四面体,六面体
PDE:偏微分方程式 (Partial differential equation)
能量密度函数关于体积的积分积出来就是弹性势能
Linear tetrahedral finite element#
线性三角元素的有限元
形变梯度F是一个常量
求弹性势能,力其实就是势能关于位置求导数 再乘上一个 负一
B是两列的矩阵,一列是a_rest-c_rest 二列是b_rest-c_rest
向量方程
链式法则的求导吧
势能关于顶点位置的导数再取一个负等于顶点受到的力,
总的弹性势能等于所有的element弹性势能之和
自动微分,非常重要,比起自己手动推公式,taichi可以通过定义势能然后可以自动求微分
如果使用自动微分就只需要定义,定义计算总的弹性能量的函数
ti.Tape传入需要记录的能量变化,在每一次执行某个函数后记录一下能量微分
隐式的有限元需要求二阶导数,非常复杂,自动微分不能求二阶导数
求二阶导需要了解简化方法
作者:FlyingZiming
出处:https://www.cnblogs.com/FlyingZiming/p/14459037.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
但行好事,莫问前程。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示