GMRES方法求解二维不可压Stokes方程(附MATLAB代码)

 

目录

 

一、问题描述

二、 问题分析

三、 数值格式

四、 数值实验

GMRES方法

预处理的GMRES方法

数值解图像


一、问题描述

考虑如下不可压的Stokes方程
\left\{\begin{array}{cc} -\lambda \Delta \textbf{u} +\nabla p=\textbf{f}& in \;\Omega,\\ \nabla \textbf{u} = 0& in \; \Omega . \end{array}\right.

通常设 $\textbf{f}=0,$ 令 $\textbf{u}=(u,v)^T,\; \Gamma=\partial \Omega.$\\
定义流函数 $\psi$,  满足

u=\frac{\partial \psi}{\partial y}, \; v=-\frac{\partial \psi}{\partial x}.$

显然有$\nabla \textbf{u}=0.$
定义窝度\omega$: $\omega = -\frac{\partial u}{\partial y}+\frac{\partial v}{\partial x},$  经计算, stokes 方程可化为

\left\{\begin{array}{cc} -\Delta u -\frac{\partial \omega}{\partial y}=0& in \;\Omega,\\ -\Delta v +\frac{\partial \omega }{\partial x}=0& in\;\Omega,\\ \lambda \Delta \omega =0& in\;\Omega. \end{array}\right.

x相应的边界条件为

\left\{\begin{array}{cc} u=1,\;v=0,\;\omega=-\frac{\partial u}{\partial y}& y=1,\; 0\leq x\leq 1,\\ u=0,\;v=0,\;\omega=-\frac{\partial u}{\partial y}& y=0,\; 0\leq x\leq 1,\\ u=0,\;v=0,\;\omega=\frac{\partial v}{\partial x}& x=1\;or\;0,\; 0\leq y\leq 1.\\ \end{array}\right.

之后利用有限差分来计算.

问题:

1. 写出离散格式对应的代数系统, 即 $Ax=b$;

2. 设计有效的迭代法求解 $Ax=b,$ 要求单步迭代的复杂度为 $O(N),$ 其中 $N$ 为 $x$ 的维数;

3. 设计有效的预条件, 并比较预处理前后迭代法的效率差别.

二、 问题分析

在[0,1]上进行等距差分,$\Delta x=\Delta y =1/(N-1).$$x_i=i\Delta x=i/(N-1),\;y_j=j\Delta y = j/(N-1),$其中$i,j=0,1,\cdots,N-1.$\\
$(x_i,y_j)$点处, 有:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值