并行计算算例.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
并行计算算例.doc

并行计算算例 题目: 一维(X)电磁场FDTD模拟,高斯源,一阶Mur吸收边界,阻塞消息通信方式(SSend) 同步通信模式采用c*delta(t)/delta(x)=0.5简化起动进程数必须大于等于2Module parameter_mod * 自定义模型,此处不需要End Module parameter_mod * main program ****************************************************************************** Program FDTD1D_MPI use parameter_mod implicit none include mpif.h *定义常量 * c:光速,dx:离散间隔, N:x长度,dt:时间间隔(满足稳定条件), T:时间长度,Nt:时间点数,default:默认参数开关。 double precision??? :: c =3.0e8 double precision??? :: dx=0.005 double precision??? :: N=1.0 integer?????? :: Nx0 double precision??? :: dt double precision??? :: T=1.0e-9 integer?????? :: Nt integer?????? :: default=0 *Ey:用于保存Ey结果(不必要),node_Ey,node_Hz:该进程中的Ey,Hz分量,node_Ey_right,node_Hzleft:进程间电磁场传递增, *node_Eyoldleft:最后一个进程(numberofprocessors-1)中的node_Ey(nx-1)分量,用于计算吸收边界 *?node_Eyoldright:第一进程(0,即主进程)中的node_Ey分量,用于计算吸收边界 double precision, allocatable :: Ey(:) double precision, allocatable :: node_Ey(:) double precision, allocatable :: node_Hz(:) double precision???? node_Ey_right double precision???? node_Hz_left double precision???? node_Eyoldleft double precision???? node_Eyoldright * nx:该进程中的结点数,source_id:源所在进程ID,ksn:源所在进程中的结点号, * n_average:平均每个进程结点数,n_remain:结点余数(分配给从进程)。 * displs recvcounts:用于数据收集的控制数组。displs(i):第i号进程数据偏移量,recvcounts(i):第i号进程数据量。 * num_Ey:该进程Ey总量。 integer nx integer source_id, ksn integer n_average, n_remain integer, allocatable::displs(:), recvcounts(:) integer???? :: num_Ey * i,nstep:循环变量 * nxtemp,kstemp,temp:其它蓝临时变量 * flag:用于寻找源的位置 integer i, nstep integer nxtemp, kstemp, temp logical flag * w:源脉冲宽度,t0:脉冲峰值出现位置(点号),ks:源的位置(X,点号),pulse:源值。 double precision :: w double precision :: t0 double precision :: ks double precision :: pulse * 本进程ID,ierr错误号, numberofprocessors:总进程数,status:消息接收状态,main_id:主进程ID(0), * tagnx,tagEy,tagHz,TagNNt:消息信封标志。 integer processorID, ierr integer numberofprocessors integer status(MPI_Status_size) integer,parameter :: main_id=0 integer,parameter :: tagnx=1, tagEy=2, tagHz=3, tagNNt=4 * 并行初始化,生成通信域(子)(MPI_C

文档评论(0)

gacz003 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档