I am a Data Science Fellow at the University of Liverpool, working within the QUASAR Group. I work on research and development within the area of data science, specialising in the study of simulations of galaxy formation and evolution. I work on projects with colleagues in academia and industry, and contribute to the supervision and training of PhD students in the LIV.INNO programme.
Born in Leeds, UK, I completed my Master's degree in Physics and Astronomy at Durham University. My dissertation was on the properties of disk galaxies at the universe's star forming heyday. I studied for a PhD in Astrophysics at Liverpool John Moores University between, focusing on the use of hydrodynamical simulations in informing cosmological simulations. Working with Rob Crain and
Ian McCarthy, I used the EAGLE simulation to assess the morphologies and orientations of galaxies likely to be targetted by the Square Kilometer Array telescope in future radio weak lensing surveys. Check out my PhD thesis here . In my first postdoc, I researched the link between galaxy clustering and the properties of the circumgalactic medium.
Outside Research
Collingwood College, Floodlit Cup Champions!
In my time away from work, I like to explore the wilder parts of the country and to travel abroad. I love sports, including bouldering, rugby, football, badminton and mountain biking. If need a buddy to go to the mountains with, hit me up!
LIVDAT
Members of LIVDAT at the CDT National Kick-Off Event in Cardiff, October 2017
I am a member of the Liverpool Big Data Science(LIVDAT)Centre for Doctoral Training(CDT) initiative, a collaboration between Liverpool John Moores University and the University of Liverpool aimed at training students in managing, analysing and interpreting large datasets.
Research
Jodrell Bank, STFC Introductory Summer School in Astronomy 2017
Introduction
I use the EAGLE (Evolution and Assembly of GaLaxies and their Environments) suite of simulations to understand how galaxies formed and evolved over cosmic history. The physics is modelled with nearly 7 billion particles within a box of length 100 Megaparsecs.
Currently I am using EAGLE to investigate the systematics that may affect future radio weak lensing surveys, such as the SKA (Square Kilometer Array). Gravitational lensing occurs when light from a background source is distorted by the matter along its path to an observer. As lensing is sensitive to all types of matter, it is a highly useful tool in understanding the distribution of dark matter in the universe. Weak lensing causes the images of galaxies to be stretched and rotated with respect to their true selves, so understanding the degree of distortion tells you a lot about what the light encountered on its way to us. So far so good, however other physical phenomena can make it seem like lensing has occurred to a greater extent than it has.
Examples of galaxies taken from EAGLE illustrating the z = 0 Hubble sequence of galaxy morphologies (Schaye et al. 2015).
Hill et al. 2021
Figures of the best fitting functions to histograms of star-forming gas - DM misalignment anlge may be found here. Values in the legend refer to the median values of the input distribution and the best fitting profile.
Current Work
The shapes and orientations of galaxies are dependent on many environmental factors, including the properties of their neighbours and their location with respect to the Cosmic Web . Background galaxies can be lensed by a common cluster to appear to be aligned, equally neighbouring galaxies can be aligned by their common local density field. I am in the process of using EAGLE to characterise the shapes, orientations and alignments of gas, stars and dark matter within galaxies, as well as the alignments between neighbouring galaxies and satellites.
EAGLE catalogue data created by Jon Davies for the purposes of cosmic web extraction may be found here: here
TNG300-1 catalogue data created the purposes of cosmic web extraction may be found here: here
TNG300-1-Dark catalogue data created the purposes of cosmic web extraction may be found here: here
Future Work
In the future I will work to bridge the gap between simulations and real-world observations by creating ’synthetic skies’, investigating how the universe within the simulation would appear to an internal observer.
Seminars
July 2020 - Seminar on my industrial placement at IBM Research UK. Slides here and blog post here.
January 2020 - Seminar at Virgo 2020, Durham, on the predicted Intrinsic Alignment of radio galaxies. [Slides].
July 2019 - Seminar at National Astronomy Meeting, Lancaster. [Slides].
In 2018 I gave a talk to residents of the Liverpool Science Park on the work of the High Performance Computing Group at the ARI [Slids.]
Posters
My poster at the SKA General Science Meeting was on the intrinsic alignment of radio galaxies in the EAGLE Simulation.
Public Engagement
October 2020 - Public engagement lecture on all things astronomy and simulations, in co-operation with the University of Liverpool and the Bolton Council of Mosques. Video and slides.
In 2018 I gave a talk to residents of the Liverpool Science Park on the work of the High Performance Computing Group at the ARI [slides].
Augmented Reality
Between October 2019 and January 2020, I undertook an industrial secondment at imagin3d, with a remit to explore augemnted reality (AR) applications in science education and outreach. One product produced explored the EAGLE universe and featured in my pitch for the IoP's 'Three Minute Wonder' competition.
PhD Training
LIV.INNO: Introduction to C++
A significant part of this course will take inspiration from 'C++ from the Ground Up', by Herbert Schildt. The pdf for this can be found online.
The lecture slides and example scripts can be found below:
In this workshop we explored the origins of C++, downloaded a IDE and compiler, and ran a basic script. A pdf version of the slides can be found here.
This is the example script:
#include <iostream>
using namespace std;
int main() {
int first_number, second_number, sum;
cout << "Enter two integers: ";
cin >> first_number >> second_number;
// sum of two numbers in stored in variable sumOfTwoNumbers
sum = first_number + second_number;
// prints sum
cout << first_number << " + " << second_number << " = " << sum << "\n";
return 0;
}
Introduction to C++
In this workshop we explored variables, data types, functions, for loops, arrays and vectors.
A pptx version of the slides can be found here,
or pdf here.
Introduction to C++
In this workshop we explored references, pointers, passing vectors and arrays into functions. The slides can be found here, or pdf here.
Below is an example script that creates an vector of thetas, computes sin(2*theta), and saves the data in a numpy format.
#include <iostream>
#include <cmath>
#include <vector>
#include <fstream> // : Stream class to both read and write from/to files.
using namespace std;
int main()
{ int k;
cout << "Input n_vals:";
cin >> k;
vector <double> thetas(k);
vector <double> ans;
for (int i = 0; i < k; ++i)
{
thetas.at(i) = i * (1./(k-1)) * M_PI;
}
for (int i = 0; i < k; ++i)
{
ans.push_back(sin(2. * thetas.at(i)));
}
ofstream myfile;
myfile.open ("data.py");
myfile << "import numpy as np" << "\n" << "\n";
myfile << "theta = np.array((" << "\n";
for (double j: thetas){
if (j != thetas.back()){
myfile << j << ", " << "\n";
}
else{
myfile << j << "\n";
}
}
myfile << "))"<< "\n" << "\n";
myfile << "ans = np.array((" << "\n";
for (double j: ans){
if (j != ans.back()){
myfile << j << ", " << "\n";
}
else{
myfile << j << "\n";}
}
myfile << "))" << "\n";
myfile.close();
return 0;
}
You can then plot this using:
import matplotlib.pyplot as plt
from data import *
plt.figure()
plt.plot(theta, ans)
plt.show()
np.save('data.npy', theta)
This is bold and this is strong. This is italic and this is emphasized.
This is superscript text and this is subscript text.
This is underlined and this is code: for (;;) { ... }. Finally, this is a link.
Heading Level 2
Heading Level 3
Heading Level 4
Heading Level 5
Heading Level 6
Blockquote
Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan faucibus. Vestibulum ante ipsum primis in faucibus lorem ipsum dolor sit amet nullam adipiscing eu felis.
Preformatted
i = 0;
while (!deck.isInOrder()) {
print 'Iteration ' + i;
deck.shuffle();
i++;
}
print 'It took ' + i + ' iterations to sort the deck.';