libmp数据++

libmpdata++1.0:一个用于一般传输方程系统的并行MPDATA解算器库。本文首次在MPC++程序库上实现了多维数据流的正迁移算法。该库为一般传输方程组提供基本的数值求解器。求解器具有时间向前性、保守性和非线性稳定性。libmpdata++库包含MPDATA的基本二阶精确公式、三阶变量、变量符号场的无限规范选项以及保证非振荡解的通量修正传输扩展。该库配备了一个非对称变分椭圆解算器,用于压力梯度项的隐式计算。所有的解算器都通过使用共享内存并行化的区域分解来提供并行化。本文描述了库编程接口,并作为用户指南。支持的选项用MPDATA文献中讨论的基准进行了说明。基准测试描述包括代码片段以及模拟结果的定量表示。应用实例包括笛卡尔和球面域中的一维、二维和三维均匀输运;浅水系统与解析解(最初推导用于二维情况)的比较;以及具有界面不稳定性的不可压缩Boussinesq流体中的浮力对流问题。所有示例都是在库树中实现的。不管问题维数、右侧项、边界条件和并行化方法有什么不同,所有的例子都使用相同的未修改库,这是libmpdata++设计的一个关键目标。设计基于关注点分离的原则,优先考虑用户和开发人员的生产力。libmpdata++库是用C++实现的,它利用Blitz++多维数组容器,以free/libre和开源软件的形式发布。