星期一, 十二月 25, 2006

什么是64位计算?

64位(64 bit)高性能计算是当前一个很热的话题,很多机构已经配置了、或将要升级至64位计算。但是实际上“64位”这个概念对我来说还是很模糊的。当然还有容易令人混淆的字(word),字节(byte),位(bit)的概念。

下面是我从互联网上找到的关于64位计算的一些资料:

1. Wikipedia: 64-bit

2. Microsoft: Overview of Windows XP Professional x64 Edition

3. IT168: 64位技术

对于64位技术,有各种不同的定义,Wikepedia的定义为:如果没有特别的描述,通常“64位” 计算机架构是指CPU整型寄存器有64比特的数据宽度。“64位”架构支持长度为64比特的整型数据。(Without further qualification, however, "64-bit" computer architecture generally has integer registers that are 64 bits wide, which allows it to support (both internally and externally) 64-bit "chunks" of integer data.)

64位计算主要优点是它能够支持更大的内存。由于内存地址是由整型数表示的。更大的整型数便意味着更大的内存支持。理论上,32位整型寄存器支持2^32个内存地址,即4GB,而64位整型寄存器支持2^64个内存地址,即16TB。实际上,由于其他的限制,Windows 32位操作系统对单个进程支持2GB内存,目前使用的Windows x64操作系统支持128GB内存。

我们并不能简单的认为64位的计算性能是32位的两倍。通常64位的性能会稍稍高于32位,但同时占用的内存也会稍稍多一些。笼统地说,64位计算极大地扩展了内存地址,但是和计算速度,内存使用(比如浮点数长度,单精度/双精度)并没有显著关系。

另外,要使用64位技术必要要有64位处理器、64位操作系统和64位软件。三者缺一不可。而现在64位应用软件相当匮乏,虽然最新版本的CAE软件中很多都实现了对64位计算的支持。

对64位操作系统而言,1 word = 64 bit, 1 byte = 8 bit。因此1 word = 8 byte。1GB内存可以换算成1024 * 128个字:1 Giga byte = 1024 Mega byte = 1024 * 1024 byte =1024 * 128 word。

对32位操作系统而言,1 word = 4 byte,1 GB = 1024 * 256 word。

圣诞快乐

圣诞快乐!并附上一个朋友用ANSYS Workbench做的图片(一个简单但有趣的应力分析)。

星期六, 十二月 23, 2006

CD-adapco发布STAR-CD 4.0.2

新闻链接

从新闻稿看,增加的新功能并不是太多,比如前处理功能的更新(尤其是多面体网格功能)。有趣的是,Fluent 6.3和CFX的多面体网格都是基于常用的四面体或六面体网格,在求解器内部自动重新组合。也就是说不需要专门的网格划分软件。但是CD-adapco的多面体网格解决方案似乎要“笨”一些,需要专门的多面体网格划分软件。这样做的优点是什么呢?
当中重要(或者是最主要)的新功能应该是多物理场(mutli-physics)功能。虽然多物理场已经不是一个新概念(ANSYS Multiphysics),但是这次好像是第一次由CFD开发商提出来。 STAR-CD 4.0.2将可以进行固体应力分析和固体融化、固化分析。不知道STAR-CD的应力分析模块现在有哪些功能,是基于有限体积法还是基于有限元方法。

有限元法、有限差分法和有限体积法的区别

昨天在网上看到一篇关于有限差分,有限元和有限体积法区别的文章。现在贴在下面,也许对有兴趣的朋友有帮助(我对文章作了一些编辑)。

1. 有限差分法(Finite difference method)

有限差分方法(FDM)是计算机数值模拟最早采用的方法,至今仍被广泛运用。该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域。有限差分法以泰勒(Taylor)级数展开等方法,把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而建立以网格节点上的值为未知数的代数方程组。该方法是一种直接将微分问题变为代数问题的近似数值解法,数学概念直观,表达简单,是发展较早且比较成熟的数值方法。对于有限差分格式,从格式的精度来划分,有一阶格式、二阶格式和高阶格式。从差分的空间形式来考虑,可分为中心格式和逆风格式。考虑时间因子的影响,差分格式还可以分为显格式、隐格式、显隐交替格式等。目前常见的差分格式,主要是上述几种形式的组合,不同的组合构成不同的差分格式。差分方法主要适用于结构网格,网格的步长一般根据实际地形的情况和柯朗稳定条件来决定。

构造差分的方法有多种形式,目前主要采用的是泰勒级数展开方法。其基本的差分表达式主要有三种形式:一阶向前差分、一阶向后差分、一阶中心差分和二阶中心差分等, 其中前两种格式为一阶计算精度,后两种格式为二阶计算精度。通过对时间和空间这几种不同差分格式的组合,可以组合成不同的差分计算格式。

2. 有限元法(Finite element method)

有限元方法的基础是变分原理和加权余量法,其基本求解思想是把计算域划分为有限个互不重叠的单元,在每个单元内,选择一些合适的节点作为求解函数的插值点,将微分方程中的变量改写成由各变量或其导数的节点值与所选用的插值函数组成的线性表达式 ,借助于变分原理或加权余量法,将微分方程离散求解。采用不同的权函数和插值函数形式,便构成不同的有限元方法。有限元方法最早应用于结构力学,后来随着计算机的发展慢慢用于流体力学的数值模拟。

在有限元方法中,把计算域离散剖分为有限个互不重叠且相互连接的单元,在每个单元内选择基函数,用单元基函数的线形组合来逼近单元中的真解,整个计算域上总体的基函数可以看为由每个单元基函数组成的,则整个计算域内的解可以看作是由所有单元上的近似解构成。在河道数值模拟中,常见的有限元计算方法是由变分法和加权余量法发展而来的里兹法和伽辽金法、最小二乘法等。根据所采用的权函数和插值函数的不同,有限元方法也分为多种计算格式。从权函数的选择来说,有配置法、矩量法、最小二乘法和伽辽金法,从计算单元网格的形状来划分,有三角形网格、四边形网格和多边形网格,从插值函数的精度来划分,又分为线性插值函数和高次插值函数等。不同的组合 同样构成不同的有限元计算格式。对于权函数,伽辽金(Galerkin)法是将权函数取为逼近函数中的基函数 ;最小二乘法是令权函数等于余量本身,而内积的极小值则为对代求系数的平方误差最小;在配置法中,先在计算域 内选取N个配置点 。令近似解在选定的N个配置点上严格满足微分方程,即在配置点上令方程余量为0。插值函数一般由不同次幂的多项式组成,但也有采用三角函数或指数函数组成的乘积表示,但最常用的多项式插值函数。有限元插值函数分为两大类,一类只要求插值多项式本身在插值点取已知值,称为拉格朗日(Lagrange)多项式插值;另一种不仅要求插值多项式本身,还要求它的导数值在插值点取已知值,称为哈密特(Hermite)多项式插值。单元坐标有笛卡尔直角坐标系和无因次自然坐标,有对称和不对称等。常采用的无因次坐标是一种局部坐标系,它的定义取决于单元的几何形状,一维看作长度比,二维看作面积比,三维看作体积比。在二维有限元中,三角形单元应用的最早,近来四边形等参元的应用也越来越广。对于二维三角形和四边形电源单元,常采用的插值函数为有Lagrange插值直角坐标系中的线性插值函数及二阶或更高阶插值函数、面积坐标系中的线性插值函数、二阶或更高阶插值函数等。

对于有限元方法,其基本思路和解题步骤可归纳为

(1)建立积分方程,根据变分原理或方程余量与权函数正交化原理,建立与微分方程初边值问题等价的积分表达式,这是有限元法的出发点。
(2)区域单元剖分,根据求解区域的形状及实际问题的物理特点,将区域剖分为若干相互连接、不重叠的单元。区域单元划分是采用有限元方法的前期准备工作,这部分工作量比较大,除了给计算单元和节点进行编号和确定相互之间的关系之外,还要表示节点的位置坐标,同时还需要列出自然边界和本质边界的节点序号和相应的边界值。
(3)确定单元基函数,根据单元中节点数目及对近似解精度的要求,选择满足一定插值条件的插值函数作为单元基函数。有限元方法中的基函数是在单元中选取的,由于各单元 具有规则的几何形状,在选取基函数时可遵循一定的法则。
(4)单元分析:将各个单元中的求解函数用单元基函数的线性组合表达式进行逼近;再将近似函数代入积分方程,并对单元区域进行积分,可获得含有待定系数(即单元中各节点 的参数值)的代数方程组,称为单元有限元方程。
(5)总体合成:在得出单元有限元方程之后,将区域中所有单元有限元方程按一定法则进 行累加,形成总体有限元方程。
(6)边界条件的处理:一般边界条件有三种形式,分为本质边界条件(狄里克雷边界条件 )、自然边界条件(黎曼边界条件)、混合边界条件(柯西边界条件)。对于自然边界条件,一般在积分表达式中可自动得到满足。对于本质边界条件和混合边界条件,需按一定法 则对总体有限元方程进行修正满足。
(7)解有限元方程:根据边界条件修正的总体有限元方程组,是含所有待定未知量的封闭方程组,采用适当的数值计算方法求解,可求得各节点的函数值。

3. 有限体积法(Finite volume method)

有限体积法(Finite Volume Method)又称为控制体积法。其基本思路是:将计算区域划分为一系列不重复的控制体积,并使每个网格点周围有一个控制体积;将待解的微分方程对每一个控制体积积分,便得出一组离散方程。其中的未知数是网格点上的因变量的数值。为了求出控制体积的积分,必须假定值在网格点之间的变化规律,即假设值的分段的分布的分布剖面。从积分区域的选取方法看来,有限体积法属于加权剩余法中的子区域法;从未知解的近似方法看来,有限体积法属于采用局部近似的离散方法。简言之,子区域法属于有限体积发的基本方法。

有限体积法的基本思路易于理解,并能得出直接的物理解释。离散方程的物理意义,就是因变量在有限大小的控制体积中的守恒原理,如同微分方程表示因变量在无限小的控制体积中的守恒原理一样。 限体积法得出的离散方程,要求因变量的积分守恒对任意一组控制体积都得到满足,对整个计算区域,自然也得到满足。这是有限体积法吸引人的优点。有一些离散方法,例如有限差分法,仅当网格极其细密时,离散方程才满足积分守恒;而有限体积法即使在粗网格情况下,也显示出准确的积分守恒。就离散方法而言,有限体积法可视作有限单元法和有限差分法的中间物。有限单元法必须假定值在网格点之间的变化规律(既插值函数),并将其作为近似解。有限差分法只考虑网格点上的数值而不考虑值在网格点之间如何变化。有限体积法只寻求的结点值,这与有限差分法相类似;但有限体积法在寻求控制体积的积分时,必须假定值在网格点之间的分布,这又与有限单元法相类似。在有限体积法中,插值函数只用于计算控制体积的积分,得出离散方程之后,便可忘掉插值函数;如果需要的话,可以对微分方程中不同的项采取不同的插值函数。

星期四, 十二月 07, 2006

ANSYS 11.0终于即将发布

最近一两个月实在是太忙了,发文章很不正常,真是太内疚了。:(

这几天正在参加一个conference,晚上回来查看网页,无意中看到台湾虎门科技的网页(虎门科技是ANSYS在台湾的代理商)。居然得到了ANSYS即将发布的消息。台湾的发布会会在12月27号进行,也就是说ANSYS 11.0会在2-3周内发布。

星期一, 十二月 04, 2006

Fluent 6.3已经发布

昨天早上打开ANSYS的主页,发现上面的新闻稿说Fluent 6.3已经发布了。下面一个问题是ANSYS 11.0什么时候发布呢?现在ANSYS 11.0和10.0之间至少已经间隔16个月了。

Fluent6.3发布的相关新闻链接在这里这里是关于Fluent 6.3新的特性的概述。

1. 网格、数值及并行计算:新的基于压力的耦合求解器,新的建模检查工具,新增加到多面体网格的支持,增加对64位windows的支持以及其它并行计算能力的提高。

F1赛车多面体网格

2. 传热、相变和辐射:面对面辐射模型应用范围和效率的提高,用户可以耦合离散坐标辐射模型和能量方程,支持多组分实际气体。

玻璃熔炉模拟

3.动网格:动网格可以应该在稳态问题中,动网格的定义更加直接和方便,滑移网格支持一边多个网格。

4.反应流:新的低速化学反应和微混合模型,更多的化学物质和反应可以使用无预混合或部分预混合模型模拟,更多模拟SOx、NOx生成的模型。

5.湍流和声学:更灵活的DES模型,LES模拟更多的时间统计结果,提高了RSM模型,用户可以自定义壁面函数。

6.多相流:瞬态多相流模拟精度得到了提高,欧拉、混合和VOF模型和壳传热模型兼容,扩展了欧拉模型的应用范围,在使用VOF模型时,可以使用新的界面跟踪模型,可用用UDF设定自由液面接触角,对离散相模型可以模拟多组分例子的气化,在使用动网格时,粒子可以从动网格表面射入。

7.后处理:一些新的报告功能,增强了和第三方后处理软件的协作,Fluent并行计算结果可以输出到tecplot。

8.自定义工具:扩展了用户定义标量的应用范围,更多的UDF链接功能,对扩展模块(add-on modules)的改进。