FlexPDE,使用说明,中文讲解(2)

2019-08-30 18:26

EQUATIONS

A: Div(grad(A)) + B = 0 B: Div(grad(B)) + A = 0

中国科研软件网(www.SoftSale.cn)

绘制范围

问题的范围在BOUNDARIES部分中描述了,由REGIONS组成,每一个都被假定为具有唯一的具体特性。一个REGION可能包含许多闭合的循环或岛,但是它们被假定为属于同一种特性。

一个REGION的详述从声明REGION开始,头文件后的所有的循环都包含在这个部分。 后面的REGIONS覆盖前面的REGIONS

REGION可以命名,如REGION“Name”形式 REGION 1应该包含全部区域

Region的形状被描述成为绕着周界行走,从一个接点到另一个LINE或ARC部分。每一个部分都假定它与前面部分的终点相连的,而START语句使事件滚动。您可以使用FINISH来使某部分归回起点。 矩形区域由四条线组成:

START(x1,y1) LINE TO(x2,y1) TO (x2,y2) TO (x1,y2) TO FINISH

(当然,任意四边形都是具有同样的构造,所改变的仅仅是坐标而已。任意多边形都可以通过增加点来构建) 弧可以用多种方法创建,最简单的一种是通过描述原点和角度来完成: START(r,0) ARC(CENTER=0,0) ANGLE=360

弧也可以通过详细说明原点和终点来说明: START(r,0) ARC(CENTER=0,0) TO (0,r) { a 90 degree arc }

(如果原点和起点的距离不等于原点和终点的距离,那么您将建立一个椭圆弧) 环可以被命名为STARE“Name”(?)

那么BOUNDARIES部分的原型将是: BOUNDARIES REGION 1

REGION 2

?

您可以一次创建区域的一部分,使用“domain”菜单按钮来预览您目前为止所创建的图样。 “save”和“save as”菜单按钮允许您在工作中随时保存您的工作,以防万一。

一个问题的例子

让我们建立一个包含在两个平面之间的圆形的作为范例。我们将简单的将平面处理为正方形的上下面,圆在其间居中。使用以上的声明,增加所需的控制标签,我们得到: BOUNDARIES

REGION 1 'box' { the bounding box }

START(-1,-1) LINE TO(1,-1) TO (1,1) TO (-1,1) TO FINISH REGION 2 'blob' { the embedded circular 'blob' } START 'ring' (1/2,0) ARC(CENTER=0,0) ANGLE=360 TO FINISH

提示:建立区域边界的详细规则在相关章节\有所介绍。

建立一个网

当您选择“run”按钮时,FlexPDE将会开始自动创建有限元素网以适合您所描述的区域,在自动产生的网中,单元的大小将由区域边界中的外部点间的空间决定,或者由弧的曲率决定。 在我们的实例中,自动完如下所示: 图?

注意区域2的圆形边界被绘制成单元支架。

这里有几个可以让用户用来改变自动生成的网的控制按钮。在“控制网的密度”一章的相关部分有详细介绍。 作为范例,我们可以通过使用修改器NODE_SPACING来将区域2的圆形区域的网格设得更加密集: NODE_SPACING:

REGION 2 'blob'{ the embedded 'blob' } START(1/2,0)

NODE_SPACING = 0.05

ARC(CENTER=0,0) ANGLE=360 TO FINISH

产生的网如下图

图?..

多数情况下,干涉网的生成并不必要,因为就像我们将要看到的一样,一旦FlexPDE在解法中察觉到有明显曲率就会适度的调整网。

定义具体参数

多数实际问题的复杂度都来源于一个事实,在微分方程组中的系数在会随着构成结构的物质不同而有不同的值。

在FlexPDE中有两个简单的方法解决了问题。首先,物质参数是被命名的而且默认值已经在DEFINITIONS部分中给出,其次,物质参数也已经在所限制区域中被赋值。

到目前为止,无论测试问题是热能流动问题还是静电问题或者其他方面的问题,影响并不明显。尽管如此,为了在以下的讨论中更加具体,让我们来假定它是一个热量问题,描述的是一个埋入导体的绝缘体,导体位于热源之间。我们给绝缘体一个0.001的传导率,设定周围的导体的传导率为1。

首先,我们定义常数的名称并在定义区间赋予其默认数值: DEFINITION K=1

现在让我们将常量代入方程式 EQUATIONS Div(-k*grad(phi)) = S

之后我们来详细说明一下区域2的区域值:

REGION 2'blob'{ the embedded blob } K=0.001

START(1/2,0) ARC(CENTER=0,0) ANGLE=360 TO FINISH

[提示:为了表达清晰,我们也可以在区域1中将导体的传导率定义为1]

设置边界条件

边界条件被指定为区域中沿周长移动的修改器。 边界条件的主要类型为VALUE和NATURAL

VALUE边界条件设定了值,即变量必须取在区域边界上。

NATURAL边界条件设定了区域边界的通量。通过laplace方程,NATURAL边界条件与neumann或者正常的派生边界条件是等价的。

[提示:NATURAL边界条件的精确含义取决于已设的边界条件的PDE]

每一个边界条件的声明都是变量命名的理由。这些命名将边界条件和所列方程式之一相关连,因为实际上方程式是由边界条件而调控的的。例如,被VALUE(u)=0修改的方程式,原来就是由定义u决定的。NATURAL(u)=0将取决于定义u的方程的形式的含义。

在我们的范例中。假定我们希望将底边定义为零温度系数,绝缘边界在右侧,温度1度为顶边,绝缘边界在左侧。命令如下 ?

REGION 1'box'{ the bounding box }

START(-1,-1)

VALUE(Phi)=0 LINE TO(1,-1) { Phi=0 in base line }

NATURAL(Phi)=0 LINE TO (1,1) { normal derivative =0 on right side } VALUE(Phi)=1 LINE TO (-1,1) { Phi = 1 on top }

NATURAL(Phi) LINE TO FINISH { normal derivative =0 on left side }

注意VALUE或NATURAL的声明指出了将被应用于接下来的边界区域的条件,这一条件要一直应用直至陈述改变。 另外还要注意区域的形状(线或弧)在边界条件改变后将要重新设置。 [提示:其他的边界条件形式也可以被允许,参照“Sections|Boundaries”]

中国科研软件网(www.SoftSale.cn)

请求绘图输出

PLOTS部分包括绘图输出请求。FlexPDE认可四种主要绘图形式: CONTOUR-一个自变量等高线图,可以被涂色 SURFACE-一个自变量的三维表面 VECTOR-箭头区域

ELEVATION-沿着定义路径的输出

您可以请求生产任何数量的图,图的值可以是变量,坐标以及定义参数等任意相容的代数结合。

在范例中,我们将请求一个温度等高线,一个热流矢量图,k阶grad,温度沿着中心线的正面图以及一滴水表面的常态热流的正面图: PLOTS CONTOUR(Phi) VECTOR(-k*grad(Phi))

ELEVATION(Phi) FROM (0,-1) to (0,1) ELEVATION(Normal(-k*grad(Phi))) ON 'ring'

当FlexPDE完成求解和插入网格的过程后,PLOTS部分中的输出请求就会被完成,而且满足所有的单元都在误差范围内。同PLOTS部分的形式一样但是被命名为MONITORS的部分,将在更加频繁间隔内完成暂时输出,这些输出将作为一个求解过程中的即时报告。

所有的关于PLOTS的纪录在以PG3为后缀的文件和以PDE为后缀的脚本文件中有所记载。这些记录了的部分可以通过调用FlexPDE主菜单中的VIEW项来观看。MONITORS并未记录在.PG3文件中。

[提示:FlexPDE接受其他格式的命令,包括GRID和HISTORIES分区。查看相关章节“Sections | Monitors and Plots”]

中国科研软件网(www.SoftSale.cn)

将全部汇总

在前面的部分中,我们已经逐渐建立起了一个问题规范。 汇总起来如下:

TITLE 'Heat flow around an Insulating blob' VARIABLES

Phi { the temperature } DEFINITIONS

K = 1 { default conductivity } R = 0.5 { blob radius } EQUATIONS

Div(-k*grad(phi)) = 0 BOUNDARIES REGION 1 'box'

START(-1,-1)

VALUE(Phi)=0 LINE TO (1,-1) NATURAL(Phi)=0 LINE TO (1,1) VALUE(Phi)=1 LINE TO (-1,1)

NATURAL(Phi)=0LINE TO FINISH REGION 2'blob'{the embedded blob} k=0.001

START 'ring' (R,0) ARC(CENTER=0,0) ANGLE=360 TO FINISH PLOTS CONTOUR(Phi) VECTOR(-k*grad(Phi))

ELEVATION(Phi) FROM (0,-1) to (0,1) ELEVATION(Normal(-k*grad(Phi))) ON 'ring' END

我们已经用23条可读语句定义了一个完整并有意义的问题

申请FlexPDE免费试用光盘请登入中国科研软件网(www.SoftSale.cn)

您也可以在中国科研软件论坛(forum.SoftSale.cn)获得更多关于FlexPDE的资料

中国科研软件网(www.SoftSale.cn)

A simple diffusion equation on a square might look like this: TITLE 'Simple diffusion equation' VARIABLES u

DEFINITIONS k=3 EQUATIONS div(k*grad(u))=0 BOUNDARIES region 1

start(0,0) line to (1,0) to (1,1) to (0,1) to finish PLOTS contour(u) vector(k*grad(u)) END

提示:其他选项部分及详细规则在FlexPDE问题描述相关章节“section”中介绍

限制条件是什么?

正确的限制条件规范对于PDE系统的解法至关重要 在一个FlexPDE脚本中,限制条件被表示成为行走的边界 原始的限制条件类型是VALUEHE和NATURAL VALUE边界条件指定为必须在区域边界内变化的数值。

NATURAL边界条件限制为一个区域边界内的通量。(NATURAL边界条件的精确含义取决于边界条件所确定的PDE,详细情况在“natural boundary conditions”章节中有所说明)

例如,在上面提到的的扩散问题中,我们在底部和顶部边缘增加固定数值,以及零通量条件,如下所示: BOUNDARIES region 1 start(0,0)

value(u) = 0 line to (1,0) { fixed value on bottom } natural(u)=0 line to (1,1) { insulated right side } value(u)=1 line to (0,1) { fixed value on top } natural(u)=0 line to finish { insulated left side }

?

怎样提出我的问题?

FlexPDE可以阅读用可读性语言来描述的,关于待解决问题特性的文本脚本。在简单应用中,脚本将非常简单,而复杂的应用则可能要求对FlexPDE功能的更多了解。在下面的讨论中,我们将从FlexPDE的简单特征开始,随着我们的进程逐步深入到更加复杂的特性中。

FlexPDE拥有一个内置的编辑器,通过它您可以建立您的问题脚本。您可以编辑脚本并运行,然后再编辑再运行直到您得到您所需要的结果。您可以保存脚本以备将来使用或者将其作为今后修改的基础。 开始一个问题设置的最简单办法就是复制一个已经存在的相似的问题。


FlexPDE,使用说明,中文讲解(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:数学小组心得体会

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: