本发明涉及的是一种仿真方法,具体地说是核设施仿真方法。
背景技术:
核设施维修与退役是核设施生命周期的重要环节。在制定核设施维修或退役策略时,为降低辐射对工作人员的伤害,需要准确地了解核设施辐射剂量分布。在核退役辐射仿真中,为获得准确的辐射场剂量分布结果,就必须对复杂的核设施模型进行简化计算。
目前,在核退役虚拟辐射场计算的所有方法中,蒙特卡罗方法与点核积分方法应用广泛,且都可以通过标准输入文件计算辐射场剂量分布。国外已有的软件一般采用直接构建输入文件的方法计算核设施辐射场剂量分布,在处理内部为空的核设施模型时将模型转换为非空的模型,剂量分布计算误差大。
综上所述,开发出一种准确、高效的可将内部为空的核设施模型简化为可计算辐射剂量分布的程式化模型的仿真方法对核退役仿真具有重大的实际意义。
技术实现要素:
本发明的目的在于提供将核设施模型简化为程式化模型,并生成标准输入文件的一种核设施退役模型程式化仿真方法。
本发明的目的是这样实现的:
本发明一种核设施退役模型程式化仿真方法,其特征是:
(1)用3dsmax软件根据确定的核设施参数构建模型文件,并将模型文件保存为3ds格式;
(2)导入3ds格式的模型文件,获得模型参数;
(3)构建模型包围盒;
(4)根据实体对象包围盒构建程式化模型;
(5)根据实体对象顶点在程式化模型内的个数确定实体对象外部程式化模型;
(6)根据实体对象的模型参数构建实体对象内部程式化模型;
(7)使用组合几何方法构建实体对象的程式化模型并写为标准输入文件;
(8)将标准输入文件输入到辐射剂量计算程序内获得辐射场剂量分布。
本发明还可以包括:
1、所述的构建模型包围盒包括:
遍历模型所有顶点,根据模型顶点在x、y、z方向上的最大最小值构建模型场景立方体包围盒,遍历每个实体对象的所有顶点,构建实体对象立方体包围盒,尺寸为△x×△y×△z,包围盒中心点为o(xo,yo,zo)。
2、所述的根据实体对象包围盒构建程式化模型包括,
根据实体对象包围盒的中心点与尺寸,构建基于包围盒的椭球体、柱体和立方体的程式化模型:
(1)椭球体方程为:
当△x=△y=△z时,方程为球体方程;
(2)柱体的母线平行于坐标轴:
母线平行z轴的柱体方程:
当△x=△y时,方程为圆柱体方程;
(3)立方体方程为:
3、所述的根据实体对象顶点在程式化模型内的个数确定实体对象外部程式化模型包括:
计算椭球体和柱体程式化模型包含顶点的个数,选择满足顶点数目要求且顶点最多的模型作为实体对象的外部程式化模型,如果顶点个数相同,则选择椭球体作为实体对象的外部程式化模型,如果椭球体和柱体程式化模型都不满足数目要求,则选择立方体作为实体对象的外部程式化模型。
4、所述的根据实体对象的模型参数构建实体对象内部程式化模型包括:
导入实体对象的模型参数,如果该实体对象为“sl”,内部为空的壳状结构,则根据该实体对象的厚度与外部程式化模型构建实体对象的内部程式化模型。
5、所述的使用组合几何方法构建实体对象的程式化模型并写为标准输入文件包括:
使用组合几何方法,利用布尔运算将所有实体对象外部程式化模型、内部程式化模型组合成为实体对象的程式化模型,并将实体对象的程式化模型与对应的模型参数写为标准输入文件;
组合几何方法的过程如下:
(1)为外部程式化模型、内部程式化模型编号;
(2)在内部程式化模型编号前附上“+”,外部程式化模型编号前附上“-”,其中“-”表示在基本体内部,“+”表示在基本体外部;
(3)将同一实体对象的外部程式化模型、内部程式化模型用布尔逻辑符“and”连接构成实体对象的程式化模型,将不同实体对象的程式化模型用布尔逻辑符“or”连接构成场景的程式化模型,其中“and”表示交集,“or”表示并集。
本发明的优势在于:
1、本发明实现了高效的将复杂核设施3dsmax模型简化为可计算辐射剂量分布的程式化模型;
2、本发明实现了对内部为空的壳状核设施模型的辐射场剂量分布计算。
附图说明
图1为本发明的流程图;
图2a为根据实体对象包围盒构建程式化模型(柱体),图2b为根据实体对象包围盒构建程式化模型(椭球体),图2c为根据实体对象包围盒构建程式化模型(立方体);
图3为使用组合几何方法构建实体对象的程式化模型。
具体实施方式
下面结合附图举例对本发明做更详细地描述:
结合图1-3,本发明采用3dsmax软件建模与c++语言编程,主要功能为:构建确定参数的核设施模型,使用程式化建模和组合几何方法,将核设施3dsmax模型简化为程式化模型,该程式化模型生成的标准输入文件可用点核积分方法和mcnp计算辐射场剂量分布。整个发明包括3dsmax建模、核设施模型程式化、生成标准输入文件三个模块。
本发明采用以下技术方案:
1、用3dsmax软件根据确定的核设施参数构建模型,并将文件保存为3ds格式。
1)在3dsmax软件中直接为模型对象命名。
源项类模型命名以so为区分符开头,命名格式为:
so,名称
举例:so,box1
内部非空的实体类屏蔽模型命名以sh为区分符开头,命名格式为:
sh,名称
举例:sh,box2
内部为空的壳类屏蔽模型命名以sl为区分符开头,命名格式为:
sl,壳最厚处的厚度,名称
举例:sl,4,sphere1
2)在3dsmax材质编辑器内对材质球命名,将材质球导入到使用该材质的实体上。
源项类命名格式为:
能量,活度,±份额,其他信息
举例:0.052,3.27e+06,-1,u
屏蔽类材质命名格式为:
密度,原子序数,±份额,其他信息
举例:2.702,13,-1.0,al
其中“+”代表原子个数的份额,“-”代表质量份额。
2、导入3ds核设施模型文件,获得模型参数。
导入3ds文件,读取3ds文件顶点列表,具体的算法如下:
1)定义3个动态指针,分别指向3个动态数组,用来存储模型的所有顶点,定义一个变量count,用来保存模型的顶点总数;
2)将所有的顶点读入到指定的内存;
3)删除指针变量,释放内存。
3、构建模型包围盒。
遍历模型所有顶点,根据模型顶点在x、y、z方向上的最大最小值构建模型场景立方体包围盒。遍历每个实体对象的所有顶点,构建实体对象立方体包围盒,尺寸为△x×△y×△z,包围盒中心点为o(xo,yo,zo)。
4、根据实体对象包围盒构建程式化模型。
如图2所示,根据实体对象包围盒的中心点与尺寸,构建基于包围盒的椭球体、柱体和立方体的程式化模型。
1)椭球体方程为:
当△x=△y=△z时,方程为球体方程。
2)柱体的母线平行于坐标轴。下面给出了母线平行z轴的柱体方程:
当△x=△y时,方程为圆柱体方程。母线平行x轴、y轴的柱体方程与此类似。
3)立方体方程为:
5、根据实体对象顶点在程式化模型内的个数确定实体对象外部程式化模型。
实验证明,如果实体对象85%以上的顶点都在程式化模型内,则该程式化模型能较好的拟合实体对象。计算椭球体和柱体4种程式化模型包含顶点的个数,选择满足顶点数目要求且顶点最多的模型作为实体对象的外部程式化模型。如果顶点个数相同,则选择椭球体作为实体对象的外部程式化模型。如果椭球体和柱体程式化模型都不满足数目要求,则选择立方体作为实体对象的外部程式化模型。
6、根据实体对象的模型参数构建实体对象内部程式化模型。
导入实体对象的模型参数,如果该实体对象为“sl”,是内部为空的壳状结构,则根据该实体对象的厚度与外部程式化模型构建实体对象的内部程式化模型。
7、使用组合几何方法构建实体对象的程式化模型并写为标准输入文件。
使用组合几何方法,利用布尔运算将所有实体对象外部程式化模型、内部程式化模型组合成为实体对象的程式化模型,并将实体对象的程式化模型与对应的模型参数写为标准输入文件。如图3所示,组合几何方法的主要过程如下:
1)为外部程式化模型、内部程式化模型编号。
2)在内部程式化模型编号前附上“+”,外部程式化模型编号前附上“-”。其中“-”表示在基本体内部,“+”表示在基本体外部。
3)将同一实体对象的外部程式化模型、内部程式化模型用布尔逻辑符“and”连接构成实体对象的程式化模型,将不同实体对象的程式化模型用布尔逻辑符“or”连接构成场景的程式化模型。其中“and”表示交集(通常省略and),“or”表示并集。
8、将标准输入文件输入到辐射剂量计算程序内获得辐射场剂量分布。