latfield2 is a C++ library designed to simplify writing parallel codes for
solving partial differen- tial equations, developed for application to
classical field theories in particle physics and cosmology. It is a significant
rewrite of the latfield framework, moving from a slab domain decomposition to a
rod decomposition, where the last two dimension of the lattice are scattered
into a two dimensional process grid. Parallelism is implemented using the
Message Passing Interface (MPI) standard, and hidden in the basic objects of
grid-based simulations: Lattice, Site and Field. It comes with an integrated
parallel fast Fourier transform, and I/O server class permitting computation to
continue during the writing of large files to disk. latfield2 has been used for
production runs on tens of thousands of processor elements, and is expected to
be scalable to hundreds of thousands.