CCPP Research Activities
Physics
CCPP hosts and develops two key codes used in UK laser-plasma and ICF research.
EPOCH is a user friendly, massively parallel relativistic EM PIC code. EPOCH was designed from the ground up to be easy to extend with new physics, new diagnostics and new user features. The EPOCH team includes UK researchers from Warwick, AWE, York, Imperial and Oxford as well as a growing number of international collaborators and developers. Considerable work has been undertaken in collaboration with Warwick Computer Science on EPOCH to allow parallel scaling to the very largest machines, and to extend the EPOCH physics model to include world leading features. EPOCH exists in 1D, 2D and 3D versions.
ODIN is a multimaterial MHD arbitrary Lagrangian Eulerian (ALE) code intended for both solar and ICF simulations. ALE codes have improved performance over pure Eulerian codes since they automatically move gridpoints into regions of interest and over pure Lagrangian codes since they prevent the grid tangling which causes Lagrangian codes to fail for highly structured flows. They work by running a pure Lagrangian simulation for as long as possible and then locally relaxing the grid when a region becomes too tangled.
Computer Science
Researchers in the High Performance and Scientific Computing research group, based in the Department of Computer Science at Warwick are interested in the application of new programming models and novel architectures to the applications described above. To this end, two mini-applications have been developed to enable rapid exploration of algorithmic and hardware optimisations.
miniEPOCH is a PIC code based heavily on EPOCH, written in C++. Rather than implementing the wide range of features present in EPOCH, miniEPOCH focuses purely on the most compute intensive elements of the parent code, and is therefore much smaller in size than EPOCH. miniEPOCH has been used to investigate known issues in EPOCH, and can improve performance up to 2x.
miniOdin is a Lagrangian code, written in C. The application currently is focussed only on the Lagrangian step algorithm implemented in ODIN. miniOdin is being used to investigate new programming models, such as Kokkos and OpenACC. Both of these would allow Odin to operate transparently on GPUs with minimal effort by the developers.