没有合适的资源?快使用搜索试试~ 我知道了~
≥≥软件X 10(2019)100255原始软件出版物nlchains:在GPU上快速准确地对一维非线性链进行时间积分L. Pistone,M.OnoratoDipartimento di Fisica,Università di Torino,via Pietro Giuria 1,10125,Torino(都灵),意大利ar t i cl e i nf o文章历史记录:收到2019年收到修订版,2019年5月29日接受,2019年保留字:FPU非线性链GPUCUDAa b st ra ct我们提出了nlchains,一个软件模拟合奏的一维哈密顿系统与最近邻相互作用。实现的模型是α-β在所有情况下的积分算法是一个辛六阶积分器,因此非常准确,适合长时间的模拟。该实现侧重于性能,软件在图形处理单元硬件(CUDA)上运行。我们展示了一些说明性的模拟,我们估计的运行时性能和有效的缩放过程中的累积误差集成。最后,我们给出了一些基本的指针来扩展软件以满足特定的需求。©2019作者由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v1.1.0用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2019_56法律代码许可证MIT使用git的代码版本控制系统使用C++14、CUDA、MPI、CMake的软件代码语言、工具和服务编译要求、操作环境依赖性Linux、CUDA SDK、GCC、Boost、Armadillo(以及一个兼容的LAPACK库)开发人员文档/手册https://bitbucket.org/pisto/nlchains/src/master/README.md支持电子邮件咨询lorenzo. unito.it软件元数据当前软件版本v1.1.0此版本可执行文件的永久链接https://bitbucket.org/pisto/nlchains/downloads/nlchains-gite6c2001-opt64法律软件许可证MIT计算平台/操作系统Linux安装要求依赖CUDA 10.0、NVIDIA显卡(计算能力3.5、6.0或7.0)、Ubuntu 18.04环境(请参阅源代码树中的Dockerfile-ubuntu 1804-cuda 100如果可用,请链接到用户手册-如果正式出版,请在参考列表中引用该出版物https://bitbucket.org/pisto/nlchains/src/master/README.md支持电子邮件咨询lorenzo. unito.it*通讯作者。电子邮件地址:Lorenzo. unito.it(L. Pistone)。https://doi.org/10.1016/j.softx.2019.1002551. 导言和动机非线性链,即具有非线性最近邻相互作用的点系统,在非线性系统中具有重要作用2352-7110/©2019作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx2L. Pistone和M. Onorato / SoftwareX 10(2019)100255==+=−=∑∑是H=β|ψ|和H=|ψ−ψ|. AjBj+1j的解−=+JJ+1理解非线性物理和统计力学的基本过程。尽管在一般的玩具模型,或最好的粗糙近似的真实物理系统,他们显示了丰富的现象学,甚至基本的问题,如热化动力学或热输运定律往往没有一个明确的答案并非偶然,物理学中最早的数值实验之一是该实验的目的是观察一个线性链的质量和弹簧,当一个小的非线性添加热化。FPUT实验的一个明显的悖论是,FPUT系统中的热化不能在短时间内实现,因此无法用50年代的计算机观察到最近,我们和合作者应用了波动湍流[3,4]的工具,弱相互作用波系统的统计描述,以寻求非线性链热化动力学的普遍特征,[5为此,我们需要一个软件来运行这些系统的大型模拟。这些数值实验通常是耗时的,因为热化通常需要比相应线性化系统的波周期长的时间,并且还因为需要相同链的大量实现来提取有意义的统计。由于这些原因,编写代码时必须考虑性能和准确性,因为系统的哈密顿结构需要长时间保持。我们无法找到一个适当发布的软件,可以满足我们的需求。最近,FPUT系统的实现(可能扩展到其他模型)已经发布[12],但是它的设计并没有将性能作为强项,而是具有教学价值,强调快速原型和代码可读性。我们的贡献是我们在研究中使用的软件,即在图形处理器硬件(GPU)上实现了几个一维非线性链的时间这个软件的主要价值是我们在调优方面所花费的努力我们的研究领域。相同类型的高阶方案可以通过对源代码的微小修改来实现(细节将在后面的部分中给出为了参考,我们在这里报告的原则,这种集成方案。由于所考虑的所有系统都是哈密顿系统,因此,某些初始状态z(q0,. . .,q N1,p0,. . .,p N1)(或z(n =0,. . . ,对于DNLS模型,为N1),由泊松括号给出zstec={z,H(z)}。(一个)现在可以通过引入微分算子DH={·,H(·)}来正式求解上述方程,以获得zstec=DHz,z(δt)= eδtDHz(0).(二)一般来说,不可能给出eδtDH的显式形式,因为这与系统的积分相一致。然而,由于泊松括号是双线性的,因此可以利用所考虑的哈密顿量是不同项的和。如果将哈密顿算子分成两部分,H=HA+HB,则微分算子也分成两个相应的部分,DH=DA+DB,得到z(δt)=eδtDHz(0)=eδt(DA +DB)z(0).(三)一般来说,DA和DB不对易,因此不可能写eδtDHeδtDAeδtDB,但是可以证明,可以生成以下类型的方案:eδ tD H= e c 1 δ tD A e d 1 δ tD B e c 2 δ tD A e d 2 δ tD B。. . e c kδ tD A e d kδ tD B+ O(δt x)(4)其中系数ck和dk是实数,x是某个正整数,即积分方案的阶数假设,当分裂HHA HB被仔细选择,使得HA和HB是单独可积的,则有可能生成完全显式的积分方案。对于真正的模特来说,最自然的选择就是将哈密顿量转化为动能和势能,即HA=1p2其性能和H2J=V(q−2. 实现的算法在表1中,我们列出了已经在nlchains中实现的模型。变量q j和p j是共轭坐标和动量,而nj是复变量,j是从0到N的索引1,其中N是链的长度。我们包括了最初的α-β在线性和非线性贡献中分裂哈密顿量,1 4 22ck和dk的方程。(4)我们在软件中硬编码的是从[13],它是六阶和系数的值ck和dk是{c0,. . . ,c7}={0。392256805238780,0.510043411918458,- 0 的情况。电话:471053385409757(FPUT)、具有相等质量(DNKG)和无序、特定位置质量(dDNKG)的离散非线性Klein-Gordon模型、Toda晶格和离散非线性薛定谔方程(DNLS)。Toda晶格势的特定版本被选择为与α-FPUT模型相切,即两个相邻质量之间的势能V(q j+1−q j)=和0的情况。068753168252518,0.068753168252518,- 0 的情况。电话:4710533854097570的情况。510043411918458,0.392256805238780}(五)V(q j)是VToda(q j)V-FPUTα(q j)O(q4)。 预计将该软件扩展到具有类似潜力的其他系统是很容易的。参数α、β、m和mi可由用户设置2.1. 集成方案正如在介绍中提到的,算法的选择是由良好性能的需要驱动的,但也是由AC驱动的。{d0,. . . ,d7}={0。784513610477560,0.235573213359357,- 1 .一、177679984178870,1 .一、315186320683906,-1。177679984178870,0的情况。235573213359357,0的情况。784513610477560,0}。(六)非线性链的哈密顿结构守恒的精确性。我们选择了6阶辛吉田积分器[13]。这个算法适合我们的需要,原因如下。它允许非常长的时间模拟,因为是辛的,它避免了守恒量(例如哈密顿量)的长期增长。它是明确的,这使得它直接和容易执行。我们选择了六阶,因为它在计算速度和精度之间实现了最佳权衡,注意,系数d7为0,因此可以将一个步骤eδtc7DA的最后积分与下一个步骤eδtc0DA的第一积分合并。我们预计,如果用户需要高阶积分器(例如8阶),为此修改软件应该是非常简单的。在结束本节时,我们注意到,对于除DNLS之外的所有模型,积分都是在物理空间中执行的。 然而,对于DNLS模型,由于线性和非线性Bqj)。对于DNLS模型,我们遵循[14],L. Pistone和M. Onorato / SoftwareX 10(2019)1002553J()(())=−+−++−++−2α2()=-∑∑=˜()e=v·ωq+p2.(9)kkkk=K⟨·⟩∑N2J==− −22J4J2J22J4J2J2342J4αKKKE√J表1nlchains中实现的模型列表。对于实模型,q j和p j是在指数j∈ [0,N)处的共轭坐标和动量,N是链的长度(qstecj=pj)。 对于DNLS,dj是一个复杂的x变量,d是一个想象的y单位。运动方程和哈密顿密度子程序DNKGpstecj=qj−1−2qj+qj+1−mqj+βq3Hj=1p2+1(qj+1−qj)2+1mq2+1βq4dDNKGpstecj=qj−1−2qj+qj+1−mjqj+βq3Hj=1 p2+1(qj+1− qj)2+1 mj q2+1β q4FPUTpstecjqj12q jQJ1αqj1QJ1 1+β((qj+1−qj)3−(qj−qj−1)3)Hj=1p2+1(qj+1−qj)2+1α(qj+1−qj)3+1β(qj+1−qj)4Todapstecj=1 (e2α(qj+1−qj)−e2α(qj−qj−1))H j=1p2+12(e2α(qj+1−qj)−2α(qj+1−qj)−1)DNLSist ecj=−j−1−2j+j+1+βjj2H j= |j+1−|2 + 1 β|拉吉|4子哈密顿算子在傅立叶和物理空间中是对角的,积分方案本质上变成了一个精细的分步方案[15],线性部分的时间演化在傅立叶空间中进行,如建议的那样(但未实现)在[14]中。这具有在集成DNLS模型时执行大量快速傅立叶变换(FFT)的副作用,即每步14个FFT:非零 dk系数的数量加倍以考虑从物理空间来回的直接和逆FFT。正如我们稍后将解释的,这对算法的数值精度和速度有重要影响。2.2. 其他计算数量为了观察重现性和均分性,软件还以用户可设置的间隔计算线性化系统的每个本征态的平均能量(即表1中的α0和β0)。对于DNKG,FPUT和Toda系统,可以证明线性化系统的本征态是所谓的正常模式,其中,N是链的长度,E ek是总线性能量,而波动熵是N−1SWT=−log(e′k)。( 十一)k=0传统上,Eq。(10)已被用于监测FPUT问题的热化路线,但在波动湍流的框架中,只有方程。(11)具有熵函数的性质,即可以证明统计上它是时间上的然而,可以证明[8],这两个熵在热平衡时都大于零,在完美均分时都为零,并且它们在监测热化路线方面基本上是等价的。3. 软件构架该软件打包在一个独立的Linux可执行文件中。构建要求和编译步骤记录在a k1(pk− iωk qk)(7)源代码附带的自述文件(文件README.md)一个=2ωkΩ其中q和p构建过程的一个重要细节是,DNLS在编译时针对特定的链长度进行优化。andp,andkkJj如果启动nlchains的构建,ωωk是系统的色散关系,即k=+链长的值不对应于m4 sin(πk/N)2. 对于DNLS模型,简正模ak是物理空间的离散傅里叶变换变量j,色散关系为ωk4 sin(πk/ N)2。在所有这些情况下,每个模式的能量被定义为:ek=ωk|一个k|第2章(8)平均数的话对于dDNKG模型,本征态vk和对应的本征值ω2是从对应于链的运动方程的常微分方程系统的矩阵表示数值计算的。然后 从 坐 标 和 动 量 矢 量 q 的 显 式 投 影 获 得 每 个 模 式 的 能 量(q0,. . .,q N1)和p(p0,. . .,p N1)在本征态上,2K根据每个模式的平均能量,软件计算并输出相关的信息熵,N−1Sinf=e′log ( e′ ) , e′ =ek ,( 10)优化值,但无论如何都要执行计算。为更详细的内容请读者参阅第五节。模拟是用许多命令行参数设置的。shell中的调用采用以下形式:[MPI启动器>] nlchains模型>\\<常见选项>\\<型号特定选项>可执行文件可以在当前主机上的单个GPU上按原样运行,或者通过MPI在不同的GPU上分割实现的集合。用户应该为每个计算节点分配与连接到节点本身的GPU数量相同的MPI进程数量当通过MPI运行时,软件期望共享文件系统的存在,因为完整状态转储是用MPI共享I/O工具写在磁盘上的。GPU代码用CUDA编写,主机代码用C++14编写,因此需要NVIDIA GPU卡(最低计算请注意,本软件是用浮点双精度实现的,等一张卡的特斯拉线建议,因为消费级卡在很大程度上是有限的,k=0是q的离散傅里叶变换双精度性能。4L. Pistone和M. Onorato / SoftwareX 10(2019)100255===∼∼=表2输出文件的列表prefix的值通过命令行选项设置-p(参见表3)过滤器描述prefix-step集合状态prefix-linenergies-step每本征态前缀熵熵列表仅dDNKG:前缀特征向量特征向量的前缀omegas表3所有模型通用的命令行选项参数描述-i系综的初始状态-n链的长度-c集合中实现的数量--dt时间步长-b每次内核调用-s要运行输出文件名的-p为了进行性能比较,以及在主机上没有GPU可用的情况下作为后备,所有型号都有一个仅CPU的实现。要启动它,只需在模型名称后面加上-cpu,例如DNLS-cpu。该实现是单线程的,但多个核心和节点可以用于并行化,其方式与GPU实现可以在多个GPU上启动相同该实现还利用了现代处理器(SSE,AVX和AVX-512)中的高级SIMD指令,因此它应该在性能上具有竞争力这里使用此实现来与GPU实现的性能进行比较(参见第5.2节)。然而,这不是本文的主要信息,提出了一个CPU的实现。感兴趣的读者可参阅本文件所附的实施说明,作为进一步了解情况的补充材料。3.1. 文件格式输入和输出的格式是原始二进制。输出文件列表如表2所示。系综的初始状态和完整状态转储的格式相同,即作为C++数组double[C][N][2],其中C是系综大小,N是链长度,最后一个两元素数组包含链中元素的共轭坐标qj和动量pj。对于DNLS模型,格式为std::complex< double>[C][N],即链中元素的实部和虚部代替共轭坐标和动量。每 个 线 性 模 式 转 储 的 能 量 只 是 一 个 普 通 的 double 数 组 ,double[N]。请注意,当计算线性能量时涉及离散傅立叶变换(所有情 况 除 外 dDNKG ) , 我 们 使 用 FFTW[16] 约 定(FFTW_FORWARD)表示指数的符号。熵列表的格式为double[][3],其中每个三元组包含绝对时间(步数乘以时间步),方程的波湍流熵(11)和方程的信息熵。(十)、对于DNKG模型,创建两个附加文件:格式为double[N][N]的本征向量文件(第一索引是本征向量的索引),以及作为double[N]的对应本征值的平方根(对应于本征态的脉动)。3.2. 命令行选项nlchains的第一个参数是表1中列出的子程序之一。如果没有打印其他参数,则打印适用于模型的参数列表,以及简短的描述。在表3中,我们描述了最重要的命令行选项,这些选项对所有模型都是通用的,并且是运行模拟所必需的。其他常用的开关也是可用的(例如当达到给定的熵阈值时终止),但为了简洁起见,请参阅源代码树中的自述文件模型参数α、β、m和mi(见表1)可以分别用--alpha、--beta 、 -m 设 置 ; 对 于 DNKG 模 型 , -m 取 一 个 值 , 对 于dDNKG,它取一个文件名,其中包含双精度[N]格式的质量值列表。注意,转储和熵计算的时间粒度等于-b的值。使用选项--dump_interval可以为占用空间的完整状态和线性能量转储设置更大的间隔。4. 示例和准确性作为该软件的用例的一个例子,我们在图中显示。1Toda晶格动力学与α-FPUT动力学的有趣情况,具有相同的线性波模式的初始状态和相应的熵曲线,由等式2给出。(十一)、系综的初始状态(图中上半部分的空心圆圈)。 1)已经被初始化为每个线性模式的能量的随机值,对于系综中的所有实现都是相同的集合,并且被重新缩放为具有E1,但是每个实现具有正常模式的不同相位a k。该方案确保所有实现具有相同的初始线性能量。α的值为0.5,因此与线性部分相比,哈密顿量的非线性项较小,因为在这种情况下,更容易观察到线性模式的均分。时间步长设置为δt0。1,步骤总数为2107.我们可以看到对于Toda晶格,熵(图中下半部分的虚线) 1)迅速稳定到与初始值相差不远的值,这清楚地表明系统没有热化,而对于α-FPUT系统(实线),系统最终达到均分。这可以从在最终状态下的每模式能量的直接检查中理解:1,实心圆是均分时α-FPUT链的每个模式的能量(减去由于系综的有限大小而引起的一些统计波动),而空心正方形是最终状态对于Toda晶格。对于更详细的例子,我们建议感兴趣的读者参考文献[7,8]。图 2我们展示了模拟精度的缩放作为步长的函数。为了测量精度,我们控制已知的精确运动积分的值,即哈密顿量H(t)的值,或总能量。然后,模拟运行固定的总时间T100000(任意单位),但具有不同的时间步长,因此具有不同的总步长数。每个模拟的初始状态以与图1的数据类似的方式初始化。1.一、然后将精度计算为与能量初始值的平均相对偏差=|H(T)− H(0)|/H(0)(十二)由于我们使用六阶辛积分器,因此预期误差的标度为δ t0 ( δt6 )型我们在图中看到,我们得到了模型FPUT、DNKG、Toda和dDNKG的预期误差缩放,直到大约10 −13 的 饱 和度。对于DNLS模型,我们更早地达到饱和,大约在200 ℃左右10-9这可以解释为我们前面提到的DNLS算法对于每个单个时间步需要14个快速傅立叶变换(FFT),因此L. Pistone和M. Onorato / SoftwareX 10(2019)1002555⃝·==Fig. 1. 从Toda和α -FPUT模型的相同初始状态运行,α值相同,链长为64,系综大小为4096。顶部图,能量每模式,方程。(7):初始状态热化α-FPUT链,Toda晶格的最终状态。下图,熵曲线,实心的,虚线分别表示α-FPUT和Toda模型。与其他模型相比,数据经历了更多的加法和乘法,并且由于机器编号的有限精度而导致的数值误差累积得更快。事实上,当δt较小时,δ t的行为属于δ t型。O(δt−1),也就是说,它与FFT的数量成比例。当非线性参数被设置为零时,即当辛积分格式变得精确时不再是误差源时,即使δt的值很大,误差的标度仍然是ΔO(δt−1)。本节所示的所有数据均作为参考资料附上。5. 实施和软件可扩展性该软件没有添加新模型的界面,基本上所有可用的设置都可以通过命令行选项访问。这是一个设计选择,因为性能一直是开发此代码的重中之重:在GPU程序的情况下,良好的性能通常通过主机和GPU代码之间的紧密耦合来实现,并避免不必要的泛化(例如允许通过虚拟函数指定新模型)。代替运行时灵活性,nlchains被设计成易于修改和扩展。为了支持源代码注释,本文的补充材料中提供了一份包含大量实施注释的手册、内部实用程序接口的描述及其使用示例(也作为源代码树中的独立文档,supporting- material/documentation/implementation-notes.pdf)。我们建议需要调整nlchains以满足其需求的用户阅读本手册,以避免实现细节使本文变得混乱。5.1. 针对最终用户我们在这里只提到一些实现细节,即使对于不打算修改nlchains功能的用户也是有用的。除DNLS外,所有模型都有三种不同的GPU内核实现。一个实现针对小于32的链长度进行优化(move_chain_in_thread),另一个实现针对所有链长度进行通用(move_split),最后一个实现(move_chain_in_warp)必须在编译时针对大于或等于32的特定链长度上的指令6L. Pistone和M. Onorato / SoftwareX 10(2019)100255⃝△图二. 积分算法的准确性及其标度。 上图:FPUT、Toda□、DNKG、dDKNG +。下图:DNLS,DNLS具有零非线性度。 实线是δt6,虚线是δt−1。如何选择目标链长优化在自述文件内的源代码中有详细说明。这种优化的实现比一般的实现快得多(对于q j和p j变量如何保存在单独的缓冲区中,称为由于寄存器内存有限,最大目标链长度约为1024,但无法给出精确的上限,因为这取决于GPU硬件和编译器版本。用户应该始终使用命令行选项--split_kernel来比较优化版本和通用版本的运行时。我们之前展示了DNLS模型基本上变成了一个涉及大量FFT的精细分裂步骤方案。为此,我们使用库cuFFT [17]。 为了节省集合往返于寄存器和全局存储器的大量往返行程中的一些,线性和非线性运算符已经被实现为cuFFT回调。一般来说,这会带来很大的性能提升,但在某些情况下,非回调版本可能会更快。回调的使用可以通过命令行 选 项 --no_linear_callback 和 --no_nonlinear_callback来选择性地抑制,我们鼓励对定义的集成大小和硬件组合的各种组合进行基准测试。表4针对链长为64和1024个副本、内核大小(选项-b)为100000(1000)的数据集,在单个K40 m卡(内核和内存分别为875 MHz和3004 MHz)上进行性能测量DNLS模型)。在这些运行中已禁用文件转储。链步/秒DNKG(优化内核)163904dDNKG(优化内核)150003FPUT(优化内核)83254Toda(优化内核)37431FPUT(分割内核)4012DNLS(带cuFFT回调)2303DNLS(无cuFFT回调)11495.2. 业绩计量软件的性能取决于许多因素。作为参考,在表4中,我们显示了对于软件中存在的大多数实现的每秒步数的一些粗略估计,对于固定的链长度大小64和系综大小1024。这些性能数据应该大致与GPU的数量成线性关系,与链长度和集成大小的倒数成线性关系如前所述,FPUT模型的最大性能瓶颈是在“分裂”内核的情况下的内存访问等L. Pistone和M. Onorato / SoftwareX 10(2019)1002557表5在英特尔至强处理器E5-2680上进行性能测量,包括单线程和24线程,数据集的链长为64和1024个副本(多线程测试为1008),磁盘大小(选项-b)为10000(DNLS模型为在这些运行中已禁用文件转储链步数/秒 (1个线程)步数/秒 (24螺纹)DNKG122924510dDNKG128025623FPUT80217123Toda1974165DNLS901965预计DNKG、dDNKG和Toda模型也存在差异DNLS模型是所有模型中最慢的,因为涉及大量FFT。然而,由于使用cuFFT回调,可以实现加速。如前所述,为了比较GPU实现的优势,我们将积分器实现为传统的CPU代码该代码利用了最新CPU的最新向量化(SIMD)功能,特别是它可以使用AVX和AVX-512指令集。CPU实现已在英特尔至强处理器E5-2680(具有发布日期类似于GPU基准测试中使用的NVIDIA K40m卡它可以以GPU实现的相同方式并行化(参见第3节)。表5中示出了单线程运行和24线程运行(使用CPU的所有核心)的结果,其中数据的参数与表4中所示的相同。我们观察到以下情况。模型性能方面的相对顺序基本上与GPU实现相同多线程性能与线程数大致呈线性关系,尽管它显示出典型的饱和迹象:24线程最后,我们看到,(最佳)GPU实现的加速比多线程实现是显着的。对于真实模型,我们观察到6.7x(DNKG),5.9x(dDNKG),4.9x(FPUT)和9.0x(Toda)的加速。 对于DNLS模型,加速要温和得多(1.2倍)。这是由于GPU实现遭受高延迟全局内存操作的事实,而CPU实现一次在单链上操作,因此CPU缓存被利用。不幸的是,我们不可能在更新的GPU硬件上测试代码,这些硬件应该提供更好的内存技术。6. 影响该软件的目的是为科学界提供一个专门的工具,用于模拟非线性链(以及可能的其他简单的哈密顿,最近邻系统)。虽然模拟算法并不新颖,并且Yoshida六阶积分算法的简单实现并不特别困难,但据我们所知,迄今为止还没有努力对代码的性能、现代性和可扩展性进行强烈关注的模拟进行编码,也没有使用异构硬件架构(例如GPU)的软件这个软件在我们的研究工作中是必不可少的[7,8]。这种模拟的简单实现可能需要数周的利用GPU硬件的并行化可能性,以及对代码进行调整和优化的艰苦工作,使得运行典型大小的模拟最多只需几个小时。7. 结论在本文中,我们提出了nlchains,一个专门的软件,用于在GPU硬件上模拟一些具有最近邻相互作用的一维哈密顿系统。在研究这些系统的热化过程中,已经对软件进行了编码,但由于速度和精度都很好,其他应用也是可能的。我们已简单介绍了软件的使用方法,并提到了一些实施细节,这些细节可以指导有兴趣的用户根据自己的需要调整软件。我们还提供了一些模拟结果,最重要的是模拟中累积误差的缩放,它与预期的缩放O(δt6)非常匹配,其中δt是步长。据我们所知,这也是如[14]中所述的离散非线性薛定谔方程的Yoshida 6阶辛积分器的第一个实现竞合利益作者希望确认,本出版物不存在已知致谢我们感谢OCCAM设施,都灵大学,为提供必要的硬件开发这个软件。M. O.由“Progetto di Ricerca d 'Ateneo CSTO 160004”和意大利教育,大学和研究部(MIUR)授予的“2018- 2022年卓越部门”资助附录A. 补充数据与本文相关的补充材料可以在https://doi.org/10.1016/j.softx.2019.100255上找到。引用[1]李文辉,李文辉,李文辉.研究非线性问题。Tech.代表,我,洛斯阿拉莫斯科学实验室报告编号LA-1940; 1955.[2]加拉沃蒂湾费米-帕斯塔-乌拉姆问题:现状报告,第728卷。Springer;2008.[3]Falkovich G,Lvov V,Zakharov V. Kolmogorov湍流谱。Berlin:Springer;1992.[4]Nazarenko S. 波浪乱流,第825卷。 Springer;2011.[5][10]杨文,李文,李文. α-费米-帕斯塔-乌拉姆系统的热化路线。Proc NatlAcad Sci USA 2015;112(14). http://dx.doi.org/10.1073/pnas.1404397112网站。[6]利沃夫 YV, OnoratoM.双 缩放 在的 放松 时间 在β-Fermi-Pasta-Ulam-Tsingou模型Phys Rev Lett 2018;120(14):144301。[7]Pistone L,Onorato M,Chibbaro S.波-湍流框架中离散非线性Klein-Gordon链的热化。欧洲物理快报2018;121(4):44003。[8][10]杨文辉,杨文辉.弱非线性一维链热化的普适途径。2018年,ArXiv预印本。arXiv:1812.08279。[9]Bustamante MD,Hutchinson K,Lvov YV,Onorato M. Fermi-Pasta-Ulam-Tsingou系统的精确离散响应。2018年,ArXiv预印本。arXiv:1810.06902。[10]斯波恩湾声子玻尔兹曼方程,性质和弱非谐晶格动力学的联系。第124章.[11]Lukkarinen J. 弱 非 谐 粒 子 链 中 声 子 的 动 力 学 理 论 。 在 : 低 维 热 输 运 。Springer; 2016,p. 159 -214[12]Kashyap R, Sen S. PULSEDYN-用 于 研 究 强 非 线 性 链 的 动 态 仿 真 工 具 。Comput Phys Comm 2019.8L. Pistone和M. Onorato / SoftwareX 10(2019)100255[13]吉田H.高阶辛积分器的构造。物理快报A1990;150(5):262[14]放大图片作者:J.离散非线性薛定谔方程的高阶显式辛积分2010年,ArXiv预印本。arXiv:1012.3242。[15]Weideman J,Herbst B.解非线性薛定谔方程的分步方法。SIAM J NumerAnal1986;23(3):485-507.[16]Frigo M,Johnson SG. FFTW3. Proc IEEE2005;93(2):216-31.[17]NVIDIA Corporation. cuFFT。2018年12月28日,中国科学院出版社。https://docs.nvidia.com/cuda/cufft/
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- IPQ4019 QSDK开源代码资源包发布
- 高频组电赛必备:掌握数字频率合成模块要点
- ThinkPHP开发的仿微博系统功能解析
- 掌握Objective-C并发编程:NSOperation与NSOperationQueue精讲
- Navicat160 Premium 安装教程与说明
- SpringBoot+Vue开发的休闲娱乐票务代理平台
- 数据库课程设计:实现与优化方法探讨
- 电赛高频模块攻略:掌握移相网络的关键技术
- PHP简易简历系统教程与源码分享
- Java聊天室程序设计:实现用户互动与服务器监控
- Bootstrap后台管理页面模板(纯前端实现)
- 校园订餐系统项目源码解析:深入Spring框架核心原理
- 探索Spring核心原理的JavaWeb校园管理系统源码
- ios苹果APP从开发到上架的完整流程指南
- 深入理解Spring核心原理与源码解析
- 掌握Python函数与模块使用技巧
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功