谁能帮助我找到有关泊松数值解(有限差分法和Crank-Nicolson方法)的书,以及包括不规则几何体(例如,由矩形和圆形之间的区域组成的区域)的扩散方程(尤其是书本或链接)在这种情况下的MATLAB代码示例)?
谁能帮助我找到有关泊松数值解(有限差分法和Crank-Nicolson方法)的书,以及包括不规则几何体(例如,由矩形和圆形之间的区域组成的区域)的扩散方程(尤其是书本或链接)在这种情况下的MATLAB代码示例)?
Answers:
使有限差分方案适用于不规则几何的关键是要有一个“形状”矩阵,其值表示域的外部,内部和边界。假设我们的形状是这样的:
真实域(矩阵的所有非零项所在的地方)形成一个指向下方的三角形。1代表边界上的点,而2代表内部点(通常是未知的),我们可以如下分配节点号:
在此,-1表示边界位置。然后,您可以对矩阵中的所有条目运行有限差分方案,但是使用if语句仅在内部节点(从1到12)上执行方案。这种方法不是最有效的方法,但是它可以完成工作...如果您负担得起内存,最好存储所有内部节点的(i,j)条目并运行仅在那些节点上进行for循环。
要直接创建几何图形,您可以执行以下两项操作之一:
1.手动创建黑白图像,并将其导入到程序中(最容易实现,但无法细化空间分辨率dx或dy)。
2.编写代码,为您选择的任何空间分辨率创建想要的基本形状的离散表示(难以实现,但对于任何空间分辨率为dx或dy的常规有限差分方案,它都更健壮)。
如果您想了解更多有关如何执行此操作的信息,则可以考虑观看以下视频:
NPTEL计算机图形学课程,视频2(光栅图形)
NPTEL计算机图形学课程,视频3(光栅图形,续)签
出,然后让我知道这是否解决了您的问题。
我认为一本好书就是Hackbusch的书:
http://books.google.com/books/about/Elliptic_differential_equations.html?id=-ZPc_JYJFHgC&redir_esc=y
特别是ch。4.8,“任意域中的离散化”可能对您很有趣。该书的德语版可以免费(合法)下载。我不知道英语是否也适用。
我建议以下论文:
任意不规则网格的有限差分法及其在应用力学中的应用-Liszka Orkisz
http://www.sciencedirect.com/science/article/pii/0045794980901492
可变网格的有限差分技术-Jensen
http://www.mendeley.com/research/finite-difference-techniques-variable-grids-7/
用广义有限差分法求解抛物线和双曲型方程-Benito Urena Gavete
http://www.sciencedirect.com/science/article/pii/S037704270600687X
基本上,他们描述了如何为非结构化/不规则网格生成有限差分模板。我不知道有哪本书可以深入探讨这个特定主题,但是Randall LeVeque的书可能对此有所了解。这是作者网页的链接,其中包含一些Matlab m文件(用于有限差分)。
您是否可以使用自适应网格细化?快速的Google搜索将打开许多链接。例如,在流体动力学中使用AMR对通过复杂形状的流动进行建模。以及许多其他应用程序。这是解决恒星形成中双曲守恒定律系统的示例。几何形状非常复杂。本文的第一部分是一个不错的教程。 http://www.mpa-garching.mpg.de/lectures/ADSEM/SS05_Homann.pdf
这个问题打开了一罐蠕虫,从给出的各种答案可以明显看出。其中许多提出了有用的观点,但是一个真正有用的答案将考虑尚未提出的考虑因素。除了确定几何的确切性质之外,了解以下内容将很有价值:a)您需要哪种精度?b)是否要保留规则的正方形网格?c)您愿意在学习新技术上投入多少?
规则的正方形网格难以精确地定义边界,因此许多人会更改为符合标准的网格。具有矩形连通性的合格网格很难适应非常不规则的形状,因此许多人采用非结构化网格(三角形/四面体或更一般)。
对于任何不具有规则笛卡尔结构的数据,都很难评估导数,因此许多人以整数形式重新表达了他们的问题,这导致了有限元/有限体积方法(可以实现高阶)。有无网格方法。有边界元素方法。有浸入式边界方法。有切细胞方法。通常,由于大多数是历史原因,有一种方法在某些应用程序中很流行,但在另一些应用程序中却不受欢迎。
祝您在迷宫中导航时万事如意,但您必须意识到,没有一个万能的解决方案可以解决您的问题。