libcloudph++ 0.1: single-moment bulk, double-moment bulk, and particle-based warm-rain microphysics library in C++
Institute of Geophysics, Faculty of Physics, University of Warsaw, Warsaw, Poland
arXiv:1310.1905 [physics.ao-ph], (7 Oct 2013)
@article{arabas2013libcloudph,
}
This paper introduces a library of algorithms for representing cloud microphysics in numerical models written in C++, hence the name libcloudph++. In the initial release, the library covers three warm-rain schemes: the single- and double-moment bulk schemes, and the particle-based scheme with Monte-Carlo coalescence. The three schemes are intended for modelling frameworks of different dimensionality and complexity ranging from parcel models to multi-dimensional cloud-resolving (e.g. large-eddy) simulations. A two-dimensional prescribed-flow framework is used in example simulations presented with the aim of highlighting the library features. Discussion of the example results and of the formulation of the schemes is focused on the particle-based scheme and on comparison of its capabilities and limitations with those of the bulk schemes. The libcloudph++ and all its mandatory dependencies are free and open-source software. The Boost.units library is used for zero-overhead dimensional analysis of the code at compile time. The particle-based scheme is implemented using the Thrust library that allows to leverage the power of graphics processing units (GPU), retaining the possibility to compile the unchanged code for execution on single or multiple standard processors (CPUs). The paper includes description of the programming interface (API) of the library and a performance analysis including comparison of GPU and CPU setups.
October 8, 2013 by hgpu