My Project at a Glance
This page contains a basic outline of my project. If you want a bit more information after reading this page, please see A More Detailed Look at My Project.
The Maths of My Project
A field can be represented mathematically by writing the potential associated with the field as a differential equation. The equations relevant to my project are non-linear partial differential equations (PDEs). As their name suggests, these are equations relating to functions of variables and their partial derivatives, involving non-linear terms. Oscillons within a field can then be detected by solving the PDE of the potential, whilst varying the initial conditions of the model. Some initial conditions will yield an Oscillon, while some may not. Non-linear PDEs are notoriously hard to solve as there is no general technique that works for all equations and so only similar equations can be studied together.
The aim of my research project 2009 was to create a program that solves certain non-linear partial differential equations, in order to find Oscillons within certain potentials.
I initially wrote a basic program using Matlab that solved an equation representing a harmonic oscillation within a simple potential. I then expanded this programme to solve for an oscillation within two interacting potentials. This is a system of a similar complexity to the type in which an Oscillon may occur. Data produced in this program was then fed into another program that I created, to plot details such as amplitude of oscillation against time and energy against time. In varying the initial conditions of the system and studying the graphs produced, I could decide if an Oscillon was present. An Oscillon is seen by the total energy of the system remaining almost constant with time.
When I was satisfied that my program in Matlab was working correctly and outputting the right data, I translated the Matlab script into C code. The new program in C is more efficient than the one written in Matlab, as Matlab script is a lower level language than C code. This means that it is further away from machine code and the computer on which the program is being run has to use more computational power translating the program to machine code. Being more efficient makes the program run faster, which is useful if a long simulation is needed.
In order to make my program even more efficient, I devised a method in which the last values outputted by the program are saved, to be loaded as the initial conditions in a new run. This means that rather than having to run the program for a prolonged length of time (running the risk of a computer crash resulting in a loss of data), the program can be run in short bursts when new data is needed.
Finally, to make the outputted data more accessible to non-professional observers, I wrote a Matlab script that loads the data calculated by the C program relating to an Oscillon, to be rendered as a 3D simulation of the new Oscillon.