FEniCS

不可压缩流体的有限元【翻译】

2021-03-01
| 科学计算 | | FEniCS , 有限元法 , 偏微分方程 | Comment 评论

章节目录

有限元方法的结构为用户提供了一个选择范围。 对于解决不可压缩的流体问题尤其如此,因为理论上指出了许多稳定的有限元公式。 我们使用自动化工具来实现和检查稳态Stokes方程的各种稳定公式。 事实证明,FEniCS项目组件的表达能力使Stokes问题的求解器可以轻松创建使用各种单元公式。

...

Unicorn:统一的连续介质力学求解器(下)【翻译】

2021-02-21
| 科学计算 | | FEniCS , 有限元法 , 偏微分方程 | Comment 评论

章节目录

18·5 解决连续介质力学问题

在本节中,我们介绍一些使用Unicorn计算的示例。 第一个例子是没有自适应性的流固耦合问题,我们讨论了几何和子域的建模,系数(形式中使用的函数),主程序的参数和规范(运行求解器的接口)。 接下来,我们给出一个用自适应性解决湍流纯流体问题的示例,其中我们涵盖了对偶问题的数据建模,自适应回路,并指定了用于建模湍流边界层的滑移/摩擦边界条件。

...

Unicorn:统一的连续介质力学求解器(中)【翻译】

2021-02-19
| 科学计算 | | FEniCS , 有限元法 , 偏微分方程 | Comment 评论

章节目录

18·4 实现

在这里,我们概述了Unicorn的设计。 Unicorn求解器类UCSolver将Unicorn库中的技术与FEniCS的其他部分结合,合在一起公开一个接口(请参见清单18.6),以模拟连续介质力学中的应用。 求解器实现的主要部分是UC模型的G2离散化的弱形式(请参见图18.4),以及用于误差估计的应力和残差的形式。 来自应用程序的系数被连接到形式,然后由TimeDependentPDE类执行时间步进。 某些系数,例如 \(\delta\) 稳定化系数,也作为求解器的一部分(而不是作为形式)来进行计算。 求解器计算自适应算法的一次迭代(主求解,对偶求解和网格划分),其中,自适应循环是通过迭代运行一系列网格的求解器来实现的。

...

Unicorn:统一的连续介质力学求解器(上)【翻译】

2021-02-06
| 科学计算 | | FEniCS , 有限元法 , 偏微分方程 | Comment 评论

章节目录

本章介绍了Unicorn技术,重点介绍了用于统一连续介质(UC)概念和自适应通用Galerkin(G2)离散化的简单,高效和通用算法和软件,将其作为统一的连续介质力学方法。 我们将介绍Unicorn如何适应FEniCS框架,如何为其他FEniCS组件提供接口,Unicorn提供了哪些接口和功能以及如何设计实现的。 我们还将介绍一些使用Unicorn计算的流固耦合(fluid–structure interaction)和适应性的例子。

...

UFL:有限元形式语言》算法(二)&实现的问题【翻译】

2021-02-04
| 科学计算 | | FEniCS , 有限元法 , 偏微分方程 | Comment 评论

章节目录

17·8 算法(续前)

17·8·4 重要的变换

有很多方法可以操纵表达式的表示。 在这里,我们描述了三个特别重要的变换。 注意,这里每一个算法都删除了一些抽象,因此可能删除了一些分析或优化的机会。 为了展示其效果,下面将每种变换应用到下面的表达式

\[ a = \mathrm{grad}(f u) \cdot \mathrm{grad}\ v \tag{17.77} \]

在本节的最后,给出了一些示例代码来演示更多的表示细节。

...

UFL:有限元形式语言》计算导数&算法(一)【翻译】

2021-02-03
| 科学计算 | | FEniCS , 有限元法 , 偏微分方程 | Comment 评论

章节目录

17·7 计算导数

当由形式语言的终端用户声明任何种类的导数表达式时,都会构造一个表达式对象来表示它,但不会计算任何内容。 这种表达式对象的类型是Derivative的子类。在从导数表达式生成低级代码之前,必须应用某种求导数的算法,因为差分算符本身在C++等低级语言中不可用。 计算精确的导数很重要,它消除了差分除法的近似。 存在几种用于计算精确导数的替代算法。 所有相关算法都基于链规则,并结合每种表达式对象类型的规则差异。 算法之间的主要区别在于子表达式的重用程度以及子表达式的累积方式。

...

UFL:有限元形式语言》形式算符&表达式的表示【翻译】

2021-02-02
| 科学计算 | | FEniCS , 有限元法 , 偏微分方程 | Comment 评论

章节目录

17·5 形式算符

一旦定义了一些形式,就有几种方法可以从中计算相关的形式。 上节的算符可用于定义表达式,本节中讨论的算符被用于形式,从而生成新的形式。 形式算符既可以使形式的定义更紧凑,又可以减少错误的可能,因为原始形式中的更改将自动传播到根据它所计算出的形式中。 这些形式算符可以任意组合; 给定一个半线性形式,只需要几条行即可计算出雅可比伴随的作用。 由于这些计算是在形式编译器处理之前完成的,因此在运行时没有任何开销。

...