CN102521854B - 一种适用于二维流场的并行流线放置方法 - Google Patents

一种适用于二维流场的并行流线放置方法 Download PDF

Info

Publication number
CN102521854B
CN102521854B CN 201110452884 CN201110452884A CN102521854B CN 102521854 B CN102521854 B CN 102521854B CN 201110452884 CN201110452884 CN 201110452884 CN 201110452884 A CN201110452884 A CN 201110452884A CN 102521854 B CN102521854 B CN 102521854B
Authority
CN
China
Prior art keywords
streamline
vta
flow field
blank
zone
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 201110452884
Other languages
English (en)
Other versions
CN102521854A (zh
Inventor
张文耀
宁建国
王�义
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN 201110452884 priority Critical patent/CN102521854B/zh
Publication of CN102521854A publication Critical patent/CN102521854A/zh
Application granted granted Critical
Publication of CN102521854B publication Critical patent/CN102521854B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种适用于二维流场的并行流线放置方法,对于给定的二维流场,将流场中由流线、速度为零的临界点或流场边界所包围的封闭区域定义为流场的虚拟拓扑区域VTA,另外设置一个覆盖整个流场的正交控制网格,为每个网格单元设置一个记录流线数目的计数器。将整个流场的定义域当作一个初始VTA,在该VTA内选取一个种子点,计算得到一条流线,将该流线放置到该VTA内,并更新相关网格单元的流线计数值;在一个VTA内放置的流线将把该VTA分割成一个或者是两个新的VTA,按照同样的处理策略在新的VTA内并行地放置流线。本发明有效地加速了流线放置过程,不存在伪边界和视觉混乱问题,保证了流线放置质量,适于大规模流场的可视化。

Description

一种适用于二维流场的并行流线放置方法
技术领域
本发明涉及一种基于流线的流场并行可视化方法,特别涉及一种适用于二维流场的并行流线放置方法,属于科学计算可视化技术领域。
背景技术
在流体力学和空气动力学等领域,为了分析流体的运动情况,需要对流场进行可视化处理,将不可见的流场模拟数据或者是流场测试数据,转化为可见的流场图像。目前,针对流场可视化,已经发展了多种技术和方法,如流线技术、流面技术、几何图标法、纹理合成法等等。
就二维流场而言,流线是常用的可视化方法之一,因为流线能比较直观地展现流场模式。为此,需要在流场中适当的位置放置适当数量的流线。如果所放置流线太少,将难以形成有效的流场模式;如果流线太多且放置不当,则容易产生视觉混乱的效果。
国内外学者针对二维流场的流线放置问题,提出了很多方法,其中比较典型的有:Turk和Banks提出的由图像引导的流线放置方法(参见G.Turk and D.Banks.Image-guided streamline placement.Proc.ACM SIGGRAPH’96,1996:453-460.)、Jobard和Lefer提出的临近点流线放置策略(参见B.Jobard andW.Lefer.Creating evenly-spaced streamlines of arbitrary density.Proc.8th EG Workshop on Visualization in Scientific Computing.1997(7):43-56.)、Mebarki等人提出的最远点流线放置策略(参见A.Mebarki,P.Alliez,and O.Devillers.Farthest point seeding for efficientplacement of streamlines.Proc.IEEE Visualization’05,2005:479-486.)、Verma等人提出的基于种子点模板的流线放置策略(参见V.Verma,D.Kao,andA.Pang.A flow-guided streamline seeding strategy.Proc.IEEEVisualization’00,2000:163-170.)、张文耀等人提出的一种由拓扑驱动的流线放置方法(张文耀,宁建国.一种拓扑驱动的平面流场流线放置方法,中国专利,CN200910235656.0.)、Wu等人提出的基于流场拓扑的均匀流线放置方法(参见K.Wu,Z.Liu,S.Zhang,and R.J.Moorhead,II,“Topology-awareevenly spaced streamline placement,”IEEE Transactions on Visualizationand Computer Graphics,vol.16,no.5,pp.791-801,2010.),等等。
上述这些方法,在技术上各有特色,都能产生比较好的流场可视化效果。但是,这些方法都不适合在并行模式下运行,其原因在于:为了控制流线之间的间隔,在这些方法中,流线都是逐一放置的,任何新放置的流线都必须考虑流场中已有流线的分布情况。
若要并行地放置流线,就只能将整个流场区域划分成不同的子区域,然后在不同的子区域内同时放置流线。在未知流场结构的情况下,一般采取静态划分策略,事先将流场划分为多个规则的子区域(例如矩形区域),然后为每个子区域指派一个处理器元素(Processor Flement,PE),由其负责该区域内的流线放置工作,并且不允许流线跨越子区域的边界。在这种情况下,各个处理器元素可以在不同的子区域内并行地放置流线,彼此之间互不干扰,各个子区域内的流线放置结果都是正常的。但是,由于不允许流线跨越子区域边界,在子区域的边界上会出现流线不连续的现象,形成所谓的“伪边界”。图1给出了一个伪边界示例。该示例按照2×2的方式将整个流场划分为4个大小相等子区域,然后在各个子区域内单独放置流线。图1显示了最终的流线放置结果,从中可以看到:各个子区域内的流线分布基本均匀,但是在子区域边界上流线是不连续的,因此可以清晰地察觉到流场区域的划分边界。这些边界并不是流场本身所包含的结构信息,因此将其称为伪边界。伪边界的存在不仅严重影响了流场的可视化效果,还很容易误导分析人员对流场结构的理解。
一种消除伪边界的方法是,允许流线从一个子区域延伸到另一个子区域。在这种情况下,各个子区域之间的流线放置工作是耦合在一起的,必须在各个子区域之间进行流线通信;同时为了有效控制流线之间的间隔,还需要在各个子区域之间进行复杂的同步控制。流线通信和同步控制不仅增加了系统开销,还会使系统的并行性能严重下降。如果不采取同步控制机制,让流线在各个子区域之间任意延伸,则会因为流线分布不均而产生视觉混乱的效果。图2给出了一个出现视觉混乱效果的示例。该图所采用的测试流场以及流场区域的划分方式都与图1相同,不同之处在于:图2允许流线从一个子区域延伸到别的子区域。其结果是:图2没有出现图1所示的伪边界;但是图2的流线间隔差异很大,有的区域很多流线聚集在一起,有的区域则没有填充足够的流线,从而产生视觉混乱效果。这对于流线放置问题是难以接受的。
由于上述原因,目前还未见明确提出的、切实可行的并行流线放置方法。在并行计算平台日益普及的情况下,发展并行流线放置方法,不仅可以利用并行计算资源来加速流场可视化过程,提高流场可视化效率,还可以使大规模流场的可视化处理更为容易。
发明内容
本发明的目的是提供一种适用于二维流场的并行流线放置方法,在满足流线放置基本均匀的前提下,通过并行处理加速流线放置过程,提高基于流线的流场可视化效率。
本发明的目的是通过以下技术方案实现的:
一种适用于二维流场的并行流线放置方法,包括以下步骤:
步骤1、对于给定的二维平面流场,构造一个刚好覆盖该流场定义域的正交控制网格,网格单元的大小根据实际应用需求设定;为每个网格单元设置一个计数器,记录每个网格单元所包含的流线数目,同时设定计数器的计数上限值,该上限值为一个大于或等于1的正整数;初始时刻每个网格单元都是空白的,相应计数器的计数值为0,如果某个网格单元的计数器值不为0,则表示该网格单元是非空的;
步骤2、将流场中由流线、速度为零的临界点或流场边界所包围的、任意形状和大小的封闭区域定义为虚拟拓扑区域VTA(Virtual Topological Area),将整个流场定义域看作一个初始VTA,用该VTA所包含的空白网格单元来描述表示这一VTA,具体方法是:用正交控制网格在初始时刻的所有网格单元来描述该VTA;
在理论上,VTA的形状和大小可以是任意的,但是按照这种描述方法,一个有效的VTA应该至少包含一个空白网格单元。如果某个VTA不包含任何空白网格单元,则认为该VTA是无效的,不在其中放置任何流线。另外,按照任意两条流线在临界点之外都不相交的性质,可知在一个VTA内放置的流线不会延伸到另外一个VTA内,因此VTA之间的流线放置工作可以互不影响。
步骤3、启动一个处理器元素,将步骤2中的初始VTA指派给该处理器元素,由该处理器元素执行步骤4-12,完成该VTA内的流线放置以及相关处理工作;
这里的处理器元素是指逻辑上能够独立运行的计算装置,可以是计算机、CPU、CPU内核、进程或者是线程,包括但不限于这些内容。
步骤4、令所指派的处理器元素当前处理的VTA为CurVTA,在CurVTA内,选取一个流线种子点,理论上,流线种子点可以为CurVTA内的任意点。但是,流线种子点选取的不好会影响流线放置的结果。在实际应用中,有很多种选取方法,例如可以在CurVTA内随机选取一点,或尽量靠近CurVTA的中心点等。
优选的,本发明采取的流线种子点选取方法为:在CurVTA内查找一个面积最大的空白四联通区域,如果存在多个满足条件的空白四联通区域,则任意选取一个,空白四联通区域的面积可用该区域所包含的空白网格单元数来衡量;针对所选取的空白四联通区域,计算该区域内所有网格单元的中心坐标的平均值,将其作为一个新的坐标点,如果该点位于该区域内,则选择该点为流线种子点;否则分别计算过新坐标点的水平直线和垂直直线与该区域相交的线段,选取其中最长线段的中点作为流线种子点。采用该流线种子点选取方法,可以使虚拟拓扑区域内的流线分布基本均匀。
步骤5、根据步骤4中得到的流线种子点,计算并得到经过该点的流线;在计算流线的过程中,如果流线延伸到流场边界、速度为零的临界点、或者是计数器值已达计数上限的网格单元时,该流线的计算过程就终止;
流线的计算方法包括但不限于中点算法、欧拉算法、龙格-库塔算法等。
步骤6、将步骤5中得到的流线作为新流线放置到流场中,并更新该流线所涉及的控制网格单元的计数值,即将该流线所涉及的每个控制网格单元的计数值加1;
步骤7、在CurVTA内,查找空白四联通区域,如果没有找到这样的区域,则表示CurVTA内的流线放置工作已经结束,转向步骤12;
步骤8、对步骤7中得到的空白四联通区域进行分类,方法是:以步骤5中得到的流线的正向流动方向为参照,如果某个空白四联通区域,在该流线的左侧,则将其标记为L,否则将其标记为R;
步骤9、如果步骤8中存在标记为L的空白四联通区域,则将步骤8中所有标记为L的空白四联通区域组合成一个新的VTA;如果步骤8中存在标记为R的空白四联通区域,则将步骤8中所有标记为R的空白四联通区域组合成另一个新的VTA;
步骤10、根据步骤9中得到的VTA的数目,启动相应数量的处理器元素,并将步骤9中得到的VTA,分别指派给不同的处理器元素,由这些处理器元素并行执行步骤4-12,完成各自所负责的VTA内的流线放置以及相关处理工作;
这一步骤至少启动一个处理器元素,最多启动两个处理器元素,因为步骤9中得到的VTA至少一个,最多为两个。
步骤11、释放当前处理的CurVTA,结束CurVTA内的流线放置以及相关处理工作;
步骤12、处理器元素进入等待状态,直到被指派新的VTA而转向步骤4,或者是因其他处理器元素的处理工作都结束了而转向步骤13。
步骤13、最后,结束整个并行流线放置过程,完成所有流线放置工作。
有益效果
本发明与一般的流线放置方法相比,具有以下几个方面的优点:
(1)本发明通过并行处理,有效地加速了流线放置过程,有利于大规模流场的可视化。
(2)本发明提出了虚拟拓扑区域以及基于正交控制网格的虚拟拓扑区域表示方法。
(3)本发明实现了基于虚拟拓扑区域的流场自适应分解,即将整个流场当作一个虚拟拓扑区域,在其中放置流线,然后利用所放置的流线将该虚拟拓扑区域逐层分解为一系列新的虚拟拓扑区域。这种分解一般是不规则的。虚拟拓扑区域之间通过流线分隔。在任何一个虚拟拓扑区域内放置的流线都不会跨越该虚拟拓扑区域的边界而延伸到别的虚拟拓扑区域内。这种将流线限定在虚拟拓扑区域内的特性,非常有利于流线的并行放置。一般的流场区域分解,比如规则的均匀划分,并不具备这样的特性。
(4)本发明涉及的并行处理是基于虚拟拓扑区域的,不同的虚拟拓扑区域之间是彼此独立的,不需要在虚拟拓扑区域之间增加额外的通信与同步控制开销。
(5)本发明的并行流线放置方法不存在伪边界和视觉混乱问题,在不牺牲流线放置质量的前提下,实现了并行流线放置。
(6)本发明提供了一种在虚拟拓扑区域内选择流线种子点的方法,该方法可以使虚拟拓扑区域内的流线分布基本均匀。
(7)本发明提供了一个基于虚拟拓扑区域的并行化方法以及相应的并行处理框架。
(8)对于任何二维流场,本发明的方法都可顺利实施,不需要任何有关流场的结构信息。
附图说明
图1并行处理导致的伪边界示例;
图2并行处理导致的视觉混乱示例;
图3二维示例流场TF;
图4示例流场TF的控制网格;
图5示例流场TF的第一个种子点、第一条流线以及第一条流线的绘制结果;
图6在示例流场TF中并行放置2条流线的中间结果;
图7在示例流场TF中并行放置4条流线的中间结果;
图8在示例流场TF中并行放置流线的最终结果;
图9按照本发明的并行流线放置方法建立的、不存在伪边界和视觉混乱效果的流线图示例。
具体实施方式
下面结合附图,具体说明本发明的优选实施方式。
对于定义在区域D=[xmin,xmax]×[ymin,ymax]中的二维流场F:(x,y)a(u,v),其定义域通常被离散成矩形网格单元Ci,j(i=1,L M,j=1,L,N),在每个网格单元的中心(xi,j,yi,j),有一个表示该点流速的矢量(ui,j,vi,j)。这种离散化的二维流场就是本发明在具体实施过程中所要处理的客体对象。
作为示例,图3通过矢量箭头展示了一个离散化的二维流场。该流场的定义域为:[-2,2]×[2,2],任意一个采样点(x,y)处的矢量(u,v)定义为:
u = 1 2 ( x 2 + 2 xy + y 2 ) v = 1 2 ( x 2 + 2 xy - y 2 - 1 ) .
为了叙述方便,将图3所示的示例流场命名为TF。为了展现流场的流动模式和流动行为,需要在流场的适当位置放置适当的流线,建立流场的流线图。
对于图3所示的流场TF,本发明的目的是以并行处理的方式在该流场中放置流线,加速流线放置过程,建立满足流线放置基本要求(即流线分布基本均匀)的流线图。具体实施步骤如下:
步骤1:构造控制网格。
根据流场定义域的大小,构造一个刚好覆盖流场的正交控制网格(Orthogonal Control Grid,OCG)。网格单元的大小可根据实际应用需求设定。网格单元设置得越小,网格数越多,流线的质量越好,但是会更加耗费系统的资源。与此同时,为每个网格单元设置一个计数器,记录该网格单元所包含的流线数目,并限定计数器的计数上限值。每个计数器的初值都为0。对于计数器值为0的网格单元,在OCG中以空白单元格来表示。非空网格单元至少包含一条流线,其计数器值大于0。
对于示例流场TF,按照事先指定的网格大小0.1×0.1,构造得到的OCG如图4所示。每个网格单元的计数上限值设定为100。
步骤2:建立初始虚拟拓扑区域。
将整个流场看作一个初始虚拟拓扑区域,令其为VTA0;利用VTA0所包含的空白网格单元来描述VTA0,即用正交控制网格OCG的所有空白网格单元来描述VTA0
对于示例流场TF的初始虚拟拓扑区域VTA0及其表示结果如图4所示。图中的所有空白网格单元构成一个空白四联通区域,VTA0就是用该空白四联通区域来描述和表示的。
步骤3:将步骤2中建立的虚拟拓扑区域VTA0,当作当前正在处理的虚拟拓扑区域CurVTA,并将其指派给一个处理器元素,由该处理器元素执行后续步骤4-13。
对于示例流场TF,假设VTA0被指派给处理器元素PE0,那么PE0处理的CurVTA就是VTA0
步骤4:在CurVTA内,选取一个流线种子点。
具体方法是:在CurVTA内查找一个面积最大的空白四联通区域。如果存在多个满足条件的空白四联通区域,则任意选取一个。针对所选取的空白四联通区域,计算该区域内所有网格单元的中心坐标的平均值,将其作为一个新的坐标点,如果该点位于该区域内,则选择该点为流线种子点;否则分别计算过新坐标点的水平直线和垂直直线与该区域相交的线段,选取其中最长线段的中点作为流线种子点。
对于示例流场TF,当CurVTA=VTA0时,在此步骤中所选取的流线种子点如图5中的点P0所示。
步骤5、计算流线。
选择步骤4中得到的流线种子点,采用四阶龙格-库塔算法,计算经过该点的流线。如果该流线延伸到流场边界、速度为零的临界点、或者是计数器值已达计数上限的网格单元时,该流线的计算过程就终止。
在该步骤中,对于示例流场TF,当CurVTA=VTA0时,计算得到的流线就是图5中所示的流线L0
步骤6、放置流线。
将步骤5中得到的流线作为新流线放置到流场中,并更新该流线所涉及的控制网格单元的计数值,即将该流线所涉及的每个控制网格单元的计数值加1。
在该步骤中,对于示例流场TF,当CurVTA=VTA0时,流线L0的放置结果以及控制网格的更新结果如图5所示,其中显示为灰色的网格单元的计数器值都大于0。这些灰色的网格单元将VTA0所对应的空白四联通区域(即整个控制网格)分割成两个新的空白四联通区域,即图5所示的E1和E2
步骤7、在CurVTA内,查找空白四联通区域;如果没有找到这样的区域,则转向步骤12。
对于示例流场TF,当CurVTA=VTA0时,在该步骤中查找到的空白四联通区域有两个,分别是图5中所标记的E1和E2
步骤8、对步骤7中的得到空白四联通区域进行分类。
方法是以步骤5中得到的流线的正向流动方向为参照,如果某个空白四联通区域,在该流线的左侧,则将其标记为L,否则将其标记为R。
对于示例流场TF,当CurVTA=VTA0时,根据流线L0的流动方向(如图5的箭头所示),将步骤7中找到的空白四联通区域E1标记为R,将E2标记为L。
步骤9、根据步骤8标记的空白四联通区域创建新的VTA。
具体方法是:如果步骤8中存在标记为L的空白四联通区域,则将步骤8中所有标记为L的空白四联通区域组合成一个新的VTA;如果步骤8中存在标记为R的空白四联通区域,则将步骤8中所有标记为R的空白四联通区域组合成另一个新的VTA。
对于示例流场TF,当CurVTA=VTA0时,按照步骤8的处理结果,本步骤将创建一个与E1对应的虚拟拓扑区域VTA1,以及一个与E2对应的虚拟拓扑区域VTA2
步骤10、根据步骤9中得到的VTA的数目,启动相应数量的处理器元素,将步骤9中得到的VTA,分别指派给不同的处理器元素,由这些处理器元素并行执行步骤4-12。
该步骤至少启动一个处理器元素,最多启动两个处理器元素,因为步骤9中得到的VTA至少一个,最多两个。
对于示例流场TF,当CurVTA=VTA0时,本步骤中将启动两个处理器元素,分别处理步骤9中创建的VTA1和VTA2。不失一般性,令这两个处理器元素分别为PE1和PE2,PE1负责处理VTA1,PE2负责处理VTA2,那么PE1的CurVTA就是VTA1,PE2的CurVTA就是VTA2。PE1和PE2将在各自的CurVTA内并行执行步骤4-12,即同时独立执行步骤4-12。
PE1和PE2并行执行步骤4-12的结果如图6所示,PE1在VTA1内选取的种子点为P1,放置的流线为L1;PE2在VTA2内选取的种子点为P2,放置的流线L2。L1将VTA1分割为VTA3和VTA4,L2将VTA2分割为VTA5和VTA6。VTA3、VTA4、VTA5和VTA6所对应的区域如图6所示。
因此PE1将启动两个处理器元素在VTA3和VTA4内并行放置流线,PE2将启动另外两个处理器元素在VTA5和VTA6内并行放置流线。
以并行方式在VTA3、VTA4、VTA5和VTA6内各自放置一条流线的结果如图7所示,其中流线L3、L4、L5和L6是新添加的。
上述过程将以层次化的嵌套方式持续进行,直到不再产生新的VTA为止。对于示例流场TF,VTA0是第一层,VTA1和VTA2是第二层,VTA3、VTA4、VTA5和VTA6是第三层。后续层次的划分以及相应的流线放置结果与此类似。
步骤11、结束CurVTA内的流线放置以及相关处理工作,释放CurVTA。
进入本步骤,表明CurVTA内的流线放置工作已经完成了,可以释放负责处理CurVTA的处理器元素。对于示例流场TF,当CurVTA=VTA0时,进入本步骤,表明VTA0内的流线放置工作已经完成了,可以释放负责处理VTA0的处理器元素。
步骤12、处理器元素进入等待状态,直到被指派新的VTA而转向步骤4,或者是因其他处理器的处理工作都结束了而转向步骤13。
在步骤11中释放的处理器元素将作为空闲处理器元素进入等待状态,等待被指派新的VTA而转向步骤4,或者是因所有其他处理器元素的处理工作都结束了而转向步骤13。
如果在步骤3中启动的处理器元素以及在步骤10中嵌套启动的处理器元素都进入等待状态,则表明整个流场的流线放置工作结束了。
步骤13、最后,结束整个并行流线放置过程,完成所有流线放置工作。
对于示例流场TF,最终的流线放置结果如图8所示。
图8是在多核并行计算平台上,将每个物理内核当作一个处理器元素,按照本发明的方法建立的流线图。当使用8个处理器元素建立该流线图时,所花费的计算时间是10毫秒。如果不采用本发明的并行流线放置方法,而是采用一个处理器元素在同样的平台上以串行方式建立该流线图,所需要的计算时间是32毫秒。由此可见,本发明通过并行处理有效地加速了流线放置过程,提高了流线放置效率。
另外,作为对比,采用图1和图2所使用的流场作为测试流场,按照本发明的并行流线放置方法建立的流线图如图9所示。对比图1、图2和图9,可以看到本发明的方法既不存在图1所示的伪边界问题,也不存在图2所示的因并行而导致的视觉混乱效果。
应该理解的是,本实施方式只是本发明实施的具体实例,不应该是本发明保护范围的限制。在不脱离本发明的精神与范围的情况下,对上述内容进行等效的修改或变更均应包含在本发明所要求保护的范围之内。

Claims (3)

1.一种适用于二维流场的并行流线放置方法,包括以下步骤:
步骤1、对于给定的二维平面流场,构造一个刚好覆盖该流场定义域的正交控制网格,网格单元的大小根据实际应用需求设定;为每个网格单元设置一个计数器,记录每个网格单元所包含的流线数目,同时设定计数器的计数上限值,该上限值为一个大于或等于1的正整数;初始时刻每个网格单元都是空白的,相应计数器的计数值为0,如果某个网格单元的计数器值不为0,则表示该网格单元是非空的;
步骤2、将流场中由流线、速度为零的临界点或流场边界所包围的、任意形状和大小的封闭区域定义为虚拟拓扑区域VTA,将整个流场定义域看作一个初始VTA,用该VTA所包含的空白网格单元来描述表示这一VTA,具体方法是:用正交控制网格在初始时刻的所有网格单元来描述该VTA;如果某个VTA不包含任何空白网格单元,则认为该VTA是无效的,不在其中放置任何流线;
步骤3、启动一个处理器元素,将步骤2中的初始VTA指派给该处理器元素,由该处理器元素执行步骤4-12,完成该VTA内的流线放置以及相关处理工作;
步骤4、令所指派的处理器元素当前处理的VTA为CurVTA,在CurVTA内,选取一个流线种子点,该流线种子点为CurVTA内的任意点;
步骤5、根据步骤4中得到的流线种子点,计算并得到经过该点的流线;在计算流线的过程中,如果流线延伸到流场边界、速度为零的临界点、或者是计数器值已达计数上限的网格单元时,该流线的计算过程就终止;
步骤6、将步骤5中得到的流线作为新流线放置到流场中,并更新该流线所涉及的控制网格单元的计数值,即将该流线所涉及的每个控制网格单元的计数值加1;
步骤7、在CurVTA内,查找空白四联通区域,如果没有找到这样的区域,则表示CurVTA内的流线放置工作已经结束,转向步骤12;
步骤8、对步骤7中得到的空白四联通区域进行分类,方法是:以步骤5中得到的流线的正向流动方向为参照,如果某个空白四联通区域,在该流线的左侧,则将其标记为L,否则将其标记为R;
步骤9、如果步骤8中存在标记为L的空白四联通区域,则将步骤8中所有标记为L的空白四联通区域组合成一个新的VTA;如果步骤8中存在标记为R的空白四联通区域,则将步骤8中所有标记为R的空白四联通区域组合成另一个新的VTA;
步骤10、根据步骤9中得到的VTA的数目,启动相应数量的处理器元素,并将步骤9中得到的VTA,分别指派给不同的处理器元素,由这些处理器元素并行执行步骤4-12,完成各自所负责的VTA内的流线放置以及相关处理工作;
步骤11、释放当前处理的CurVTA,结束CurVTA内的流线放置以及相关处理工作;
步骤12、处理器元素进入等待状态,直到被指派新的VTA而转向步骤4,或者是因其他处理器元素的处理工作都结束了而转向步骤13;
步骤13、最后,结束整个并行流线放置过程,完成所有流线放置工作。
2.根据权利要求1所述的一种适用于二维流场的并行流线放置方法,其特征在于,所述流线种子点选取方法为:在CurVTA内查找一个面积最大的空白四联通区域,如果存在多个满足条件的空白四联通区域,则任意选取一个,空白四联通区域的面积可用该区域所包含的空白网格单元数来衡量;针对所选取的空白四联通区域,计算该区域内所有网格单元的中心坐标的平均值,将其作为一个新的坐标点,如果该点位于该区域内,则选择该点为流线种子点;否则分别计算过新坐标点的水平直线和垂直直线与该区域相交的线段,选取其中最长线段的中点作为流线种子点。
3.根据权利要求1或2所述的一种适用于二维流场的并行流线放置方法,其特征在于,所述处理器元素是指逻辑上能够独立运行的计算装置,可以是计算机、CPU、CPU内核、进程或者是线程。
CN 201110452884 2011-12-29 2011-12-29 一种适用于二维流场的并行流线放置方法 Expired - Fee Related CN102521854B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110452884 CN102521854B (zh) 2011-12-29 2011-12-29 一种适用于二维流场的并行流线放置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110452884 CN102521854B (zh) 2011-12-29 2011-12-29 一种适用于二维流场的并行流线放置方法

Publications (2)

Publication Number Publication Date
CN102521854A CN102521854A (zh) 2012-06-27
CN102521854B true CN102521854B (zh) 2013-12-25

Family

ID=46292756

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110452884 Expired - Fee Related CN102521854B (zh) 2011-12-29 2011-12-29 一种适用于二维流场的并行流线放置方法

Country Status (1)

Country Link
CN (1) CN102521854B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102930563B (zh) * 2012-08-13 2014-12-24 北京理工大学 一种基于双重控制网格的二维流场流线放置方法
CN102930587B (zh) * 2012-09-05 2014-12-03 北京理工大学 一种无数据共享冲突的二维流线并行放置方法
CN105894438A (zh) * 2014-11-20 2016-08-24 中国海洋大学 基于gpu的多时间帧高感知度二维流线组织算法
CN106202522B (zh) * 2016-07-22 2019-11-08 北京大学 一种流场积分曲线的复用方法及系统
US10559061B2 (en) * 2017-05-08 2020-02-11 Adobe Inc. Computerized generation of ornamental designs by placing instances of simple shapes in accordance with a direction guide
CN108710715A (zh) * 2018-03-29 2018-10-26 中国航天空气动力技术研究院 基于任意抛分网格下粒子搜索技术的飞行器气动特性确定方法
CN109544678B (zh) * 2018-11-06 2022-08-26 北京理工大学 一种分布基本均匀的三维流线并行放置方法
CN110188424B (zh) * 2019-05-16 2021-01-15 浙江大学 一种面向动边界流场数值模拟的局部区域网格重构并行方法
CN110188462A (zh) * 2019-05-29 2019-08-30 无锡恒鼎超级计算中心有限公司 基于神威架构的lbm算法优化方法
CN110232735B (zh) * 2019-06-14 2020-10-02 北京理工大学 一种基于流线计数机制的三维流场可视化方法
CN112948643B (zh) * 2021-05-13 2021-08-06 中国空气动力研究与发展中心计算空气动力研究所 一种基于线程并行的结构化网格流线积分方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101694725A (zh) * 2009-10-10 2010-04-14 北京理工大学 一种拓扑驱动的平面流场流线放置方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101694725A (zh) * 2009-10-10 2010-04-14 北京理工大学 一种拓扑驱动的平面流场流线放置方法

Non-Patent Citations (12)

* Cited by examiner, † Cited by third party
Title
吴占斌.基于GPU的二维流场可视化线性积分卷积方法的研究与实现.《中国优秀硕士学位论文全文数据库》.2011,第20-41页.
基于GPU的二维流场可视化线性积分卷积方法的研究与实现;吴占斌;《中国优秀硕士学位论文全文数据库》;20111202;第20-41页 *
基于HSV颜色模型的二维流场可视化;张文耀 等;《北京理工大学学报》;20100331;第30卷(第3期);第302-306页 *
基于拓扑的二维流场流线放置算法;张文耀 等;《第十二届现代数学和力学会议论文集》;20101231;第296-302页 *
基于流线的流场可视化研究与实现;颜延华 等;《信息技术与信息化》;20080630(第3期);第55-57页 *
基于物理特征的二维流场的并行拓扑结构分析;裴保梅;《中国优秀硕士学位论文全文数据库》;20110212;第3-47页 *
基于纹理的高质量的曲面流场可视化;王康健 等;《计算机辅助设计与图形学学报》;20080131(第1期);第68-74页 *
张文耀 等.基于HSV颜色模型的二维流场可视化.《北京理工大学学报》.2010,第30卷(第3期),第302-306页.
张文耀 等.基于拓扑的二维流场流线放置算法.《第十二届现代数学和力学会议论文集》.2010,第296-302页.
王康健 等.基于纹理的高质量的曲面流场可视化.《计算机辅助设计与图形学学报》.2008,(第1期),第68-74页.
裴保梅.基于物理特征的二维流场的并行拓扑结构分析.《中国优秀硕士学位论文全文数据库》.2011,第3-47页.
颜延华 等.基于流线的流场可视化研究与实现.《信息技术与信息化》.2008,(第3期),第55-57页.

Also Published As

Publication number Publication date
CN102521854A (zh) 2012-06-27

Similar Documents

Publication Publication Date Title
CN102521854B (zh) 一种适用于二维流场的并行流线放置方法
Betkaoui et al. A reconfigurable computing approach for efficient and scalable parallel graph exploration
Zhou et al. Optimization of parallel iterated local search algorithms on graphics processing unit
CN106709503B (zh) 一种基于密度的大型空间数据聚类算法k-dbscan
CN104182571B (zh) 基于Delaunay和GPU的Kriging插值方法
CN103049241A (zh) 一种提高cpu+gpu异构装置计算性能的方法
CN106875320A (zh) 云环境下船舶航行数据的高效可视分析方法
CN103345580A (zh) 基于格子Boltzmann方法的并行CFD方法
CN106875492A (zh) 一种面向gpu包围盒碰撞检测方法
CN102646288B (zh) 一种间隔基本均匀的三维流线放置方法
Quell et al. Shared-memory block-based fast marching method for hierarchical meshes
CN103714384B (zh) 基于移动模式序列与遗传禁忌的集成电路的布图方法
CN106484532A (zh) 面向sph流体模拟的gpgpu并行计算方法
CN106777065A (zh) 一种频繁子图挖掘的方法及系统
CN109032667A (zh) 一种分子动力学模拟中邻接表快速建立方法和系统
CN109542406A (zh) 用于模式开发的并行求解方法和系统
Huck et al. Linking performance data into scientific visualization tools
CN112395073A (zh) 一种面向较大矢量数据的高性能快速渲染方法
Song et al. A real-time interactive data mining and visualization system using parallel computing
CN109461198A (zh) 网格模型的处理方法及装置
Wang et al. Towards scalable and efficient GPU-enabled slicing acceleration in continuous 3D printing
Huang et al. A matching algorithm between precursory 3D process model and 2D working procedure drawing based on subgraph isomorphism
CN105653501B (zh) 一种加速克里金插值的方法
CN102930587B (zh) 一种无数据共享冲突的二维流线并行放置方法
Fehling Algorithms for massively parallel generic hp-adaptive finite element methods

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131225

Termination date: 20141229

EXPY Termination of patent right or utility model