一种海流感生磁场计算方法及系统转让专利

申请号 : CN202110429435.8

文献号 : CN113094915B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张建利姜兆霞李三忠贾东宁

申请人 : 中国海洋大学

摘要 :

本发明涉及一种海流感生磁场计算方法及系统,方法包括:将海洋划分为多个海流层;获取各所述海流层的海水物理属性和地磁场参数;海水物理属性包括有海流宽度;根据所述海水物理属性计算各所述海流层的电导率,并根据所述海水物理属性、所述地磁场参数和所述电导率计算各所述海流层的海流感应磁场;根据所有海流层的海水物理属性和所有海流层的电导率构建分层海流物理模型,并根据所述分层海流物理模型和各所述海流层的海流感应磁场计算各所述海流层的海流感生综合磁场。本发明针对任一所述海流层,根据海水物理属性计算电导率;本发明将海水电导率变化和海流宽度作为独立变量考虑在内,从而计算海流感生综合磁场,使得计算结果精确可靠。

权利要求 :

1.一种海流感生磁场计算方法,其特征在于,包括:

将海洋划分为多个海流层;

获取各所述海流层的海水物理属性和地磁场参数;所述海水物理属性包括海流宽度;

根据所述海水物理属性计算各所述海流层的电导率,并根据所述海水物理属性、所述地磁场参数和所述电导率计算各所述海流层的海流感应磁场;

根据所有海流层的海水物理属性和所有海流层的电导率构建分层海流物理模型,并根据所述分层海流物理模型和各所述海流层的海流感应磁场计算各所述海流层的海流感生综合磁场;所述海流物理模型包括所述海流宽度、海流厚度和海流体元长度;

所述获取各所述海流层的海水物理属性和地磁场参数之后,还包括:制备输入数据文件;所述输入数据文件包括N行数据;所述输入数据文件的格式为二进制数据;每一行数据对应存储一个所述海流层的海水物理属性、地磁场参数、在垂向上的深度、在垂向上的排序和海流感生综合磁场计算标识;采用所述输入数据文件是用于抹去横向不规则和垂向不一致的海流分布的差异性;

获取所述海流层的总数N;

将所述输入数据文件输入并行计算进程中;所述并行计算进程用于计算各所述海流层的海流感应磁场和所述海流感生综合磁场;

所述根据所述海水物理属性计算各所述海流层的电导率,并根据所述海水物理属性、所述地磁场参数和所述电导率计算各所述海流层的海流感应磁场,包括:根据所述输入数据文件的大小计算总任务计算量;

利用MPI接口将所述输入数据文件传递给通讯域的进程;每个所述进程根据所述总任务计算量、通讯域进程数和当前进程阶次确定待计算的所述海流层;每个所述进程并行读取所述输入数据文件中分派待计算的所述海流层物理参数和所述地磁场参数;

并行计算分派的所述海流层的海流感生磁场;

将分派计算完的单层海流感生磁场并行写入输出数据文件;

所述并根据所述分层海流物理模型和各所述海流层的海流感应磁场计算各所述海流层的海流感生综合磁场,包括:利用MPI接口将所述输入数据文件传递给通讯域的进程;每个所述进程根据通讯域进程数和当前进程阶次领取待计算的所述海流层;每个所述进程根据所述海流感生磁场计算标识判断是否计算当前海流层的海流感生综合磁场,若是,则多个所述进程并行计算,各所述进程均根据所述分层海流物理模型、所述海水物理属性和所述海流感应磁场计算当前海流层的海流感生综合磁场;

将分派计算完的海流感生综合磁场并行写入输出数据文件;所述输出数据文件的每行参数量与所述输入数据文件的每行参数量相同,且相同位置的参数的格式相同。

2.根据权利要求1所述的海流感生磁场计算方法,其特征在于,所述海流感生磁场的计算方法为:根据所述海水物理属性、所述地磁场参数和所述电导率计算海水流动的海流感应电流密度;

根据毕奥‑萨伐尔定律和所述海流感应电流密度计算海流元磁感应强度;

根据所述海流元磁感应强度计算各所述海流层的所述海流感应磁场。

3.根据权利要求1所述的海流感生磁场计算方法,其特征在于,所述分层海流物理模型为多层结构的数据集;一层结构对应一层所述海流层,每层结构的数据集均包括对应的所述海流层的海水的水平流速、盐度、温度、厚度、电导率以及所在位置的地磁场各分量强度。

4.一种海流感生磁场计算系统,其特征在于,包括:

划分单元,用于将海洋划分为多个海流层;

获取单元,用于获取各所述海流层的海水物理属性和地磁场参数;所述海水物理属性包括海流宽度;

第一计算单元,用于根据所述海水物理属性计算各所述海流层的电导率,并根据所述海水物理属性、所述地磁场参数和所述电导率计算各所述海流层的海流感应磁场;

第二计算单元,用于根据所有海流层的海水物理属性和所有海流层的电导率构建分层海流物理模型,并根据所述分层海流物理模型和各所述海流层的海流感应磁场计算各所述海流层的海流感生综合磁场;所述海流物理模型包括所述海流宽度、海流厚度和海流体元长度;

在所述获取单元之后,还包括:

制备模块,用于制备输入数据文件;所述输入数据文件包括N行数据;所述输入数据文件的格式为二进制数据;每一行数据对应存储一个所述海流层的海水物理属性、地磁场参数、在垂向上的深度、在垂向上的排序和海流感生综合磁场计算标识;采用所述输入数据文件是用于抹去横向不规则和垂向不一致的海流分布的差异性;

获取模块,用于获取所述海流层的总数N;

输入模块,用于将所述输入数据文件输入并行计算进程中;所述并行计算进程用于计算各所述海流层的海流感应磁场和所述海流感生综合磁场;

所述第一计算单元还包括:

总任务计算量确定模块,用于根据所述输入数据文件的大小计算总任务计算量;

第一进程传入模块,用于利用MPI接口将所述输入数据文件传递给通讯域的进程;每个所述进程根据所述总任务计算量、通讯域进程数和当前进程阶次确定待计算的所述海流层;每个所述进程并行读取所述输入数据文件中分派待计算的所述海流层物理参数和所述地磁场参数;

第一并行计算模块,用于并行计算分派的所述海流层的海流感生磁场;

第一写入模块,用于将分派计算完的单层海流感生磁场并行写入输出数据文件;

所述第二计算单元还包括:

第二进程传入模块,用于利用MPI接口将所述输入数据文件传递给通讯域的进程;每个所述进程根据通讯域进程数和当前进程阶次领取待计算的所述海流层;

第二并行计算模块,用于针对每个所述进程,根据所述海流感生磁场计算标识判断是否计算当前海流层的海流感生综合磁场,若是,则多个所述进程并行计算,各所述进程均根据所述分层海流物理模型、所述海水物理属性和所述海流感应磁场计算当前海流层的海流感生综合磁场;

第二写入模块,用于将分派计算完的海流感生综合磁场并行写入输出数据文件;所述输出数据文件的每行参数量与所述输入数据文件的每行参数量相同,且相同位置的参数的格式相同。

5.根据权利要求4所述的海流感生磁场计算系统,其特征在于,所述第一计算单元还包括:第一计算子模块,用于根据所述海水物理属性、所述地磁场参数和所述电导率计算海水流动的海流感应电流密度;

第二计算子模块,用于根据毕奥‑萨伐尔定律和所述海流感应电流密度计算海流元磁感应强度;

第三计算子模块,用于根据所述海流元磁感应强度计算各所述海流层的所述海流感应磁场。

6.根据权利要求4所述的海流感生磁场计算系统,其特征在于,所述分层海流物理模型为多层结构的数据集;一层结构对应一层所述海流层,每层结构的数据集均包括对应的所述海流层的海水的水平流速、盐度、温度、厚度、电导率以及所在位置的地磁场各分量强度。

说明书 :

一种海流感生磁场计算方法及系统

技术领域

[0001] 本发明涉及海洋监测技术领域,特别是涉及一种海流感生磁场计算方法及系统。

背景技术

[0002] 对海流感生磁场的研究起于上世纪50年代。Longuet‑Higgins et al.(1954年)、Sanford(1971年)、Robinson(1976年)、Chave and Luther(1990年)、Larsen(1992年)等在理论上推导出海流中任意两点间电势差的表达式,及海洋中海流产生电场的分布,其适用的模型是大尺度缓慢变化的海流,周期大于一个月,认为是准静态的,忽略位移电流、自感和互感影响。Larsen(1968年)、Bullard and Parker(1970年)推导出海流产生磁场的理论方程,通过解方程得到磁场分布的规律。对于深海的正压流,Pedlosky(1979年)、Chave et al.(1984年)给出了长波正压流产生电磁场的定性描述和模拟。有研究表明(Lilley et al,2001),海流产生的磁场量值能达约100nT。Lilley et al.(2000年)在围绕澳大利亚的海洋探测了磁场(总场)随深度的变化,表明磁场方向与海流方向有关。国内在这方面研究较少,一般基于海流模型和麦克斯韦方程对典型海流的磁场进行试算,为电磁场探测设备设计和大地电磁测量校正提供参考依据。
[0003] 但现有技术中存在如下问题:
[0004] (1)在海流感生磁场计算往往忽略海水电导率的变化,假设电导率在某一区域恒定,实际上海流的电导率随空间位置变化,且直接影响感生磁场的强度,将海水电导率变化考虑在内,对精确的海流感生磁场计算很有必要。
[0005] (2)目前的海流感生磁场计算方案往往忽略海流宽度,假设海流物性沿水平方向均匀一致地无限延展,随着模拟观测对象从大尺度环流精细到中小尺度涡旋,这一应用前提不再存在,为了精确计算中小尺度涡旋的感生磁场,将海流宽度作为一个因素考虑在内,对海流感生磁场计算非常必要。

发明内容

[0006] 本发明的目的是提供一种海流感生磁场计算方法及系统,考虑了海流宽度和海水电导率变化,能够提高计算海流感生磁场的精确度。
[0007] 为实现上述目的,本发明提供了如下方案:
[0008] 一种海流感生磁场计算方法,包括:
[0009] 将海洋划分为多个海流层;
[0010] 获取各所述海流层的海水物理属性和地磁场参数;所述海水物理属性包括海流宽度;
[0011] 根据所述海水物理属性计算各所述海流层的电导率,并根据所述海水物理属性、所述地磁场参数和所述电导率计算各所述海流层的海流感应磁场;
[0012] 根据所有海流层的海水物理属性和所有海流层的电导率构建分层海流物理模型,并根据所述分层海流物理模型和各所述海流层的海流感应磁场计算各所述海流层的海流感生综合磁场。
[0013] 优选地,所述获取各所述海流层的海水物理属性和地磁场参数之后,还包括:
[0014] 制备输入数据文件;所述输入数据文件包括N行数据;所述输入数据文件的格式为个二进制数据;每一行数据对应存储一个所述海流层的海水物理属性、地磁场参数、在垂向上的深度、在垂向上的排序和海流感生综合磁场计算标识;采用所述输入数据文件是用于抹去横向不规则和垂向不一致的海流分布的差异性;
[0015] 获取所述海流层的总数N;
[0016] 将所述输入数据文件输入并行计算进程中;所述并行计算进程用于计算各所述海流层的海流感应磁场和所述海流感生综合磁场。
[0017] 优选地,所述根据所述海水物理属性计算各所述海流层的电导率,并根据所述海水物理属性、所述地磁场参数和所述电导率计算各所述海流层的海流感应磁场,包括:
[0018] 根据所述输入数据文件的大小计算总任务计算量;
[0019] 利用MPI接口将所述输入数据文件传递给通讯域的进程;每个所述进程根据所述总任务计算量、通讯域进程数和当前进程阶次确定待计算的所述海洋层;每个所述进程并行读取所述输入数据文件中分派待计算的所述海流层物理参数和所述地磁场参数;
[0020] 并行计算分派的所述海流层的海流感生磁场;
[0021] 将分派计算完的单层海流感生磁场并行写入输出数据文件;
[0022] 所述并根据所述分层海流物理模型和各所述海流层的海流感应磁场计算各所述海流层的海流感生综合磁场,包括:
[0023] 利用MPI接口将所述输入数据文件传递给通讯域的进程;每个所述进程根据通讯域进程数和当前进程阶次领取待计算的所述海洋层;每个所述进程根据所述海流感生磁场计算标识判断是否计算当前海流层的海流感生综合磁场,若是,则多个所述进程并行计算,各所述进程均根据所述分层海流物理模型、所述海水物理属性和所述海流感应磁场计算当前海流层的海流感生综合磁场;
[0024] 将分派计算完的海流感生综合磁场并行写入输出数据文件;所述输出数据文件的每行参数量与所述输入数据文件的每行参数量相同,且相同位置的参数的格式相同。
[0025] 优选地,所述海流感生磁场的计算方法为:
[0026] 根据所述海水物理属性、所述地磁场参数和所述电导率计算海水流动的海流感应电流密度;
[0027] 根据毕奥‑萨伐尔定律和所述海流感应电流密度计算海流元磁感应强度;
[0028] 根据所述海流元磁感应强度计算各所述海流层的所述海流感应磁场。
[0029] 优选地,所述分层海流物理模型为多层结构的数据集;一层结构对应一层所述海流层,每层结构的数据集均包括对应的所述海流层的海水的水平流速、盐度、温度、厚度和电导率。
[0030] 一种海流感生磁场计算系统,包括:
[0031] 划分单元,用于将海洋划分为多个海流层;
[0032] 获取单元,用于获取各所述海流层的海水物理属性和地磁场参数;所述海水物理属性包括海流宽度;
[0033] 第一计算单元,用于根据根据所述海水物理属性计算各所述海流层的电导率,并根据所述海水物理属性、所述地磁场参数和所述电导率计算各所述海流层的海流感应磁场;
[0034] 第二计算单元,用于根据所有海流层的海水物理属性和所有海流层的电导率构建分层海流物理模型,并根据所述分层海流物理模型和各所述海流层的海流感应磁场计算各所述海流层的海流感生综合磁场。
[0035] 优选地,在所述获取单元之后,还包括:
[0036] 制备模块,用于制备输入数据文件;所述输入数据文件包括N行数据;所述输入数据文件的格式为个二进制数据;每一行数据对应存储一个所述海流层的海水物理属性、地磁场参数、在垂向上的深度、在垂向上的排序和海流感生综合磁场计算标识;采用所述输入数据文件是用于抹去横向不规则和垂向不一致的海流分布的差异性;
[0037] 获取模块,用于获取所述海流层的总数N;
[0038] 输入模块,用于将所述输入数据文件输入并行计算进程中;所述并行计算进程用于计算各所述海流层的海流感应磁场和所述海流感生综合磁场。
[0039] 优选地,所述第一计算单元还包括:
[0040] 第一进程传入模块,用于利用MPI接口将所述输入数据文件传递给通讯域的进程;每个所述进程根据所述总任务计算量、通讯域进程数和当前进程阶次确定待计算的所述海洋层;每个所述进程并行读取所述输入数据文件中分派待计算的所述海流层物理参数和所述地磁场参数;
[0041] 第一并行计算模块,用于并行计算分派的所述海流层的海流感生磁场;
[0042] 第一写入模块,用于将分派计算完的单层海流感生磁场并行写入输出数据文件;
[0043] 所述第二计算单元还包括:
[0044] 第二进程传入模块,用于利用MPI接口将所述输入数据文件传递给通讯域的进程;每个所述进程根据通讯域进程数和当前进程阶次领取待计算的所述海洋层;
[0045] 第二并行计算模块,用于针对每个所述进程,根据所述海流感生磁场计算标识判断是否计算当前海流层的海流感生综合磁场,若是,则多个所述进程并行计算,各所述进程均根据所述分层海流物理模型、所述海水物理属性和所述海流感应磁场计算当前海流层的海流感生综合磁场;
[0046] 第二写入模块,用于将分派计算完的海流感生综合磁场并行写入输出数据文件;所述输出数据文件的每行参数量与所述输入数据文件的每行参数量相同,且相同位置的参数的格式相同。
[0047] 优选地,所述第一计算单元还包括:
[0048] 第一计算子模块,用于根据所述海水物理属性、所述地磁场参数和所述电导率计算海水流动的海流感应电流密度;
[0049] 第二计算子模块,用于根据毕奥‑萨伐尔定律和所述海流感应电流密度计算海流元磁感应强度;
[0050] 第三计算子模块,用于根据所述海流元磁感应强度计算各所述海流层的所述海流感应磁场。
[0051] 优选地,所述分层海流物理模型为多层结构的数据集;一层结构对应一层所述海流层,每层结构的数据集均包括对应的所述海流层的海水的水平流速、盐度、温度、厚度、电导率以及所在位置的地磁场各分量强度。
[0052] 根据本发明提供的具体实施例,本发明公开了以下技术效果:
[0053] 本发明提供一种海流感生磁场计算方法及系统,将海洋划分为多个海流层并获取海洋层数据,针对任一所述海流层,根据海水物理属性计算电导率;本发明将海水电导率变化和海流宽度作为独立变量考虑在内,计算海流感生综合磁场,使得计算结果精确可靠。

附图说明

[0054] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0055] 图1为本发明一种海流感生磁场计算方法的方法流程图;
[0056] 图2为本发明提供的实施例中分层海流物理模型的示意图;
[0057] 图3为本发明提供的实施例中海流感应磁场计算示意图;
[0058] 图4为本发明提供的实施例中基于MPI的并行计算流程示意图;
[0059] 图5为本发明一种海流感生磁场计算系统的模块连接图。

具体实施方式

[0060] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0061] 本发明的目的是提供一种海流感生磁场计算方法及系统,将海洋划分为多个海流层并获取海洋层数据,针对任一所述海流层,根据海水物理属性计算电导率;海水物理属性包括有海流宽度;本发明将海水电导率变化和海流宽度作为独立变量考虑在内,从而计算海流感生综合磁场,使得计算结果精确可靠。
[0062] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0063] 图1为本发明一种海流感生磁场计算方法的方法流程图,如图1所示,一种海流感生磁场计算方法,包括:
[0064] 步骤100:将海洋划分为多个海流层;
[0065] 步骤200:获取各所述海流层的海水物理属性和地磁场参数;所述海水物理属性包括海流宽度;
[0066] 步骤300:根据所述海水物理属性计算各所述海流层的电导率,并根据所述海水物理属性、所述地磁场参数和所述电导率计算各所述海流层的海流感应磁场;
[0067] 步骤400:根据所有海流层的海水物理属性和所有海流层的电导率构建分层海流物理模型,并根据所述分层海流物理模型和各所述海流层的海流感应磁场计算各所述海流层的海流感生综合磁场。
[0068] 优选地,所述将海洋划分为多个海流层,包括:
[0069] 采用横向任意不均匀分布经纬度网格点上垂向层数不固定、各层厚度不固定的分层方式对世界海域水体按照深度由浅到深进行划分,得到多个所述海流层。
[0070] 具体的,对于每一个水平空间经纬度坐标点来说,海洋在垂向上可以划分为多个海流层,每一单层海水流动可以形成相应的单层海流感生磁场,垂向上多个海流层的单层海流感生磁场按照与某海流层的相对距离加权叠加,可以获得该海流层的海流感生综合磁场。因此,对于每一个水平空间经纬度坐标点来说,首先计算垂向所有海流层的单层海流感生磁场,将结果保存下来,再计算垂向所有海流层的海流感生综合磁场,符合物理逻辑,并可以极大减少计算量。
[0071] 优选地,所述分层海流物理模型为多层结构的数据集;一层结构对应一层所述海流层,每层结构的数据集均包括对应的所述海流层的海水的水平流速、盐度、温度、厚度、电导率以及所在位置的地磁场各分量强度。
[0072] 图2为本发明提供的实施例中分层海流物理模型的示意图,如图2所示,海水垂向‑6 ‑4流速一般为10 ~10 m/s,与水平流速大小相差数个量级,因此可以忽略,认为海水仅存在水平流动。考虑到海水的水平流速通常沿深度变化,常用海洋动力模式一般根据不同深度上海水流速不同而对海水分层,如ROMS海洋环流模式将不同深度的水体按照固定比例进行划分,POP海洋模式采用一个各层厚度固定的分层方式对世界海域水体进行划分。海水分层越多,越接近实际情况。这里把流动的海水由浅到深划分为N层,每层海水的水平流速为盐度为Si,温度为Ti,厚度为hi,垂直流速为0,电导率σi可以由盐度Si和温度Ti计算获取,在海洋中其取值一般在3~5S/m。
[0073] 优选地,所述获取各所述海流层的海水物理属性和地磁场参数之后,还包括:
[0074] 制备输入数据文件;所述输入数据文件包括N行数据;所述输入数据文件的格式为个二进制数据;每一行数据对应存储一个所述海流层的海水物理属性、地磁场参数、在垂向上的深度、在垂向上的排序和海流感生综合磁场计算标识;
[0075] 获取所述海流层的总数N;
[0076] 将所述输入数据文件输入并行计算进程中;所述并行计算进程用于计算各所述海流层的海流感应磁场和所述海流感生综合磁场。
[0077] 优选地,所述根据所述海水物理属性、所述地磁场参数和所述电导率计算各所述海流层的海流感应磁场,包括:
[0078] 根据所述输入数据文件的大小计算总任务计算量;
[0079] 利用MPI接口将所述输入数据文件传递给通讯域的进程;每个所述进程根据所述总任务计算量、通讯域进程数和当前进程阶次确定待计算的所述海洋层;每个所述进程并行读取所述输入数据文件中分派待计算的所述海流层物理参数和所述地磁场参数;
[0080] 并行计算分派的所述海流层的海流感生磁场;
[0081] 将分派计算完的单层海流感生磁场并行写入输出数据文件。
[0082] 优选地,所述海流感生磁场的计算方法为:
[0083] 根据所述海水物理属性、所述地磁场参数和所述电导率计算海水流动的海流感应电流密度;
[0084] 根据毕奥‑萨伐尔定律和所述海流感应电流密度计算海流元磁感应强度;
[0085] 根据所述海流元磁感应强度计算各所述海流层的所述海流感应磁场。
[0086] 在本实施例中,海流可看作带电粒子的定向漂移,一段海流在磁场中流动,其两端产生的电动势可以根据法拉第电磁感应定律计算:
[0087]
[0088] 其中,为海水流速, 为地磁场矢量, 为海流因切割磁力线在内部产生的电场强度,场强方向根据右手定则而定,即右手四指从海流方向转向地磁场方向,伸直的大拇指所指方向。
[0089] 由于电流密度 与电场强度 的关系存在如下关系
[0090]
[0091] 可以获取电流密度 的表达式
[0092]
[0093] 由海流速度和地磁场计算出电场强度和电流密度后,可以把电流密度作为电流源,计算该电流源产生磁感应强度的空间分布。根据毕奥‑萨伐尔定律,单位体积dV、电流密度为 的海流元在距离 处的P点产生的磁感应强度 计算如下:
[0094]
[0095] 其中,μ0=4π×10‑7T·m/A为真空磁导率, 为海流元指向待求P点的位移矢量,是 的单位方向矢量。根据右手定则可以判定感应磁场 的方向,即右手四指从电流方向转向单位矢量 方向,伸直的大拇指所指方向。
[0096] 将式(3)代入式(4),进一步获取P点的磁感应强度 海流元位置上的流速和地磁矢量以及位移矢量 的关系式:
[0097]
[0098] 受海水和地磁场物理性质的时空非均匀性分布影响,实际的海流感应磁场是一个动态的、非均匀的复杂物理场。若将海水层划分为N层,可以将实际海流感应磁场的计算近似为N层具有一定垂直厚度且水平延展的海流体元感应磁场的矢量和,此时整个海流在P点形成的感应磁场 计算如下:
[0099]
[0100] 只要得到第i层海流体元的感应磁场计算表达式,就可以获得P点海流感应磁场的具体形式。根据上述假设,以第i层海流体元的水流方向为x轴正方向,以垂直向下为z轴正方向,以海流上表面处为z=0点,构建海流感应磁场计算示意图如图3所示,。
[0101] 图3为本发明提供的实施例中海流感应磁场计算示意图,图中,第i层海流体元长度和宽度均为L,厚度为hi,垂直流速为0,水平流速为 盐度为Si、温度为Ti,地磁矢量为其水平分量为 垂直分量为
[0102] 假设海流体元各点的物理量和所在地磁场取值均匀,根据法拉第电磁感应定律可推知,海流体元外部上下对称位置上的感应磁场大小相等、方向相反,因而只需求取海流下方的感应磁场,就可以得知海流上方的感应磁场。当待求P点在海流中心下方r0i距离处时,根据式(5),海流体元任一点M(x,y,z)在P(0,0,r0i+hi)点形成的感应磁场为[0103]
[0104] 其中, 是M点指向P点的位移矢量,其模的表达式为
[0105]
[0106] 是 的单位方向矢量,其表达式为
[0107]
[0108] 海流体元所有点的积分,就是第i层海流体在P点形成的感应磁场,即[0109]
[0110] 其中,
[0111]
[0112] 式中, 是坐标系x、y、z三个方向的单位向量,vix、viy、viz是第i层海水流速在三个坐标轴上的投影,Fix、Fiy、Fiz是地磁矢量在三个坐标轴上的投影。
[0113] 由于假设海水垂直流速为0且水平流速方向沿x轴,即vy=0且vz=0,式(11)可以简化为
[0114]
[0115] 推导可得第i层海流体在P点的感应磁场 在x、y、z三个方向的分量是[0116]
[0117]
[0118]
[0119] 显然, 和 的积分函数表现为x轴方向上的奇函数,根据奇函数在对称区间上积分为0的性质,有 这表明,在上述给定海水和磁场物理条件下,水平流动海水形成的感应磁场方向与海水流向平行。
[0120] 为计算 分量,将长和宽均为L的方形海流积分区域近似为半径为L/2的圆形积分区域,采用极坐标进行积分求解。推导并化简可得
[0121]
[0122] 其中, 为第i层海流在其中心下方r0i距离处的感应磁场, 为其在x方向的分‑7量;μ0=4π×10 T·m/A为真空磁导率;σi为电导率,hi为第i层海流厚度,vix为第i层海流x方向流速,Fiz是第i层海流所在位置上地磁矢量在垂向上的分量;L为第i层海流体元的宽度,hi是其厚度。此即第i层海流体元在中心下方r0i距离处形成的感应磁场,该公式清晰体现了感应磁场强度随海流厚度hi增大而增大、随待求点距离r0i增大而减小的规律。
[0123] 由于海流体元外部上下对称位置上的感应磁场大小相等、方向相反,因此可以获得第i层海流体元在中心上方r0i距离处的感应磁场
[0124]
[0125] 优选地,所述并根据所述分层海流物理模型和各所述海流层的海流感应磁场计算各所述海流层的海流感生综合磁场,包括:
[0126] 利用MPI接口将所述输入数据文件传递给通讯域的进程;每个所述进程根据通讯域进程数和当前进程阶次领取待计算的所述海洋层;每个所述进程根据所述海流感生磁场计算标识判断是否计算当前海流层的海流感生综合磁场,若是,则多个所述进程并行计算,各所述进程均根据所述分层海流物理模型、所述海水物理属性和所述海流感应磁场计算当前海流层的海流感生综合磁场;
[0127] 将分派计算完的海流感生综合磁场并行写入输出数据文件;所述输出数据文件的每行参数量与所述输入数据文件的每行参数量相同,且相同位置的参数的格式相同。
[0128] 可选地,海水中任一点的海流综合感应磁场是多层海流体在该点上感应磁场的矢量和。根据图2中的分层海流物理模型和单层海流感应磁场(式(15))计算公式,可获得第1层、第N层和第i层(1
[0129] 对于第1层海水位置,下覆第2~第N层在该位置形成的感应磁场都沿流速正方向,因此可得海流感生综合磁场的计算公式
[0130]
[0131] 对于第N层海水位置,上方第1~第N‑1层在该位置形成的感应磁场都沿流速反方向,因此可得
[0132]
[0133] 对于第i层(1
[0134]
[0135] 式(16、17、18)中, 表示所求位置的海流感生综合磁场, 为其在x方向上的分量,∑表示求和。
[0136] 图4为本发明提供的实施例中基于MPI的并行计算流程示意图,如图4所示,本发明是实现大规模的横向区域不均匀不规则、垂向分布不一致的多层海流感生综合磁场的高速精细计算。基于MPI的并行加速部分理论上也可以用其他加速手段实现,如GPU加速等;但是纯GPU加速往往受限于显存大小,难以应对超大规模数据量的海流感生磁场的模拟,基于MPI的CPU并行加速方案则没有这一限制。为实现该目的,设计了如下步骤:
[0137] 一、输入数据文件的制备和执行命令的读取,即流程1~2。这里严格定义了一种输入数据文件,每一数据行存储一个海流层的海水物理属性、地磁场参数、在垂向上的深度及排序、以及海流感生综合磁场计算标识等参数的二进制数据流。后续步骤都建立在严格按照格式读取数据文件的基础上:只有准确读取海流层总数,才能根据MPI协议将整个计算任务平均分派给集群内的所有节点并行计算;只有准确读取单层海流物理属性和地磁场参数,才能根据公式计算单层海流感生磁场;只有准确读取海流层在垂向上的深度和排序、以及海流感生综合磁场计算标识,才能计算海流感生综合磁场。输入数据文件格式的定义是实现横向区域不规则、垂向分布不一致的海流感生磁场并行计算的前提和关键,抹去了横向不规则和垂向不一致分布对并行计算的差异性要求。
[0138] 这里需要解释两个概念:
[0139] 1)这里的“海流层”概念不仅包括了真实的海流分层,也可以将海底以下和海平面以上定义为“海流层”,从而可以实现海底以下和海平面以上的海流感生综合磁场的计算。
[0140] 2)每一个水平空间经纬度坐标在垂向上都有多个海流层,“海流层总数”是指所有经纬度坐标点上海流层数的总和,由于每个海流层在输入数据文件中占一个数据行,字节数相同,因此“海流层总数”也就是输入数据文件的数据行数,其计算方法为:海流层总数=输入数据文件大小/每一数据行字节数。
[0141] 其中,输入数据文件是一个二进制数据文件,需要事先编辑好,软件运行时输入其地址即可运行,运行格式见上文。本发明中根据不同的系统运行环境,输入数据文件格式并不相同。(例如Linux和Windows系统环境下文件地址格式不同)。
[0142] 输入数据文件中包含海洋多层海流的物理参数(单层海流宽度、厚度、流速、温度及盐度)和地球背景磁场三分量(北向、东向、垂向)等信息。海洋中(包括海面以上和海底以下)每一位置点的相关参数写成一行,从第一行到最后一行,顺序排列,二进制流式存储。每行包括如下16个参数(严格按序排列):
[0143] (一)该位置点上空间垂向划分的总层数,短整型;
[0144] (二)该层所在总空间层数中的序号(从海面以上至海面以下,取值由0开始至总层数‑1),短整型;
[0145] (三)是否计算该层位置海洋磁场的判断标志(是为1,非为0),短整型;
[0146] (四)所在时刻,单位为年(x月x日x时x分x秒需要换算为0.xx年),浮点型;
[0147] (五)该层所在经度坐标(东经为正,西经为负),单位为度(x分x秒需要换算为0.xx度),浮点型;
[0148] (六)该层所在纬度坐标(北纬为正,南纬为负),单位为度(x分x秒需要换算为0.xx度),浮点型;
[0149] (七)该层所在海水深度(以海平面为基准,海面以上为负,海面以下为正),单位为米,浮点型;
[0150] (八)该层所在海流层宽度(如果是海面上方或海底下方,值为NAN,NAN表示无意义的空值,下文同),单位为米,浮点型;
[0151] (九)该层所在海流层厚度(如果是海面上方或海底下方,值为NAN),单位为米,浮点型;
[0152] (十)该层所在海流层北向流速(如果是海面上方或海底下方,值为NAN),单位为m/s,浮点型;
[0153] (十一)该层所在海流层东向流速(如果是海面上方或海底下方,值为NAN),单位为m/s,浮点型;
[0154] (十二)该层所在海流层温度(如果是海面上方或海底下方,值为NAN),单位为摄氏度,浮点型;
[0155] (十三)该层所在海流层盐度(如果是海面上方或海底下方,值为NAN),无单位,大洋盐度一般在0.0034左右,浮点型;
[0156] (十四)该层所在地球磁场北向分量强度(向北为正,向南为负),单位为纳特,浮点型;
[0157] (十五)该层所在地球磁场东向分量强度(向东为正,向西为负),单位为纳特,浮点型;
[0158] (十六)该层所在地球磁场垂向分量强度(向下为正,向上为负),单位为纳特,浮点型。
[0159] 在执行命令格式方面,需要说明的是,本实施例中采用标准C语言,基于MPI库开发;在Linux/Windows系统环境中采用C Compiler 6.0及其以上版本编译器编译,MPI库选择mpich‑3.3以上版本。以Linux系统环境为例,程序文件编译指令为:
[0160] mpicc[源文件]‑o[可执行文件]–lm
[0161] 示例:mpicc Multilayer_Oceancurrent_Mag_MPI_01.c‑o Multilayer_Oceancurrent_Mag_MPI_01.o–lm;
[0162] 其中,Multilayer_Oceancurrent_Mag_MPI_01.c为源文件,Multilayer_Oceancurrent_Mag_MPI_01.o为编译生成的可执行文件。
[0163] Linux系统环境下文件执行命令为:
[0164] mpirun‑np[通讯域进程数]./[海流感生磁场计算可执行文件][输入数据文件地址][输出数据文件地址]。
[0165] 例如:mpirun‑np 6./Multilayer_Oceancurrent_Mag_MPI_01.o/home/jlzhang/data/multilayer_currentmag_test/input.bin/home/jlzhang/data/multilayer_currentmag_test/output.bin。
[0166] 二、计算任务分派,即流程3~4。根据步骤一获得的输入数据文件大小计算“海流层总数”,也就是总任务计算量,计算方式参见上文步骤一说明;然后利用MPI接口传递给通讯域的所有进程。每个进程根据通讯域进程数和当前进程阶次,计算领取分派的任务量——待计算的海流层数和序号,为后续步骤的海流感生磁场大规模并行计算做好准备。
[0167] 这里需要解释几个关于MPI并行的概念:
[0168] 1)MPI是一个信息传递应用程序接口,包括协议和和语义说明。MPI的目标是高性能,大规模性,和可移植性,为高性能计算的主要模型。
[0169] 2)一个通讯域由一个根进程和若干子进程组成,通讯域的所有进程都参加全局的数据处理和通信操作。通常是根进程从终端读取执行指令和参数,并将任务分派给所有进程。
[0170] 3)通讯域进程数是指通讯域内的所有进程数量,由用户在终端执行时输入;当前进程阶次是每一个进程在通讯域内的编号。
[0171] 4)每个进程根据通讯域进程数和当前进程阶次,计算被分派的任务——待计算的海流层数量和序号,可以简单理解为:每个进程待计算的海流层数量(计算任务)=海流层总数(输入数据文件内数据行总数)/通讯域进程数。海流层序号是指待计算的海流层存储在输入数据文件里所在数据行的序号。
[0172] 三、单层海流感生磁场计算,即流程5~7,分别为并行读取、并行计算、并行写入文件。按照步骤二的任务分派情况,每个进程并行读取输入数据文件中分派待计算的海流层物理参数和地磁场参数;按照单层海流感生磁场(海流感生磁场)计算新公式,并行计算分派的海流层的单层海流感生磁场;最后将分派计算完的单层海流感生磁场并行写入输出数据文件。这一步骤完成的单层海流感生磁场计算是后续海流感生综合磁场计算的基础。
[0173] 该步骤有三点需要说明:
[0174] 1)计算所依据的海流感生磁场公式考虑了海流层宽度和海水电导率的变化,也是实现高分辨率小尺度海流感生磁场精确计算的关键。
[0175] 2)采用MPI库实现每个进程对同一文件的并行读写,也就是通讯域所有进程可以同时读取和写入一个文件,不需要由根进程读取参数再分发给其他子进程,极大降低了各进程之间传递参数导致的通讯耗时,提高了计算效率。
[0176] 3)该步骤完成创建的输出数据文件按格式严格保存了单层海流物性参数和地磁场参数,以及计算生成的单层海流感生磁场。
[0177] 四、海流感生综合磁场计算,即流程8~15。在步骤三所有海流层的单层海流感生磁场计算完成的基础上,每个进程首先类似地领取分派的海流感生综合磁场计算任务——待计算的海流层数和序号,然后读入待计算海流层的海流感生综合磁场计算标识,根据标识判断是否计算当前层的海流感生综合磁场。如果是,那么执行流程11~12,根据海流感生综合磁场公式计算当前层的海流感生综合磁场(最终的海流感生磁场);如果不是,那么执行流程13,忽略所在海流层的海流感生综合磁场计算,将其值写为无意义的空值。最后,执行流程14,将分派计算完的海流感生综合磁场并行写入输出数据文件;关闭文件,根进程结束程序。
[0178] 这一步有几点需要说明:
[0179] 1)每个节点被分派的海流感生综合磁场计算任务——待计算的海流层数和序号,与单层海流感生磁场时分配的海流层数和序号是一致的。
[0180] 2)“海流感生综合磁场计算标识”是用来控制哪些层的感生综合磁场需要计算,哪些可以跳过不需要计算,用来减少不必要的计算。
[0181] 3)海流感生综合磁场计算公式是在单层海流感生磁场公式基础上推导获得,因而其计算结果同样考虑了海流层宽度和海水电导率变化的影响。
[0182] 4)输出数据文件格式与输入数据文件类似,也是每一层海流的所有参数和计算结果占据一个数据行,并且保留了输入数据文件中的海流物理属性、地磁场等各个参数。
[0183] 其中,输出数据文件是一个二进制数据文件,由软件运行生成。
[0184] 输出数据文件中包含海洋多层海流的物理参数(单层海流宽度、厚度、计算得到的电导率)、单层海流感应磁场(北向、东向)、海流感生综合磁场(北向、东向)、以及叠加地球背景磁场后的海洋综合磁场(北向、东向)。海洋中(包括海面以上和海底以下)每一位置点的相关参数写成一行,从第一行到最后一行,顺序排列,二进制流式存储。每行包括如下16个参数(严格按序排列):
[0185] (一)该位置点上空间垂向划分的总层数,短整型;
[0186] (二)该层所在总空间层数中的序号(从海面以上至海面以下,取值由0开始至总层数‑1),短整型;
[0187] (三)是否计算该层位置海洋磁场的判断标志(是为1,非为0),短整型;
[0188] (四)所在时刻,单位为年(x月x日x时x分x秒需要换算为0.xx年),浮点型;
[0189] (五)该层所在经度坐标(东经为正,西经为负),单位为度(x分x秒需要换算为0.xx度),浮点型;
[0190] (六)该层所在纬度坐标(北纬为正,南纬为负),单位为度(x分x秒需要换算为0.xx度),浮点型;
[0191] (七)该层所在海水深度(以海平面为基准,海面以上为负,海面以下为正),单位为米,浮点型;
[0192] (八)该层所在海流层宽度(如果是海面上方或海底下方,值为NAN,NAN表示无意义的空值,下文同),单位为米,浮点型;
[0193] (九)该层所在海流层厚度(如果是海面上方或海底下方,值为NAN),单位为米,浮点型;
[0194] (十)该层所在海流层电导率(如果是海面上方或海底下方,值为NAN),单位为西每米S/m,浮点型;
[0195] (十一)该层所在单层海流感应磁场北向分量强度(向北为正,向南为负;如果是海面上方或海底下方,值为NAN),单位为纳特,浮点型;
[0196] (十二)该层所在单层海流感应磁场东向分量强度(向东为正,向西为负;如果是海面上方或海底下方,值为NAN),单位为纳特,浮点型;
[0197] (十三)该层所在位置点上,海流感生综合磁场北向分量强度(向北为正,向南为负;如果感应磁场计算判断标志(3)为0,值为NAN),单位为纳特,浮点型;
[0198] (十四)该层所在位置点上,海流感生综合磁场东向分量强度(向东为正,向西为负;如果感应磁场计算判断标志(3)为0,值为NAN),单位为纳特,浮点型;
[0199] (十五)该层所在位置点上,叠加地球背景磁场后的海洋综合磁场北向分量强度(向北为正,向南为负;如果感应磁场计算判断标志(3)为0,值为NAN),单位为纳特,浮点型;
[0200] (十六)该层所在位置点上,叠加地球背景磁场后的海洋综合磁场东向分量强度(向东为正,向西为负;如果感应磁场计算判断标志(3)为0,值为NAN),单位为纳特,浮点型。
[0201] 图5为本发明一种海流感生磁场计算系统的模块连接图,如图5所示,本发明一种海流感生磁场计算系统,包括:
[0202] 划分单元,用于将海洋划分为多个海流层;
[0203] 获取单元,用于获取各所述海流层的海水物理属性和地磁场参数;
[0204] 第一计算单元,用于根据根据所述海水物理属性计算各所述海流层的电导率,并根据所述海水物理属性、所述地磁场参数和所述电导率计算各所述海流层的海流感应磁场;
[0205] 第二计算单元,用于根据所有海流层的海水物理属性和所有海流层的电导率构建分层海流物理模型,并根据所述分层海流物理模型和各所述海流层的海流感应磁场计算各所述海流层的海流感生综合磁场。
[0206] 优选地,所述划分单元包括:
[0207] 划分模块,采用横向任意不均匀分布经纬度网格点上垂向层数不固定、各层厚度不固定的分层方式对世界海域水体按照深度由浅到深进行划分,得到多个所述海流层。
[0208] 优选地,在所述获取单元之后,还包括:
[0209] 制备模块,用于制备输入数据文件;所述输入数据文件包括N行数据;所述输入数据文件的格式为个二进制数据;每一行数据对应存储一个所述海流层的海水物理属性、地磁场参数、在垂向上的深度、在垂向上的排序和海流感生综合磁场计算标识;采用所述输入数据文件是用于抹去横向不规则和垂向不一致的海流分布的差异性。
[0210] 获取模块,用于获取所述海流层的总数N。
[0211] 输入模块,用于将所述输入数据文件输入并行计算进程中;所述并行计算进程用于计算各所述海流层的海流感应磁场和所述海流感生综合磁场。
[0212] 优选地,所述第一计算单元还包括:
[0213] 第一进程传入模块,用于利用MPI接口将所述输入数据文件传递给通讯域的进程;每个所述进程根据所述总任务计算量、通讯域进程数和当前进程阶次确定待计算的所述海洋层;每个所述进程并行读取所述输入数据文件中分派待计算的所述海流层物理参数和所述地磁场参数。
[0214] 第一并行计算模块,用于并行计算分派的所述海流层的海流感生磁场。
[0215] 第一写入模块,用于将分派计算完的单层海流感生磁场并行写入输出数据文件。
[0216] 所述第二计算单元还包括:
[0217] 第二进程传入模块,用于利用MPI接口将所述输入数据文件传递给通讯域的进程;每个所述进程根据通讯域进程数和当前进程阶次领取待计算的所述海洋层。
[0218] 第二并行计算模块,用于针对每个所述进程,根据所述海流感生磁场计算标识判断是否计算当前海流层的海流感生综合磁场,若是,则多个所述进程并行计算,各所述进程均根据所述分层海流物理模型、所述海水物理属性和所述海流感应磁场计算当前海流层的海流感生综合磁场。
[0219] 第二写入模块,用于将分派计算完的海流感生综合磁场并行写入输出数据文件;所述输出数据文件的每行参数量与所述输入数据文件的每行参数量相同,且相同位置的参数的格式相同。
[0220] 优选地,所述第一计算单元还包括:
[0221] 第一计算子模块,用于根据所述海水物理属性、所述地磁场参数和所述电导率计算海水流动的海流感应电流密度。
[0222] 第二计算子模块,用于根据毕奥‑萨伐尔定律和所述海流感应电流密度计算海流元磁感应强度。
[0223] 第三计算子模块,用于根据所述海流元磁感应强度计算各所述海流层的所述海流感应磁场。
[0224] 本发明的有益效果如下:
[0225] (1)本发明自主推导的海流感生磁场计算新公式将海流宽度和海水电导率变化作为独立变量考虑在内,考虑了海流宽度和海水电导率变化,适用于高分辨率复杂小尺度海流感生磁场的精确计算。
[0226] (2)本发明提供了一种在时空维度上任意分布的大批量网格点的海流和地磁数据存储格式;通过对数据存储格式的严格定义,抹去了横向不规则和垂向不一致海流分布的差异性要求,极大提高了海流感生磁场计算的可并行性。适用于横向区域极不均匀不规则、垂向分布不一致的海流感生磁场计算。
[0227] (3)本发明提出了超大规模高分辨率海流感生磁场的高速并行计算输出方案,提供了一种基于MPI的海流感生磁场并行计算和读写技术方案,通过调用MPI库和指令,实现多个进程同时读写一个文件,平均分配计算任务,极大减少了进程之间参数的通讯耗时,大幅提高计算输出的并行度和效率。
[0228] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0229] 本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。