首页 / 一种数值反应堆单元化高效集成网格生成方法及系统

一种数值反应堆单元化高效集成网格生成方法及系统实质审查 发明

技术领域

[0001] 本发明涉及有限元网格技术领域,尤其涉及一种数值反应堆单元化高效集成网格生成方法及系统。

相关背景技术

[0002] 反应堆工程中的热工水力分析对于研究核反应堆内部的各种运行行为至关重要,是核反应堆安全、经济运行的基础。为了实现反应堆堆芯的有效冷却、功率提升和延寿,极其有必要深入了解堆芯的热工水力特性机制及其演化规律。目前,热工水力特性分析主要依赖子通道(如“Yang B W,Ninokata H,Long J,et al.Subchannel analysis–Current practice and development for the future[J].Nuclear Engineering and Design,2021,385:111477.DOI:10.1016/j.nucengdes.2021.111477.”所述)和计算流体动力学(Computational  Fluid Dynamics,CFD)(如“Andersson  B,Campobasso  M 
S.Computational Fluid Dynamics for Engi neers[J].Aeronautical Journal,2014,
118(1208):1215‑1216.”所述)的方法。其中,基于子通道的大尺度分析计算在精密复杂堆芯特征结构的影响下很难精确捕捉冷却剂的温度、速度、压力等热工水力特性变化。与子通道的大尺度计算相比,CFD计算能够以细粒度方式准确捕捉反应堆内冷却剂错综复杂的三维流动和传热特性(如“Kutuk B G I H.Computational fluid dynamics analyses of a VV ER‑1200nuclear reactor vessel for symmetric inlet,asymmetric inlet,and LOC A conditions[J].International Journal of Pressure Vessels and Piping,2020,187(1):104165.”所述)。然而,以精密复杂流场区域的高精细网格划分为核心基础的CFD计算中,网格划分过程极其复杂,是整个计算过程最耗时耗力的步骤,与网格相关的工作甚至能占到整个模拟工作量的70%~80%。此外,所构建网格模型的网格类型、规模、质量、分布等都与后续求解偏微分方程密切相关,且不同网格划分方式会对数值模拟计算的规模、效率和精度产生很大影响,是决定数值计算是否准确甚至是否收敛的关键因素(如“Methods for Grid Generation in CFD Simulations,CADENCE,SYSTEM ANALYSIS,https://resources.system‑analysis.cadence.com/blog.”及“Chen X,Peng D,Gao S.SVM‑based topologi cal optimization of tetrahedral meshes[C].In Proceedings of the 21st Internatio nal Meshing Roundtable(IMR),2013,211‑224.”所述)。
[0003] 目前,针对核反应堆的堆芯流体域网格模型构建基本依赖商业网格划分工具,如Ansys ICEM、Ansys Fluent Meshing、Gmsh、Csimsoft Trelis等。然而,由于堆芯结构的几何复杂性、尺寸精细性、规模庞大性及高保真数值计算要求,使得利用商业工具为堆芯流场生成高分辨率的精细网格模型非常具有挑战性。1)首先,利用商业工具的几何建模和网格划分是两个解耦的过程,用户依赖性都非常强,且面向反应堆全堆芯的几何和网格模型的构建过程都非常复杂;2)其次,基于商用软件的画网格过程所需参数设置较多,且用户对参数范围难以把控,极易出现由于参数设置不合适而导致不能生成网格模型,或模型中极易出现错误网格的情况;3)另外,网格模型生成后一般仍需大量的用户交互来微调网格使其满足用户需求,但网格划分过程非常脆弱,对某一参数的微小调整很容易导致整个网格模型生成过程失败(如“Jain R,Tautges T.RGG:Reactor geometry(and mesh)generator[C].In Proceedings of the International Congress on Advances in Nuclear Power Plants,2012.”所述);4)所生成网格模型中存在的低质量网格较多,网格质量优化难以保持边界特性,网格疏密分布不合理且不考虑流场特性,精细位置的拟合效果较差(如“Escobar J M,Montenegro R,Montero G,et al.González‑Yuste,Smoothing and local refinement techniques for improving tetrahedral mesh quality[J].Computers Structures,2005,83(28‑30):2423‑2430.”所述);5)全堆芯网格规模非常大,商业工具的网格划分方式需要大量内存和执行时间,且对主求解计算挑战巨大(如“Lu X,Li Y,Chen D,et al.Challenges of high‑fidelity virtual reactor for exascale computing and research progress of China Virtual Reactor[J].Nuclear Engineering and Design,2023,413:112566.”所述);6)商业工具只针对网格模型生成一个整体网格文件,效率低、所需计算内存及IO消耗非常大,极易出现因内存限制而无法成功生成网格文件,以及可视化困难等情况。鉴于此,本发明提出了一种数值反应堆单元化高效集成网格生成方法及系统。

具体实施方式

[0045] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0046] 本发明提供一种数值反应堆单元化高效集成网格生成方法及系统,其基本思想是:基于堆芯的同构性结构特点,将复杂庞大的堆芯系统拆分成可重复的最小基本单元,对基本单元进行快速网格划分,并将网格化基本单元进行并行复制平移,合并成全堆芯或任意堆芯位置的流场网格模型。本发明的目标是根据用户输入的控制参数,自动生成一套位于特定堆芯位置、疏密分布合理、满足用户网格质量、网格规模、文件设置要求的高质量目标(流道或组件或全堆芯)网格模型。
[0047] 下面结合具体实例对本发明所提出的一种数值反应堆单元化高效集成网格生成方法进行说明,具体内容如下。
[0048] 实施例1:
[0049] 一种数值反应堆单元化高效集成网格生成方法及系统,基于该方法和系统构建定制化目标网格模型的计算流程如图3所示。具体实施架构如图4所示,通过系统架构所示的有效交互连接,可进行数据传输和系统功能的实现。
[0050] 为了保证该方法和系统的成功实施,首先进行了针对全堆芯流场的几何单元分割、全堆芯分层编号、平移参数文件设计、网格文件的编号模式设计。请参阅图1,具体包括如下内容:
[0051] 1)全堆芯几何单元分割方案:
[0052] 任意类型的核反应堆都包含着特定种类的组件结构,且各类型组件的数量、排布方式、所在堆芯位置都是确定的。其中,组件大都为尺寸相同的六角形外套管结构且以蜂窝状排布于堆芯内部。堆芯内,六角形组件周围都分布着尺寸相同的6个组件,且组件间存在狭窄间隙。堆芯流场由组件内流场和组件间狭窄间隙内的流场构成,如CEFR快堆。
[0053] 针对组件结构,如图5(a)所示,沿轴向(Z轴方向),将其分割为可重复的最小基本单元,以绕丝螺距切割CEFR燃料组件得到的最小基本单元为unit1和unit2。
[0054] 组件间间隙以适应组件的方式具有相互连通、不规则的复杂特性,如图5(b)、(c)、(d)所示可将组件间流场切割为三棱柱和长方体的几何形状,并以适应组件基本单元的形状可三棱柱和长方体切割为基本单元unit1和unit2。
[0055] 流道为组件内包裹燃料棒的长方体液体通道,流道的切割适应组件的切割方式,因此可获得与组件对应的最小基本单元,如图5(e)所示,燃料组件内流道的最小基本单元为类似组件的为unit1和unit2。
[0056] 2)全堆芯分层编号方案:
[0057] 分别为堆芯内的组件、间隙和组件内的流道进行分层编号,针对三种结构的编号方式类似,这里只给出组件编号方式(编号结果见图6(a)),组件内流道和组件周围间隙编号结果不再赘述。如图6(b)、(c)中展示了组件周围间隙单元的编号结果和组件内流道的分层编号结果。编号完毕后,会根据编号结果为堆芯内的组件、间隙单元、组件内流道指定初始位置。具体地,堆芯内组件的分层编号方式如下:
[0058] 以堆芯最内层组件的六角形中心为坐标原点,将正X轴穿过的组件为各层组件编号的起始位置并逆序编号;
[0059] 第0层组件数为1,第0层组件编号为0‑0;
[0060] 第i层组件数为(i+1)×6‑6,则第i层组件编号为i‑1、i‑2、......、i‑i×6(i>0);
[0061] 编号i‑j(1≤j≤i‑i×6);其中,i指层数,j指逆序第j个组件,即i‑j指堆芯第i层的第j个组件;
[0062] 3)平移参数文件设计方案:
[0063] 平移参数文件包括组件、间隙、流道三类。任意类平移参数文件内记录了由初始位置到同类型非初始位置的X、Y方向的平移值。三种类型的平移参数文件设计类似,这里以组件平移参数文件为例进行介绍,组件平移参数文件由多部分构建,具体设计如下:
[0064] 第一部分依次记录堆型、组件总数、组件类型总数;
[0065] 第二部分每一行,首先为一个记录组件类型的关键字,之后记录此类型组件总数及为其设置的初始位置编号;
[0066] 之后包括M部分(M为堆芯组件层数),各部分依次记录堆芯由内向外一层组件的信息,具体地,
[0067] 每部分的第一行:首先是一个记录层数的关键字,之后为一个记录此层组件总数的值和一个记录此层组件种类数的值;
[0068] 之后的每一行:首先是一个记录此层组件编号的关键字;之后关键字对应的value包括3个值,初始位置平移至此编号位置所需的X、Y方向平移值和一个记录此编号组件类型的值。
[0069] 4)网格文件的编号设计方案:
[0070] 包括局部和全局的文件命名格式,具体如下:
[0071] 局部文件命名:M‑N‑k‑gap/ase/chan.xx,堆芯M‑N号间隙/组件/流道位置上部件模型对应的第k个局部网格文件;
[0072] 全局文件命名:M‑N‑gap/ase/chan.xx,堆芯M‑N号间隙/组件/流道位置上部件对应的整体网格模型文件。
[0073] 在上述设计的支持下,进一步设计一种数值反应堆单元化高效集成网格生成,该系统中各功能模块的具体实施方式如下:
[0074] 功能模块1.用户参数输入:用户输入刻画目标网格模型的控制参数,控制包括:堆型参数、流体构型参数、堆芯位置参数、网格相关的参数及网格文件相关的参数。用户具体在系统前端的各个功能界面中进行参数设置,该功能模块的参数逻辑关系如图7所示。
[0075] a.堆型参数,即核反应堆类型,具有用不同的关键字表示不同的反应堆类型,如“cefr”表示中国实验快堆CEFR,“vhtr”表示超高温气冷反应堆VHTR、“lfr”表示铅冷快堆LFR;
[0076] b.流体构型参数,即指定堆型内的流场参数,包括“full”和“non‑full”两类。其中“full”具体包括“full‑fluid”表示用户想要生成全堆芯的流场网格模型,“full‑ase”表示全堆芯组件流场,“full‑gap”表示全堆芯间隙流场;“non‑full”包括“ase”表示用户想要生成特定堆芯位置的组件流场网格模型,“gap”表示特定堆芯位置的间隙流场,“channel”表示用户想要构建特定堆芯位置的流道网格模型;
[0077] c.堆芯位置参数,当用户选择“non‑full”时,需要输入特定组件或间隙或流道的堆芯位置参数。这里具体采用一种分层的位置编号方式为堆芯内各组件、间隙、流道指定唯一的位置编号;
[0078] d.网格相关的参数包括网格模型生成、网格质量优化以及网格模型分析分别对应的控制参数。网格模型生成的控制参数还包括网格规模参数“meshNum”、边界层参数“boundLayer”;网格质量优化的控制参数包括优化类型参数“global”和“local”,分别表示全局优化和局部优化模式,“maxCount”表示优化计算的最大迭代轮数,“qualiThreshold”表示可提前终止质量迭代优化计算的质量阈值;网格模型分析控制参数“meshQuality”表示模型分析计算的质量度量指标,包括广泛应用的质量度量标准,如“AspectRatio”、“Collapse”、“EquiAngleSkew”供用户选择。
[0079] e.网格文件相关的参数包括“fileType”表示网格文件类型,包括“.msh”、“.exo”、“.inp”等广泛应用的网格文件类型;网格文件数“flieNumber”,其可控制为目标网格模型生成的网格文件数;文件合并参数“IsMerge”,默认为“no”即为用户生成flieNumber个连续的小网格文件共同刻画目标网格模型,若用户选择“yes”则将这些连续的小网格文件合并为目标网格模型的一个整体网格文件。用户可通过输入文件编号来选择下载目标网格模型的局部或全局网格文件。这里具体设计了一套针对不同流体构型的网格文件命名规则。
[0080] 功能模块2.目标网格模型生成:具体采用如下的4阶段过程生成用户参数定制化的目标网格模型。
[0081] 阶段1.粗网格模型筛选:根据用户输入的堆型及流体构型、堆芯位置参数从预先构建的网格模型库中筛选出基本单元相关的粗网格模型。具体操作如下:
[0082] a.首先通过堆型参数及流体构型参数确定基本单元相关粗网格模型的类型和数量;
[0083] b.之后根据堆型参数定位数据库中的堆型表单,并从堆型表单中进一步定位相关的粗网格模型表单;
[0084] c.之后从粗网格模型表单中进一步根据流体构型参数定位需要的目标表单:
[0085] c1.若流体构型参数为full—>full‑fluid或full—>full‑ase,表明用户想要生成全堆芯流场或全堆芯组件流场的网格模型,则目标表单为组件表单,根据表单中记录的各类型组件相关粗网格模型存储地址定位所有关联的粗网格模型;
[0086] c2.若流体构型参数为full—>full‑gap,表明用户想要生成全堆芯间隙流场网格模型,则目标表单为间隙表单,根据表单中记录的各类型间隙相关粗网格模型存储地址定位所有关联的粗网格模型;
[0087] c3.若流体构型参数为non‑full—>ase,则表明用户想要生成特定堆芯位置的组件流场网格模型,则根据堆芯位置参数确定组件类型,并从组件表单中搜索该类型组件相关粗网格模型存储地址定位其关联的粗网格模型;
[0088] c4.若流体构型参数为non‑full—>gap,则表明用户想要生成特定堆芯位置的间隙流场网格模型,则根据堆芯位置参数确定间隙类型,并从间隙表单中搜索该类型间隙相关粗网格模型存储地址定位其关联的粗网格模型;
[0089] c5.若流体构型参数为non‑full—>channel,则表明用户想要生成特定堆芯位置的流道网格模型,则根据堆芯位置参数确定流道类型,并从组件表单中搜索该类型流道相关粗网格模型存储地址定位其关联的粗网格模型;
[0090] 阶段2.粗网格模型细化及优化计算:根据用户输入的网格规模参数和边界层参数执行对粗网格模型的细化及优化计算,优化计算包括边界拟合优化计算和质量优化计算。具体操作过程如下,
[0091] a.首先执行对粗网格模型的细化计算使模型网格量达到预设的参数值,具体采用一种并行地迭代细化方式。
[0092] a1.首先将粗网格模型分解为k个连续的局部小区域{reg1,reg2,...,regk};
[0093] a2.识别各局部小区域内的网格{S1,S2,S3,....,Sk},其中每个集合对应一个小区域,其中存储了该小区域内的所有网格单元;
[0094] a3.执行任务分配,即将每个集合分配给一个CPU进程,这些进程对持有的集合内的网格执行并行的细化计算;
[0095] a4.任意进程pi,遍历集合Si内的网格mi,将网格mi细分为指定数量的子网格单元{mi1,mi2,...miw}并将这w个单元代替mi存入集合Si中;
[0096] a5.当所有进程执行完毕,统计网格总量,若达到预设阈值,则执行步骤a6,否则执行步骤a7;
[0097] a6.结束各CPU进程的计算,并收集各进程持有的小区域网格,并将它们合并为整体细化的网格模型;
[0098] a7.重复执行步骤a4的网格细化计算;
[0099] b.进一步根边界层参数识别细化计算得到网格模型的边界网格,并对边界网格执行拟合优化计算,具体是识别位于边界外的网格点,并将网格点移动到距离最近边界的投影位置。
[0100] c.对细化和优化后的网格模型执行网格质量优化,此步骤默认采用全局质量优化策略,具体实施步骤见“功能模块4”的全局优化计算过程。
[0101] 基于上述的细化及优化计算可将粗网格模型构建为高质量网格模型,即网格规模和网格质量满足要求、网格分布合理、精密复制边界位置的网格具有较高拟合性。然而,如此构建的网格模型还不满足合并要求,需对其执行阶段3的调整计算得到满足要求的基本单元网格模型。
[0102] 阶段3.基本单元网格模型构建:根据阶段2输出的高质量网格模型构建满足合并要求的基本单元网格模型。根据不同的流体构型参数,基本单元的种类和数量不同,具体包括3类,即组件基本单元、间隙基本单元、流道基本单元,它们都是基本不匹配面网格的缝合计算构建的,其中不匹配面网格根据不同的流体构型情况,可能基于阶段2输出模型的底面和顶面获得,也可能基于阶段2输出模型的平行侧壁面获得。具体的缝合计算过程如下:
[0103] a.获取平行的不匹配缝合面的面网格构成集合S1,识别两缝合面边界线上的网格点构成集合N1和N2;
[0104] b.连接N1和N2内的网格点构建边界壁面网格,得到集合S2,称这些三角形为活跃三角形,此外,除S1内的面网格外,只属于唯一一个四面体网格的三角形也属于活跃三角形;
[0105] c.遍历集合S2中各个三角形,为其从S1内定位一个可构成四面体的合法网格点,若新构建四面体不与已存在的任何四面体发生碰撞则该网格点为合法节点;
[0106] d.若合法网格点有多个,则选择构成四面体质量最大的网格点与当前三角形构建四面体网格;
[0107] e.若不存在合法节点,则为此三角形从两缝合面的平行空间内计算一个最佳节点,并与当前三角形构建为四面体网格;
[0108] f.当遍历万S2中所有三角形,则清空S2;
[0109] g.若当前模型中存在活跃三角形,则识别这些三角形并存入集合S2,并继续执行步骤h,否则执行步骤i;
[0110] h.重复步骤c~g;
[0111] i.将缝合计算得到的网格模型与阶段2输出的模型合并为基本单元的网格模型,并结束计算。
[0112] 如图8展示了基于上述过程为CEFR燃料组件构建的基本单元网格模型。
[0113] 阶段4.复制平移合并成目标网格模型:根据所构建的初始位置上的基本单元网格模型文件,进行大规模并行地复制平移计算,生成要求的目标网格模型文件。
[0114] 若目标网格模型为特定堆芯位置上的组件/间隙/流道网格模型,则执行下述计算过程:
[0115] a1.获取基本单元的网格文件{f1,f2,...,fm},根据基本单元文件数m开启m个进程{p1,p2,...,pm};
[0116] a2.将此m个网格文件分别分配给m个进程,即f1—>p1,...,fm—>pm;
[0117] a3.根据m个文件所代表的轴向(即Z轴方向)范围以及目标网格模型的完整长度,计算各进程沿轴向的平移参数值{z1,z2,...,zm};
[0118] a4.m个进程并行执行轴向上的复制平移计算,即任意进程pi对其持有的网格文件fi,识别其中的各个网格单元,并将构成网格单元的各个节点(x,y,z)更新为(x,y,z+zi=z’),即得到新网格文件fi’。
[0119] a5.读取对应的平移参数文件,根据目标网格模型所在的堆芯位置识别沿径向(即X、Y轴方向)的平移参数(Δx,Δy);
[0120] a6.m个进程并行执行径向上的复制平移计算,即任意进程pi对其持有的网格文件fi,识别其中的各个网格单元,并将构成网格单元的各个节点(x,y,z)更新为(x+Δx=x’,y+Δy=y’,z’),即得到新网格文件fi”。
[0121] 基于上述步骤,当所有进程计算完毕即可得到指定堆芯位置上目标网格模型的m个连续小网格文件{f1”,f2”,...,fm”}。
[0122] 若目标网格模型为全堆芯流场/全堆芯间隙流场/全堆芯组件流场,则执行下述计算过程:
[0123] b1.为各堆芯位置分配一组进程;
[0124] b2.执行上述步骤a1~a5得到各类型初始位置上流场的完整网格模型对应的连续小网格文件;
[0125] b3.将各类型初始位置的连续小网格文件分发给同类型非初始位置对应的进程组;
[0126] b4.不同堆芯位置上的进程组同时执行组内和组间的并行计算生成各堆芯位置流场的连续小网格文件,各位置径向平移参数从对应的平移参数文件中获得。
[0127] 基于上述步骤,当所有进程计算完毕即可得到全堆芯流场/全堆芯间隙流场/全堆芯组件流场对应的目标网格模型的海量连续小网格文件。
[0128] 功能模块3.网格模型分析:具体根据用户指定的网格质量标准计算目标网格模型的网格规模、网格节点量,最差、平均及最佳网格质量,进一步计算模型中不同质量区间的网格占比。
[0129] a.由于其他位置的网格模型为初始位置基本单元网格模型的精确复制,因此根据初始位置上的网格单元数、网格节点数以及复制平移次数即可快速计算目标网格模型的网格单元总数totaMesh和节点总数totaNode。
[0130] b.通过收集所有初始位置上基本单元的网格,并根据指定标准即可快速计算出目标网格模型的最差网格质量minQua、平均网格质量aveQua、最高网格质量maxQua,以及模型中网格在各质量区间的分布情况。
[0131] 功能模块4.网格质量优化:具体根据用户输入global或local,优化计算的最大迭代轮数maxCount和质量阈值qualiThreshold参数,为用户上传网格模型执行全局或局部网格质量优化计算。
[0132] 全局优化计算的具体过程如下:
[0133] a1.首先对网格模型执行区域分解计算,得到多个局部分解区域{R1,R2,...,Rv},其中各分解区域内包含的网格单元数相似;
[0134] 开启v个CPU进程{p1,p2,...,pv}并将v个分解区域分发给各处理器进程,v个进程并行执行下述的计算;
[0135] a2.对于任意分解区域Ru,识别其持有的所有网格节点O={o1,o2,...,onum},num为Ru内分布的总网格节点量,任意网格点的坐标可表示为oi=(oi.x,oi.y,oi.z)(1≤i≤num),进一步识别各网格节点的一阶邻居网格,并构建哈希结构HasL,HasL中存储以“oi‑>{tw,...,tf}”为键值对的元素,{tw,...,tf}中存储了以节点oi为网格点的所有四面体网格;
[0136] a3.利用O内的所有节点信息构造下述的二维矩阵Onum×3:
[0137]
[0138] a4.进一步利用O内节点间的拓扑关系,根据公式2构建节点相关的Laplace矩阵Lnum×num:
[0139]
[0140] 其中,oi和oj是O内的两个网格节点,1≤i,j≤num。为了能够在网格变形过程中获得更好的逼近性能,这里采用余切权重系数wij,改进二维余切权重获取其三维扩展形式如下:
[0141]
[0142] 其中,A(i,j)中记录了O内所有可以与oi和oj形成三角形的网格节点,其中αt表示三角形中两边 和 之间的夹角。此外,E(i)记录了Ruv中可以与oi构成边的所有节点;
[0143] a5.根据O中节点相关的位置矩阵Onum×3及Laplace矩阵Lnum×num进一步计算各节点的Laplace坐标矩阵δnum×3:
[0144] δnum×3=Lnum×numOnum×3                    (4)
[0145] a6.利用计算出的节点的Laplace坐标矩阵δnum×3、节点的初始位置矩阵Onum×3及收缩因子lr迭代计算网格节点的新位置:
[0146]
[0147] 其中,k为当前迭代计算的轮数, 是根据第k‑1次迭代计算的增量节点坐标及其Laplace坐标 求得的。K表示允许的最大迭代次数且k≤K,收缩因子lr起到控制每次迭代计算期间节点移动幅度的作用,可有效避免错误网格的产生;
[0148] 在全局优化约束下步骤a6的具体执行过程如下:
[0149] a61.设置迭代次数k和K的初始值,其中k初始为1,K值由用户确定,计算始矩阵的初始值;
[0150] a62.迭代次数k加1;
[0151] a63.判断k是否不大于K,若是执行步骤a64,否则执行步骤a66;
[0152] a64.遍历HasL中的各个元素“oi—>{tw,...,tf}”,1≤i≤num,从矩阵 中获k取节点oi在当前迭代下的新位置o i,为集合{tw,...,tf}中四面体计算网格质量之和为k
quak‑1,更新节点oi为oi并计算新网格质量之和为quak;
[0153] a65.判断quak是否大于quak‑1,若是则更新HasL中的各个元素“oi—>{tw,...,tf}”k k为“oi—>{tw,...,tf}”,此处{tw,...,tf}中四面体网格点为更新的oi;
[0154] a66.HasL中各元素遍历完毕,判断Quak‑Quak‑1≥ξ是否成立,若是根据公式5迭代执行步骤a62,否则执行步骤a66,其中Quak是HasL遍历后Ru内网格质量总和,Quak‑1是遍历前的网格质量总和;
[0155] a66.终止进程计算;
[0156] a67.当v个进程全部终止计算,则合并各进程持有的局部区域。
[0157] 全局优化计算的具体过程如下:
[0158] 当各局部区域分发给各进程后,任意进程pi会首先识别局部区域Ri内质量低于阈值β的所有网格,并构成这些网格对应的网格节点集合O,针对此筛选集合执行步骤a2~a6,其中在局部优化约束下,步骤a64更新如下:
[0159] 遍历HasL中的各个元素“oi—>{tw,...,tf}”,1≤i≤num,从矩阵 中获取节k点oi在当前迭代下的新位置oi,为集合{tw,...,tf}中四面体的最差网格质量为quak‑1,更新k
节点oi为oi并计算最差网格质量为quak;
[0160] 进一步步骤a65更新如下:
[0161] 判断quak是否小于quak‑1,若是则更新HasL中的各个元素“oi—>{tw,...,tf}”为k k“oi—>{tw,...,tf}”,此处{tw,...,tf}中四面体网格点为更新的oi;
[0162] 功能模块5.网格文件生成:首先,根据用户输入的文件类型“fileType”、文件数“flieNumber”,执行“功能模块2”中“阶段4”的并行文件生成过程构建目标网格模型的连续小网格文件;
[0163] 之后,用户通过为文件合并“IsMerge”参数选择“yes”或“no”的参数值,控制系统是否合并连续小网格文件为全局整体网格文件;
[0164] 若选择“yes”则合并为整体网格文件,可选择整体文件的下载;
[0165] 若选择“no”则用户可选择任意小网格文件,或全部小网格文件进行下载。
[0166] 具体如图9展示了文件下载的系统服务流程。
[0167] 功能模块6.型可视化展示模块:用户通过该系统模块可对选择的特定堆芯位置流场的局部或全局网格模型进行可视化展示。
[0168] 功能模块7.网格集成函数库:此模块集成了对复杂网格的各种数据结构表示及面向网格的各种高效复杂操作函数,为其他模块的高效计算提供基础。其中基本的数据结构定义如下:
[0169] 网格点被定义为“node”结构,其属性包括“node.X”、“node.Y”、“node.Z”共同记录node的坐标,“node.id”记录节点的编号、“node.edge”记录了该节点所属的网格边编号、“node.faces”记录了该节点所属的面网格编号、“node.meshes”记录了该点所属的体网格的编号;
[0170] 网格边被定义为“edge”结构,其属性包括“edge.strnode”、“edge.strnode”分别记录了构成网格边的两个网格点,“edge.id”记录了边的编号、“edge.faces”记录了该边所属的面网格编号、“edge.meshes”记录了该边所属的体网格的编号;
[0171] 网格面被定义为“face”结构,其属性包括“face.nodes”记录了构成面的节点、“face.edges”记录了构成面的边、“face.id”记录面编号、“face.meshes”记录了该面网格所属的体网格的编号;
[0172] 网格被定义为“mesh”结构,其属性包括“mesh.nodes”记录了构成网格的节点、“mesh.edges”记录了构成网格的边、“mesh.id”记录了网格编号、“mesh.neighbors”记录了与该网格邻接网格的编号;
[0173] 以上述结构为基础,针对网格的索引结构包括各种树型的三维空间索引、哈希索引、分区分块索引及一些混合索引。
[0174] 以上述数据结构为基础还包括针对网格点、网格边、面、体的各种查询函数。
[0175] 功能模块8.网格模型库:此模块是方法和系统功能实现的数据管理中心,其存储了与各类型反应堆关联的各类型组件、流道、间隙单元相关的初始粗网格模型。具体地表单设计如下表所示,数据库一共包括四种类型的表单:
[0176] (a)堆型表单
[0177] ID ReactorType related‑Ase related‑chan related‑gap Create‑time0 cefr cefr‑ase cefr‑chan cefr‑gap xx
1 vhtr vhtr‑ase vhtr‑chan vhtr‑gap xx
2 lfr lfr‑ase lfr‑chan lfr‑gap xx
… … … … … …
[0178] (b)组件表单
[0179]
[0180] (c)流道表单
[0181]
[0182] (d)间隙表单
[0183]
[0184] a.堆型表单,记录了系统支持的反应堆类型,如CEFR快堆cefr、VHTR反应堆vhtr、LFR反应堆lfr等,一种类型的反应堆在堆型表中占据一个条目,表中“related‑Ase、related‑Chan、related‑Gap”分别记录了与特定堆型关联的组件、流道、间隙流场对应的表单;
[0185] b.组件表单,某一特定堆型都具有其对应的组件表单,记录了该堆型内包含的组件类型,各类型组件的数量,组件的初始位置及基本单元对应粗网格模型的轴向范围以及基本单元的轴向范围,还包括粗网格模型文件的存储位置信息;
[0186] c.流道表单,某一特定堆型都具有其对应的流道表单,记录了该堆型内包含的流道类型,各类型流道所属的组件信息(如表c中“cefr‑fuel”代表CEFR堆芯内的燃料组件),流道的初始位置及基本单元对应粗网格模型的轴向范围以及基本单元的轴向范围,粗网格模型文件的存储位置信息;
[0187] d.间隙表单,某一特定堆型都具有其对应的间隙表单,记录了该堆型内包含的间隙类型,各类型间隙关联的组件情况(如表d中“cefr‑fuel”),间隙的初始位置及基本单元对应粗网格模型的轴向范围以及基本单元的轴向范围,粗网格模型文件的存储位置。
[0188] 综上所述,本发明基于核反应堆堆芯同构性结构特点设计了一种数值反应堆单元化高效集成网格生成方法及系统,具有高鲁棒性和可扩展性、低用户依赖性、避免了用户的几何建模且极大简化了网格模型构建过程,可为堆芯的高保真模拟计算实现定制化网格模型构建;
[0189] 此外,本发明设计了针对全堆芯流场的几何单元分割、全堆芯分层编号、平移参数文件、网格文件的编号模式、网格模型数据库的设计方案,并设计了一套针对大规模流场网格模型的全局和局部网格质量优化方法,可实现全堆芯的高质量网格模型构建;
[0190] 更进一步地,本发明设计了针对核反应堆的大规模并行海量网格(文件)生成策略,可极大提高大规模堆芯流场的网格划分效率及内存消耗,可实现全堆芯和任意堆芯位置处流场的高精细、高效率网格模型构建;
[0191] 最后,本发明设计了针对目标网格模型的连续多局部小网格文件的协同刻画方式有益于网格模型的并行生成,有效缓解了大规模网格模型文件的生成和存储压力,进一步缓解了大规模网格模型对区域分解及主求解计算带来的挑战,有效弥补了大规模网格可视化时数据加载困难的缺点。
[0192] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页 第1页 第2页 第3页