[发明专利]一种基于共享内存的电磁场模拟并行计算方法有效

专利信息
申请号: 202110829375.9 申请日: 2021-07-22
公开(公告)号: CN113688590B 公开(公告)日: 2023-03-21
发明(设计)人: 胡玉兰;刘大刚;刘腊群;王辉辉;陈凤贺 申请(专利权)人: 电子科技大学
主分类号: G06F30/367 分类号: G06F30/367;G06F30/25
代理公司: 电子科技大学专利中心 51203 代理人: 陈一鑫
地址: 611731 四川省成*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 共享 内存 电磁场 模拟 并行 计算方法
【权利要求书】:

1.一种基于共享内存的电磁场模拟并行计算方法,该方法包括:

步骤1:将物理模型按空间平均划分为多个子区域,每个子区域由一个进程模拟,下面从简单的两个进程来考虑;对空间进行网格化,设要计算一行网格面的电磁场;

步骤2:然后创建共享内存窗口,在该共享内存中存放一个共享数组,一个时间步内每一个网格上各个方向上的电磁场分量存入共享数组且仅与数组中的一个索引对应,所有进程都依次对该数组进行读或者写;

步骤3:确定分界面,该分界面将待计算的这一行网格面平均划分,并初始化共享内存;

第1时刻内:进程0计算分界面及分界面一边的所有网格面的电场,进程1计算分界面另一边所有网格面的电场;将各网格面的电场数据根据索引存入共享数组中的对应位置;

第1+1/2时刻内:进程0计算分界面及分界面一边的所有网格面的磁场,进程1计算分界面另一边所有网格面的磁场;将各网格面的磁场数据根据索引存入共享数组中的对应位置;

在该完整时间步内,需要的电磁场数据在共享内存里可以被进程随时调用,完成电磁场的更新后,进程会进行一次同步;

第2时刻内:根据共享内存中各网格面的磁场数据,进程0计算分界面及分界面一边的所有网格面的电场,进程1计算分界面另一边所有网格面的电场;将各网格面的电场数据根据索引存入共享数组中的对应位置;

第2+1/2时刻内:根据共享内存中各网格面的电场数据,进程0计算分界面及分界面一边的所有网格面的磁场,进程1计算分界面另一边所有网格面的磁场;将各网格面的磁场数据根据索引存入共享数组中的对应位置;

在该完整时间步内,需要的电磁场数据在共享内存里可以被进程随时调用,完成电磁场的更新后,进程会进行一次同步;

采用上述相同方法计算后续时间步内各网格面的电磁场数据。

2.如权利要求1所述的一种基于共享内存的电磁场模拟并行计算方法,其特征在于,所述步骤3中采用如下公式计算电场:

其中,t表示时间,表示第n时间步内(i+1/2,j,k)位置上x方向上的电场分量,表示第n+1/2时间步内(i+1/2,j+1/2,k)位置上z方向上的磁场强度,表示第n+1/2时间步内(i+1/2,j,k)位置上x方向上的电流密度;

采用下式计算磁场:

其中,表示第n+3/2时间步内(i+1/2,j+1/2,k)位置上z方向上的磁场分量,表示第n+1时间步内(i+1/2,j+1,k)位置上x方向上的电场强度。

3.如权利要求1所述的一种基于共享内存的电磁场模拟并行计算方法,其特征在于,当系统内不存在粒子或不存在相对论粒子时,可以通过上述递推方法对电磁场进行更新;当系统内存在相对论粒子时,需要采用下面的递推方法更新电磁场;

其中,Dn表示第n时间步内的电场,为哈密顿算符,α1、α2、α3表示下一时刻、当前时刻以及上一时刻磁场值的权重因子,Hn+1/2表示第n+1/2时间步内的磁场强度,Jn+1/2表示第n+1/2时间步内的电流密度。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110829375.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top