ANUChem is a collection of computational chemistry codes written in the X10 programming language.

These include:

- Pumja Rasaayani (Quantum Chemistry): energy calculation using the Hartree-Fock SCF method;
- PGAS-FMM: electrostatics calculation (for molecular dynamics) using the Fast Multipole method; and
- PME: electrostatics calculation using the Smooth Particle Mesh Ewald method.

These codes are all experimental in nature and are not guaranteed to run against the latest stable release of X10. However some components may be of interest to X10 application programmers, including:

- an implementation of a 3D Morton distribution for X10 distributed arrays;
- an implementation of a Distributed 3D Fast Fourier Transform (FFT) using native linking from X10 to the FFTW library;
- example of native linking from X10 to the GNU Scientific Library;
- 3D and multidimensional Vector and Point classes;
- implementation of a local dense matrix with some linear algebra operations; and
- a global shared counter to coordinate a set of distributed activities.

Browse the ANUChem Mercurial repository

The tagged X10 2.4.2 version compiles and runs under X10 2.4.2. See README files in each app's doc directory for build process and dependencies.

ANUChem is free software under the Eclipse Public License. It was developed at the Australian National University by Josh Milthorpe, Ganesh Venkateshwara and Taweetham Limpanuparb, with contributions from David Grove and Andrew Haigh.

Please cite the following paper when referencing ANUChem in a publication.

J. Milthorpe, V. Ganesh, A.P. Rendell, and D. Grove (2011). **X10 as a parallel language for scientific computation: practice and experience** (preprint), in proceedings of the 25th IEEE International Parallel & Distributed Processing Symposium (ISBN 978-0-7695-4385-7), 1080-1088. doi:10.1109/IPDPS.2011.103

J. Milthorpe, A.P. Rendell and T. Huber (2014). **PGAS-FMM: Implementing a distributed fast multipole method using the X10 programming language**, Concurrency and Computation: Practice and Experience. **2014** 26 (3) 712-727. doi:10.1002/cpe.3039

T. Limpanuparb, J. Milthorpe and A.P. Rendell (2014). **Resolutions of the Coulomb Operator: VIII. Parallel implementation using the modern programming language X10**, Journal of Computational Chemistry. doi:10.1002/jcc.23720

T. Limpanuparb, J. Milthorpe, A.P. Rendell, and P.M.W. Gill (2013). **Resolutions of the Coulomb Operator: VII. Evaluation of Long-range Coulomb and Exchange Matrices**, Journal of Chemical Theory and Computation. **2013** 9 (2) 863-867. doi:10.1021/ct301110y

J. Milthorpe and A.P. Rendell (2012). **Efficient update of ghost regions using active messages** (preprint), in proceedings of the 19th IEEE International Conference on High Performance Computing (HiPC). doi:10.1109/HiPC.2012.6507484

Andrew Haigh (2011). **Implementation of rotation-based operators for Fast Multipole Method in X10**, technical report for ANU Summer Scholar program.

Other **X10 resources**