中文

libmpdata++ 0.1:用于广义输运方程组的并行 MPDATA 求解器库

计算物理 2014-08-19 v2

摘要

本文伴随 libmpdata++ 的首次发布,这是一个实现多维正定平流输运算法 (MPDATA) 的 C++ 库。该库提供用于广义输运方程组的基本数值求解器。这些求解器具有前向时间、守恒和非线性稳定的特性。libmpdata++ 库涵盖了 MPDATA 的基本二阶精度格式、其三阶变体、用于变号场的无限规范选项,以及保证非振荡解的通量校正输运扩展。该库配备了一个非对称变分椭圆求解器,用于隐式评估压力梯度项。所有求解器均通过基于共享内存并行化的区域分解提供并行化支持。本文描述了库的编程接口,并作为用户指南。所支持的选项通过 MPDATA 文献中讨论的基准测试进行了说明。基准测试描述包括代码片段以及模拟结果的定量表示。应用示例包括:笛卡尔和球坐标系下一维、二维和三维的均匀输运;与解析解(最初针对二维情形推导)比较的浅水系统;以及具有界面不稳定性的不可压缩 Boussinesq 流体中的浮力对流问题。所有示例均在库树之外实现。无论问题维度、右端项、边界条件和并行化方法有何差异,所有示例均使用同一未修改的库,这是 libmpdata++ 设计的关键目标。libmpdata++ 库采用 C++ 实现,利用 Blitz++ 多维数组容器,并作为自由/ libre 和开源软件发布。

关键词

引用

@article{arxiv.1407.1309,
  title  = {libmpdata++ 0.1: a library of parallel MPDATA solvers for systems of generalised transport equations},
  author = {Anna Jaruga and Sylwester Arabas and Dorota Jarecka and Hanna Pawlowska and Piotr K. Smolarkiewicz and Maciej Waruszewski},
  journal= {arXiv preprint arXiv:1407.1309},
  year   = {2014}
}

备注

Among the changes are: new chapter 5.4, updated presentation in chapter 6.3 and editorial corrections