求解隐式差分方程的加速迭代并行算法

合集下载

结构网格高精度CFD高效隐式求解及众核并行计算

结构网格高精度CFD高效隐式求解及众核并行计算

结构网格高精度CFD高效隐式求解及众核并行计算高阶精度格式相比低阶精度格式拥有高分辨率、低色散、低耗散等良好的性质,能够获得更精细的流场结构,对于气动声学、转捩、湍流等复杂流动问题的数值模拟具有重要意义。

大规模多尺度复杂几何外形流动问题的高精度CFD模拟计算开销大、求解耗时长,迫切需要发展与之适应的高效隐式求解方法和并行计算技术。

传统隐式求解方法多是从低精度CFD中发展而来,时间项Jacobian矩阵的离散和线性化精度通常低于二阶,应用到高精度CFD中时,与高阶空间离散格式不匹配,容易出现收敛缓慢、鲁棒性变差等问题。

无矩阵(Jacobian-Free)Newton-Krylov(JFNK)方法巧妙结合了具有超线性收敛性质的Newton类非线性求解方法以及求解大规模稀疏线性方程组的Krylov子空间方法,并可利用传统隐式求解方法作预条件子以提高收敛速度。

JFNK方法采用有限差商近似Jacobian矩阵和向量乘积,避免了Jacobian矩阵的直接计算和存储,这对高精度CFD应用尤其具有吸引力。

相比传统隐式求解方法,预条件JFNK方法更复杂,在CFD中的高效应用依赖于具体算法实现以及针对特定问题的预条件子选择和算法参数优化等,限制了其在高精度CFD模拟中的应用。

当前,高性能众核处理器的兴起以及宽向量处理部件的使用大幅提升了浮点计算性能,但丰富的并行性也对高精度CFD应用的并行性能优化提出了严峻挑战。

在拥有数百并行线程的众核处理器上,传统LU-SGS等具有内在强数据依赖特点的隐式线性求解器(预条件子)的共享存储并行可扩展性严重下降,且难以利用宽向量处理部件,迫切需要在研究新型高效CFD求解算法的同时,发展与众核体系结构适应的并行算法。

本文基于“天河二号”众核超级计算机以及自主发展的高精度加权紧致非线性格式(WCNS),开展结构网格高精度CFD应用高效隐式求解算法及其并行计算研究,并应用于实际的可压缩气动数值模拟中。

并行计算编程模型及系统架构研究

并行计算编程模型及系统架构研究

并行计算编程模型及系统架构研究一、综述随着信息技术的飞速发展,计算任务的数量和复杂性呈现出迅速增长的态势。

传统的单处理器计算系统已经无法满足这些日益增长的需求,因此并行计算技术在众多领域得到了广泛的关注和研究。

并行计算编程模型及系统架构的研究不仅具有理论价值,而且在实际应用中具有广泛的意义。

在过去的几十年里,人们提出了许多并行计算编程模型,包括共享存储模型、分布式内存模型和图形处理器模型等。

这些模型各自具有一定的优势和局限性,适用于不同类型的应用场景。

本文将对这些并行计算编程模型及系统架构进行综述,以期为相关领域的研究和应用提供有益的参考。

随着芯片技术的发展,硬件性能得到了极大的提升,这为新并行计算模型的出现提供了物质基础。

随着计算机体系结构的改进,如多核处理器、GPU和分布式计算机系统等,也为新并行计算模型的实现提供了可能。

在并行计算编程模型方面,本文将重点关注共享存储模型、分布式内存模型和图形处理器模型等方面的研究进展。

在分布式内存模型方面,本文将介绍一致性哈希、目录一致性协议等相关技术。

在图形处理器模型方面,本文将探讨通用计算GPU和图形处理器编程模型(GPGPU)的发展及其在密码学、科学计算和机器学习等领域的应用。

在并行计算系统架构方面,本文将分析多种计算系统的结构,如层次结构、众核计算系统和可扩展计算系统等。

本文还将关注如何提高并行计算系统的可扩展性、性能和容错性等方面的研究。

本文将对并行计算编程模型及系统架构进行深入的综述,为相关领域的研究和应用提供有价值的参考。

1. 并行计算的重要性与挑战随着信息技术的飞速发展,数字数据处理和存储的需求呈现出爆炸性增长。

在这种背景下,并行计算逐渐成为解决复杂计算问题和提高计算效率的关键手段。

并行计算不仅能够缩短计算时间,提高资源利用率,还能为多学科领域的研究提供强大的支持,推动科学研究的进步。

提升计算效率:并行计算通过在多个处理器上同时执行多个任务,显著提高了计算速度,缩短了问题的解决周期。

(完整word版)高斯-塞德尔迭代并行算法

(完整word版)高斯-塞德尔迭代并行算法

高斯-塞德尔迭代并行算法在并行计算中,高斯-塞德尔迭代采用与雅可比迭代相同的数据划分。

对于高斯-塞德尔迭代,计算i x 的新值时,使用11,,i n x x +-⋯的旧值和01,,i x x -⋯的新值。

计算过程中i x 与01,,i x x -⋯及11,,i n x x +-⋯的新值会在不同的处理器中产生,因此可以考虑采用时间偏移的方法,使各个处理器对新值计算的开始和结束时间产生一定的偏差。

编号为 my_rank 的处理器一旦计算出(_(_1))i x my rank m i my rank m ⨯≤+⨯的新值,就立即广播给其余处理器,以供各处理器对x 的其它分量计算有关i x 的乘积项并求和。

当它计算完 x 的所有分量后,它还要接收其它处理器发送的新的x 分量,并对这些分量进行求和计算,为计算下一轮的i x 作准备。

计算开始时,所有处理器并行地对主对角元素右边的数据项进行求和,此时编号为 0 的处理器 (简称为0p )计算出0x ,然后广播给其余处理器,其余所有的处理器用0x 的新值和其对应项进行求和计算,接着0p 计算出12,,,x x ⋯当0p 完成对1m x -的计算和广播后,1p 计算出m x ,并广播给其余处理器,其余所有的处理器用m x 的新值求其对应项的乘积并作求和计算。

然后1p 计算出12,,,m m x x ++⋯当1p 完成对2*1m x -的计算和广播后,2p 计算出2*m x ⋯,如此重复下去,直至1n x -在1p p -中被计算出并广播至其余的处理器之后,0p 计算出下一轮的新的0x ,这样逐次迭代下去,直至收敛为止。

具体算法框架描述如下: 算法 1 求解线性方程组的高斯-塞德尔迭代并行算法输入:系数矩阵n n A ⨯,常数向量n n b ⨯,ε,初始解向量n n x ⨯输出:解向量n n x ⨯Begin对所有处理器 my_rank(my_rank=0,…, p-1)同时执行如下的算法:(1) for i=my_rank*m to (my_rank+1)*m-1 do/*所有处理器并行地对主对角元素右边的数据求和*/(1.1) sum[i]=0.0(1.2)for j=i+1 to n-1 dosum[i]= sum[i]=+ a[i,j]*x[j]end forend for(2) while (total<n) do /*total 为新旧值之差小于 ε的x 的分量个数*/(2.1) iteration=0/* iteration 为本处理器中新旧值之差小于 ε的x 的分量个数*/(2.2)for j=0 to n-1 do /*依次以第 0,1, …, n-1行为主行*/(i) q=j/m(ii)if my_rank=q then /*主行所在的处理器*/[][][][]()[]temp x j , x j b j sum j /a j,j ==- /* 产生()x j 的新的值*/ if ([]x j temp ε-<││) then iteration= iteration +1 end if将x[j]的新值广播到其它所有处理器中/*对其余行计算x[j]所对于的内积项并累加*/sum[j]=0for i=my-rank* m to (my-rank+1)*m-1 doif (j ≠ i) then[][][][]sum i sum i a i,j *x j =+end ifend forelse /*其它处理器*/接收广播来的x[j]的新值/*对所存各行计算x[j]所对于的内积项并累加*/for ()i my rank* m to my rank 1* m 1=--+- do[][][][] s um i sum i a i,j *x j =+end forend ifend for(2.3)用Allreduce 操作求出所有处理器中iteration 值的和total 并广播到所有处理器中end whileend若取一次乘法和加法运算时间或一次比较运算时间为一个单位时间。

一类偏微分方程的几种并行迭代算法

一类偏微分方程的几种并行迭代算法

术的并行算法 , 通过程序设计对这些迭代算法 的加速 比、 并行效率等进行 了分析 , 验证了算法具有 良好 的并行
性和有效性。
关键词 : 红黑排序 ;共轭梯度 法 ; 多分裂迭代法 ; 投影技术
中图 分 类 号 : 15 2 O 7 . D I1.9 3 ji n 10 O :0 36 /. s.0 7—14 2 1 .10 8 s 4 X.0 10 .1
由于方程 的系数 变化 等对 并行 算法 的加 速影
响不大 , 不妨取 C =C =C =D =E=1 C = 2 y l 1 ,2 D =
0 步长 h=15 , 用二 阶 中心差商 和一 阶 向前差 , / 1利
商将式 ( ) 1 离散 , 得差分格 式(√= ,, ,0 为 : l2 … 5 )
数矩 阵便 具有适 合并 行计 算的 特殊 结 构。共 轭梯
( n2r D1i , s t y+D ) +E 2u u:0 0≤ , , Y≤ 1
/ l : Z o
MI 0 :
u I : = 1 + C S 1y 1 0 O T
l = l y 1 +C S 0 O
并 行计 算与并 行算 法是 大规模 科 学计算 的理 论基 础和 支持工 具 , 而这 些 计算 多数 源 于 偏 微 分 方程离 散后 得 到 的 大 型稀 疏 线性 方程 组 。 因此 , 这类 方程组 的求解 已成为数 值算 法研 究 的热 点 问 题 -] 9 3年 ,T N 3。17 S O E提 出了一 组有 效 的 三对
根 据 区域分 解 法 , 用界 面 点 把 整个 区域 分 先 解 成 多个子 区域 , 对 各 子 区域 用 上 述格 式 计 算 再
所 得 的界面 值 作 为 Drhe 边 界 条 件 , 算 子 区 icl i t 计 域上 的问题 , 得 其 并行 差 分 格 式 。 由于边 界 网 可

modelica的simple算法

modelica的simple算法

一、简介Modelica是一种面向物理建模和工程仿真的开放式建模语言,它的简单算法(simple algorithm)是其中的一种常用算法。

本文将介绍simple算法的基本原理、应用场景和优缺点。

二、简单算法的基本原理简单算法是一种基本的隐式数值积分方法,它通过迭代求解微分方程的数值解。

简单算法的基本原理如下:1. 对微分方程进行离散化处理,将微分方程转化为差分方程;2. 利用初始条件,采用迭代方法求解差分方程的数值解;3. 判断数值解的精度是否满足要求,如果不满足则继续迭代,直到满足要求为止。

简单算法的求解过程相对直观,易于理解和实现,因此在一些工程仿真软件中被广泛应用。

三、简单算法的应用场景简单算法适用于一些简单的动态系统仿真,特别是对于非刚性系统和非线性系统的仿真。

由于简单算法的迭代过程较为稳定,因此对于一些求解较为复杂的微分方程而言,简单算法可以提供较为可靠的数值解。

简单算法在电力系统、控制系统和热力系统等领域有着广泛的应用。

在这些系统中,通常涉及到复杂的微分方程,而简单算法可以提供较为准确的数值解,为工程设计和分析提供重要的支持。

四、简单算法的优缺点简单算法作为一种常用的数值积分方法,具有以下优缺点:1. 优点:(1)易于实现:简单算法的迭代过程相对简单,易于理解和实现;(2)稳定性较好:简单算法的迭代过程相对稳定,适用于一些复杂的微分方程的求解。

2. 缺点:(1)收敛速度较慢:简单算法的迭代过程需要较多的迭代次数,收敛速度较慢;(2)对刚性系统和高阶系统的适应性较差:简单算法在处理一些刚性系统和高阶系统时,可能会出现数值不稳定的情况。

简单算法作为一种常用的数值积分方法,适用于一些简单的动态系统仿真,具有易于实现、稳定性较好的特点,但在收敛速度和对复杂系统的适应性上存在一定的局限性。

五、结语简单算法作为Modelica建模语言的一种常用算法,在工程仿真和系统分析中有着重要的应用价值。

通过深入理解简单算法的基本原理和应用场景,可以更好地利用该算法进行系统建模和仿真,为工程设计和分析提供可靠的数值支持。

迎风差分法-概述说明以及解释

迎风差分法-概述说明以及解释

迎风差分法-概述说明以及解释1.引言1.1 概述迎风差分法是一种常用的数值计算方法,用于求解偏微分方程的数值解。

它以差分代替偏导数,将连续问题离散化为离散问题,通过逼近求解离散方程组来得到精确的数值解。

该方法的基本原理是将求解区域等分为小网格,利用节点上的函数值和它相邻节点上的函数值之间的差异来逼近导数的值。

根据所采用的向前差分、向后差分或中心差分的方式,可以得到迎风差分法的不同形式。

迎风差分法的应用场景非常广泛。

它可以用于求解一维或多维的空间问题,例如热传导方程、波动方程、扩散方程等。

此外,该方法还可以应用于流体力学、计算机模拟等领域,用于模拟复杂的物理现象和工程问题。

迎风差分法具有一些优点和缺点。

其优点之一是简单易懂,容易实现。

通过简单的差分运算,即可得到数值解。

此外,该方法的计算效率较高,可应对大规模离散问题。

然而,迎风差分法也存在一些缺点,例如对于非线性问题的处理相对困难,可能会出现数值耗散和数值耗散等问题。

综上所述,迎风差分法是一种重要的数值计算方法,能够有效地求解偏微分方程的数值解。

它在科学研究和工程实践中具有广泛的应用前景。

本文将深入探讨迎风差分法的基本原理、应用场景以及优缺点,并对其未来的发展做出展望。

文章结构部分的内容可以按照以下方式编写:1.2 文章结构本文将按照以下结构进行论述:第一部分是引言部分,包括概述、文章结构和目的。

引言部分将对迎风差分法进行简要介绍,说明文章的结构和目的,为读者提供文章的整体框架。

第二部分是正文部分,主要包括迎风差分法的基本原理、应用场景和优缺点。

在这一部分,将对迎风差分法的基本原理进行详细阐述,包括其基本概念、基本步骤和数学原理等。

随后,将介绍迎风差分法在各个领域的应用场景,包括物理学、工程学和计算机科学等。

同时,还将探讨迎风差分法的优点和缺点,对其进行客观评价,为读者提供全面的了解。

第三部分是结论部分,主要包括总结迎风差分法的重要性、对其展望和最终结论。

Ansys显示算法和隐式算法知识完全解读

Ansys显示算法和隐式算法知识完全解读

An sys 显示算法和隐式算法知识完全解读这是 ansys 里面的两种求解方法。

大多数非线性动力学问题一般多是采用显式求解方法, 特别是在求解大型结构的瞬时高度非 线性问题时, 显示求解方法有明显的优越性。

下面先简要对比一下隐式求解法和显示求解法。

动态问题涉及到时间域的数值积分方法问题。

在 80 年代中期以前,人们基本上采用纽曼法 进行时间域的积分。

根据纽曼法,位移、速度和加速度有着如下关系:u(i+1)=u(i)+ △ t*v(i)[(1 — 2p)a(i)+2p*a(i+1)]⑴ v(i+1)=V(i)+A t[(1-2q)a(i)+2qa(i+1)](2) 上面式子中u(i+1),u(i)分别为当前时刻和前一时刻的位移, 一时刻的速度,a(i+1)和a(i)为当前时刻和前一时刻的加速度, 为当前时刻与前一时刻的时问差,符号 * 为乘号。

由式 (1)和式 (2)可知,在纽曼法中任一时 刻的位移、 速度、 加速度都相互关联, 这就使得运动方程的求解变成一系列相互关联的非线性方程的求解, 这个求解过程必须通过迭代和求解联立方程组才能实现。

能出现病态而无确定的解。

隐式求解法最大的优点是它具有无条件稳定性, 任意大。

如果采用中心差分法来进行动态问题的时域积分, 则有如下位移、 速度和加速度关系式:u(i+1)=2u(i)-u(i-1)+a(i)( △ t)A 2(3) v(i+1)=[u(i+1)-u(i-1)] / 2(△ t) (4)式中 u(i-1) ,为 i-1 时刻的位移。

由式 (3)可以看出,当前时刻的位移只与前一时刻的加速度 和位移有关, 这就意味着当前时刻的位移求解无需迭代过程。

另外, 只要将运动过程中的质 量矩阵和阻尼矩阵对角化, 前一时刻的加速度求解无需解联立方程组, 从而使问题大大简化,这就是所谓的显式求解法。

显式求解法的优点是它既没有收敛性问题,也不需要求解联立方 程组,其缺点是时间步长受到数值积分稳定性的限制,不能超过系统的临界时间步长。

显式求解方法和隐式求解方法对比

显式求解方法和隐式求解方法对比

采用有限元方法开展结构的动力学分析最终归结为求解离散后的常微分方程组tR KU U C U M =++ 。

在时域内求解该方程最常用的方法是直接积分法,而又根据求解过程中是否需要迭代求解线性方程组,将直接积分法分为隐式积分方法和显式积分方法两类。

隐式积分法认为t+Δt时刻系统的状态不仅与t时刻状态有关,且与t+Δt时刻某些量有关。

因此隐式算法是根据t n 及t n-1...时刻体系的物理量值建立关于以t n+1时刻物理量为未知量的线性方程组,通过求解方程组确定t n+1时刻的物理量(常用的方法有线性加速度法、常平均加速度法、Newmark 方法、Wilson-θ法、Houbolt 方法等)。

而显式积分法认为t+Δt时刻系统的状态仅与t时刻状态有关可,因此可由t n 及t n-1...时刻体系的物理量值直接外推t n+1时刻物理量值(如中心差分法),不需要求解线性方程组,实现了时间离散的解耦。

两种算法的比较 :(1)隐式算法隐式算法基于虚功原理,要迭代计算。

隐式算法在每一增量步内都需要对静态平衡方程进行迭代求解,并且每次迭代都需要求解大型的线性方程组,这一过程需要占用相当数量的计算资源、磁盘空间和内存。

理论上在这个算法中的增量步可以很大,但是实际运算中上要受到接触以及摩擦等条件的限制。

随着单元数目的增加,计算时间几乎呈平方次增加。

由于需要矩阵求逆以及精确积分,对内存要求很高。

隐式算法的不利方面就是收敛问题不容易解决,且在开始起皱失稳时,在分叉点处刚度矩阵出现奇异。

(2)显式算法显示算法基于动力学方程,无需迭代,包括动态显式和静态显式算法。

动态显式算法采用动力学方程的中心差分格式,不用直接求解切线刚度,不需要进行平衡迭代,计算速度快,也不存在收敛控制问题。

该算法需要的内存也比隐式算法要少。

数值计算过程可以很容易地进行并行计算,程序编制也相对简单。

它也有一些不利方面。

显式算法要求质量矩阵为对角矩阵,而且只有在单元级计算尽可能少时速度优势才能发挥, 因而往往采用减缩积分方法,容易激发沙漏模式,影响应力和应变的计算精度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档