julia

有限元法求解牛顿流体(FEniCS)

2020-11-18
| 科学计算 | | julia , FEniCS , 有限元法 , 偏微分方程 , 牛顿流体 , 流体力学 | Comment 评论

在Julia环境中,使用FenicsPy.jl调用FEniCS库,求解偏微分方程。

纳维-斯托克斯方程组

纳维-斯托克斯方程:

\[ \color{red}{\frac{\partial \boldsymbol{u}}{\partial t}+(\boldsymbol{u} \cdot \nabla)\boldsymbol{u}=\frac{1}{\rho}\nabla\cdot \boldsymbol{\sigma}+\boldsymbol{f}} \]

其中,张量 \(\boldsymbol{\sigma}\) 应力张量, 取决于具体流体的特性假设,比如:牛顿流体

连续性方程

\[ \frac{\partial \rho}{\partial t}+\nabla \cdot (\rho \boldsymbol{u})=0 \] ...

科学计算环境搭建(Win10+WSL2+Ubuntu)

2020-11-13
| 科学计算 | | julia , python , jupyter , fenics , sympy , scipy | Comment 评论

概要

  • 系统平台: Win10_64 + WSL2 + Ubuntu

  • 目标:Python3.7+Julia1.5.3+JupyterLab+MatplotLib+SymPy+SciPy+FEniCS2019

  • 以Julia作为我主要的使用语言,确保能调用Python的库

  • 目前FEniCS不支持Windows,所以我选择 Win10+WSL+Ubuntu

  • 目前FEniCS2019有问题(至少存在折磨我的问题),所以我选择FEniCS2018

  • FEniCS2019的问题已经解决,所以我还是选择FEniCS2019(详细见后)。

...

有限元法解偏微分方程(FEniCS)

2020-11-13
| 科学计算 | | julia , FEniCS , 有限元法 , 偏微分方程 | Comment 评论

在Julia环境中,使用FenicsPy.jl调用FEniCS库,求解偏微分方程。

以泊松方程(第一边界条件)为例

\[ -\Delta u = f \qquad \boldsymbol{x} \in \Omega \\ u|_{\partial \Omega} =g \]

范例而已, 本例提供的套路是通用的,大不了多看看文档。

关键的地方,我特意列出相关链接。

本文采用软件包: FEniCS。

...

微分几何中的计算(Julia版 计划长期维护)

2020-02-24
| 微分几何 | | 流形 , julia , 张量 , 克氏符 , 黎曼曲率 , killing | Comment 评论

Julia,对数学符号真太友好了。

前面的笔记中,我曾穿插了些相关的符号计算,本文作为一个汇总,并且未来的一些有特点的代码,我也将汇总于此,用作备忘。

Julia进行张量符号计算的关键:1)先要写出(多重)数组友好的公式,然后用Julia实现之; 2)使用了SymPy,外加Julia本身的语法优势。

我曾想过将代码封装成函数,但发现直接用代码似乎更好。首先代码不复杂,其次, 暴露代码细节还能和数学公式相互对照,不容易出错。 有种“所见即所得”的感觉。

...