I am interested in determining the tendency for a number of impurity elements to concentrate in specific microscopic areas within iron. Pronounced local concentrations of impurities create non-homogeneity, thus strongly affecting the behaviour of iron at macroscopic level, particularly when iron is subjected to loading and/or heating. I approach this problem by employing numerical techniques to solve Schrödinger's equations.
Status: project was commenced on January 2016; preliminary results were presented at an international conference in San Diego, March 2017.
This project is a collaboration between The University of British Columbia and Tsinghua University. My role was to propose a research topic and to aid a master student who would be working on the project.
Status: project was commenced on March 2016; results were presented at an international conference in San Diego, March 2017.
This is a capstone project for a specialization on Advanced Algorithms and Complexity that I'm currently finishing. I borrow the exploding newspapers analogy from Compeau and Pevzner to talk about the problem.
Consider a stack of identical newspapers that explode, leaving thousands pieces of paper that contain few full sentences and some partial words. The problem asks if we can return the original newspaper using these pieces.
This analogy is an exaggeration of genome assembly problem. In this case, its piece of paper is a read, a string that contains tens or hundreds of letters of A, T, C and G. There are many of these reads. Upon applying a series of algorithms to these reads, including finding a Eulerian cycle and constructing de Bruijn graph, the original genome can be constructed. Identifying a genome is an important problem in modern biology.
Status: commenced in March 2017, working on de Bruijn graph of the reads
The code was originally written for my former doctoral advisor. The initial purpose is to simulate formation of small clusters of solute atoms in aluminum alloys. Up to 9 type (elements) of solute atoms can be simulated, thus making it a 10-component system. The code is capable of considering an interaction energy between two elements that extends to fifth nearest neighbour distance (~1.6× lattice parameter).
The code has been tested and validated for a system of 8 million atoms. The code can be cloned or forked (if interested in collaboration) from this repository. To build the code, a C++11 compiler is required.
An example of input file to run the simulation can be found in /input/ subdirectory of the repository. If there is an additional feature that you want to request, you can contact me via the contact page of this site.
The capstone aims to give avenue to implement several concepts in Java, including polymorphism and interfaces, into an integrated project. The codes written for this capstone is kept in this repository.
LAMMPS is an open-source collaborative code to simulate motion of atoms, that is distributed and maintained by Sandia Laboratory. LAMMPS is widely used by different scientific communities, including materials science, structural biology, biochemistry, civil engineering, and solid-state physics.
I contribute a feature which helps identifying a given atom based on the structure of its neighbours. This feature is documented here and the source code is maintained in a github repository. I have a publication based on a work that implements this feature along with a tutorial note that explains the feature in great detail.
A good analogy for ferroelectric materials is magnets (or, specifically, ferromagnetic materials). Magnetic materials are essential for devices that store data, due to their ability to switch between magnetic and non-magnetic state (resembling an on/off switch). Similarly, ferroelectric materials exhibit a state switching that can be used to store data.
Recent development in data storage technology requires the materials that store data to be few atomic layers thick. When there is only such little material to work with, the on/off state can be perturbed easily, e.g. by electric noise. The C++ project aims to simulate the switching behaviour of ferroelectric materials of a given thickness under different types of operational conditions.
While the code is not distributed openly, its underlying assumptions and implementation are described in my master thesis ( PDF).