Unicorn:统一的连续介质力学求解器
发布时间: 2025-08-17 01:39:37 阅读量: 1 订阅数: 7 

### Unicorn:统一的连续介质力学求解器
#### 1. 离散 UC 方程与网格速度选择
在网格的固体部分选择 $\beta_h = U$ 可得到相对流方程的平凡解,此时可将其从系统中移除。由此得到的离散 UC 方程由残差定义:
\[
\begin{cases}
R_u(W) = \rho \left( \frac{\partial U_i}{\partial t} + (U_j - \beta_{h_j}) \frac{\partial U_i}{\partial x_j} \right) - \frac{\partial}{\partial x_j} (\Sigma_{D_{ij}} - P\delta_{ij}) - f_i \\
R_p(W) = \frac{\partial U_j}{\partial x_j}
\end{cases}
\]
我们选择在网格的结构部分(与结构单元接触的顶点),网格速度 $\beta_h$ 为离散材料速度 $U$;在网格的其余部分,使用网格平滑来确定 $\beta_h$ 以最大化网格质量。或者,也可以使用局部网格修改操作(细化、粗化、交换)来维持网格质量。
#### 2. 加权最小二乘法稳定化
标准有限元法(FEM)公式是不稳定的。因此,我们考虑一种加权标准最小二乘法,形式为 $\langle R(W), v + \delta R(v) \rangle = 0$,对于所有 $v \in \hat{V}_{hk}$,其中 $\delta > 0$ 是稳定化参数。通过去掉包含时间导数和 $\Sigma_D$ 的稳定项进行简化,虽然不完全一致,但可避免剪切层的不必要涂抹。对于 UC 模型,稳定化方法采用以下形式:
\[
\begin{cases}
\langle R_u(W), v_u \rangle = \langle \rho(\frac{\partial U_i}{\partial t} + U_j \frac{\partial U_i}{\partial x_j}) - f_i, v_{u_i} \rangle + \langle \Sigma_{D_{ij}} - P\delta_{ij}, \frac{\partial}{\partial x_j} v_{u_i} \rangle + S_{D_u}(W, v_u) = 0 \\
\langle R_p(W), v_p \rangle = \langle \frac{\partial U_j}{\partial x_j}, v_p \rangle + S_{D_p}(W, v_p) = 0
\end{cases}
\]
对于所有 $v \in \hat{V}_{hk}$,其中
\[
\begin{cases}
S_{D_u}(W, v_u) = \delta_1 \langle U_j \frac{\partial U_i}{\partial x_j} + \frac{\partial P\delta_{ij}}{\partial x_i}, U_j \frac{\partial v_{u_i}}{\partial x_j} \rangle + \delta_2 \langle \frac{\partial U_j}{\partial x_j}, \frac{\partial v_{u_j}}{\partial x_j} \rangle \\
S_{D_p}(W, v_p) = \delta_1 \langle \frac{\partial P\delta_{ij}}{\partial x_i} + U_j \frac{\partial U_i}{\partial x_j}, \frac{\partial v_p}{\partial x_i} \rangle
\end{cases}
\]
#### 3. Unicorn 求解器的实现概述
Unicorn 求解器类 UCSolver 将 Unicorn 库中的技术与 FEniCS 的其他部分结合起来,为连续介质力学中的应用模拟提供接口。求解器实现的主要部分是 UC 模型 G2 离散化的弱形式,以及用于误差估计的应力和残差形式。应用中的系数与形式相连,然后由 TimeDependentPDE 类进行时间步推进。某些系数,如 $\delta$ 稳定化系数,也是求解器的一部分(不是作为形式)。求解器计算自适应算法的一次迭代(原问题求解、对偶问题求解和网格细化),自适应循环通过对一系列网格迭代运行求解器来实现。
UCSolver 实现针对分布式内存架构使用 MPI 进行并行化,在多个平台上数百个核心具有强扩展性。整个自适应算法是并行的,包括 Rivara 网格细化和先验预测负载平衡。Unicorn 可以高效模拟大规模并行的湍流不可压缩流应用。
除了不可压缩流的 UCSolver,还有适用于可压缩欧拉流自适应 G2 的 CNSSolver 可压缩变体,其一般方法和算法与 UCSolver 非常接近,长期目标是统一不可压缩/可压缩公式。
#### 4. Unicorn 类和接口
以下是一些关键的类和接口:
| 类/接口 | 功能 |
| ---- | ---- |
| TimeDependentPDE | 时间步推进,在每个时间步通过定点迭代求解非线性代数系统 |
| ErrorEstimate | 自适应误差控制,基于计算局部误差指标 $\eta_K = \| hR(U) \|_T \| DZ \|_T$,其中 $Z$ 是所谓的对偶解 |
| SpaceTimeFunction | 存储和评估时空函数/系数 |
| SlipBC | 摩擦边界条件,通过摩擦模型模拟湍流边界层,强实现滑移边界条件 $u \cdot n = 0$ |
| ElasticSmoother | 弹性网格平滑/优化,根据弹性类比优化单元质量 |
| MeshAdaptInterface | 网格自适应接口,抽象了使用局部网格操作进行网格自适应的 MAdLib 包的接口 |
#### 5. TimeDependentPDE 类
考虑一般的时变方程 $\frac{\partial}{\partial t} u + A(u) = 0$,其中 $A$ 是可能的非线性空间微分算子。我们定义一个类来抽象 G2 方法的时间步推进,通过应用简化的牛顿法实现 cG(1)cG(1) 方法的时间步自动生成,封装在 C+
0
0
相关推荐










