使用广义α方法(the generalized-α method)求解时变动力学问题

本文介绍了如何使用广义α方法解决时变动力学问题,详细阐述了控制方程的变分形式,时间离散过程,并提供了数值算例和FEniCS代码实现。通过这种方法,可以更稳定地处理动态问题,避免直接震荡,确保数值计算的准确性。

本文讲解如何使用使用广义α方法求解时变动力学问题,附带FEniCS代码

控制方程及其变分形式

首先我们定义我们需要求解的弹性力学方程
∇⋅σ+ρb=ρu¨(1) \nabla\cdot\textcolor{red}{\sigma}+\rho b = \rho \ddot{u} \tag{1} σ+ρb=ρu¨(1)
其中σ\sigmaσ是应力张量,bbb是体元外力,ρ\rhoρ是密度,u¨\ddot{u}u¨表示位移uuu对时间的ttt的二阶导数,即加速度。在这个问题中,我们需要求解的是位移uuu。应力张量σ\sigmaσ的表达式如下
σ=λtr(ϵ)I+2μϵϵ=∇u+(∇u)T2λ=Eν(1+ν)(1−2ν),μ=E2(1+ν)(2) \sigma = \lambda\mathrm{tr}(\epsilon)I+2\mu\epsilon \\ \epsilon=\frac{\nabla u+(\nabla u)^T}{2} \\ \lambda=\frac{E\nu}{(1+\nu)(1-2\nu)},\mu=\frac{E}{2(1+\nu)} \tag{2} σ=λtr(ϵ)I+2μϵϵ=2u+(u)Tλ=(1+ν)(12ν)Eν,μ=2(1+ν)E(2)
对于式(2)中的参数,杨氏模量E=1000E=1000E=1000,泊松比ν=0.3\nu=0.3ν=0.3,密度ρ=1\rho=1ρ=1III是单位矩阵

上述的过程使用FEniCS实现如下

# 弹性参数
E  = 1000.0
nu = 0.3
mu    = Constant(E / (2.0*(1.0 + nu)))
lmbda = Constant(E*nu / ((1.0 + nu)*(1.0 - 2.0*nu)))
# 质量密度
rho = Constant(1.0)

# ε
def epsilon(u_):
    return sym(grad(u_))
# 应力张量σ
def sigma(u_):
    return 2.0*mu*epsilon(u_) + lmbda*tr(epsilon(u_))*Identity(len(u_))

对于式(1)我们写出其变分形式
∫Ωρu¨⋅vdx−∫Ω(∇⋅σ)⋅vdx=∫Ωρb⋅vdx(3) \int_\Omega\rho\ddot{u}\cdot v dx-\int_\Omega\textcolor{red}{(\nabla\cdot\sigma)\cdot v} dx=\int_\Omega\rho b\cdot v dx \tag{3} Ωρu¨vdxΩ(σ)vdx=Ωρbvdx(3)
这里我们把待求量uuu放左边,已知量放右边。对于式(3)中的部分我们进一步展开
(∇⋅σ)⋅v=∂σij∂xivj=∂∂xi(σijvj)−σij∂vj∂xi=∇⋅(σ⋅v)−σ⋅∇v(4) \begin{aligned} (\nabla\cdot\sigma)\cdot v&=\frac{\partial \sigma_{ij}}{\partial x_i}v_j\\ &=\frac{\partial}{\partial x_i}(\sigma_{ij}v_j)-\textcolor{red}{\sigma_{ij}\frac{\partial v_j}{\partial x_i}}\\ &=\nabla \cdot(\sigma\cdot v)-\sigma \cdot \nabla v \end{aligned} \tag{4} (σ)v=xiσijvj=xi(σijvj)σijxivj=(σv)σv(4)
式(4)中,最后一步的第二项可以写成
σ⋅∇v=σ⋅(∇v)T=σ(u)⋅ϵ(v)(5) \sigma \cdot \nabla v=\sigma \cdot (\nabla v)^T=\sigma(u) \cdot \epsilon(v) \tag{5} σv=σ(v)T=σ(u)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值