CHEM 0062 Possible Projects

Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due


CHEM 0062

Possible Projects

Below are suggested projects that you could do. If a particular project interests you we can provide references.

The projects are phrased as if you were trying to calculate one thing. Of course, a user of your code would probably want to use it in different cases, so make sure that it works with other inputs as well.

Project

Category

Details

Your own idea

Any

Tell us about it!

Molecular geometry analysis

Geometry analysis

Take a molecular structure and calculate the position of its centre of mass, its moment of inertia, and its dipole moment. For the dipole moment, you’ll need more than just the structure, so you will have to invent a file format which also contains the partial charge on each atom.

Molecule discriminator

Geometry analysis

Take a series of molecular structures with different sets of conformations for one molecule. Write a program which identifies how many molecules are symmetrically equivalent to each other (by rotation, translation or maybe reflection).

Pair distribution function

Geometry analysis

Take a structure of a large number of atoms in a box (as a researcher may find at the end of a gas simulation). Calculate the pair distribution function (a histogram of the intermolecular distances).

Gas identifier

Geometry analysis

Take a structure of a large number of molecules in a box (as a researcher may find at the end of a gas simulation). Simply from the geometry information, calculate what molecules are in the sample and how many of each there are.

Van der Waals volume calculator

Geometry analysis

Take a molecular structure. Calculate the volume spanned the space enclosed by the van der Waals radii of each atom of the molecule (taking care of overlaps). Expand this to condensed phases (multiple molecular structures tightly packed).

Conformer generator

Geometry generator

Take a molecular structure and generate its conformers based on one or multiple torsional angle values.

Random gas generator

Geometry generator

Gas simulations need to begin with a random distribution of atoms (or molecules). Take a set of dimensions for a simulation box and a number of atoms and randomly distribute them in the box. Note that two atoms can’t start too unphysically close to each other, or the simulation will fail due to too much repulsion.

Crystal structure generator

Geometry generator

Given a primitive unit cell and a space group, generate a full unit cell, and a supercell of arbitrary shape (I x J x K unit cells grouped together)

Polymer generator

Geometry generator

Take the structure of a polymer fragment and a target total length. Generate a polymer of that length. Consider polymers where the fragments experience torsion at each repeated unit.

Mass spectrum analysis

Data analysis

Take some mass spectra data and extract the masses of the fragments being detected. Then, propose some molecular formulas that match those masses.

Gas chromatogram analysis

Data analysis

Take some gas chromatogram data and calculate the area under each peak. Keep in mind that the peaks may overlap with each other, and there will be a background intensity to account for.

Spectrum generator

Data analysis

When simulating UV-vis spectra, we usually are only able to produce the energy and intensity of each peak, thus making a stick spectrum. Take this information and apply common peak shapes to reconstitute more traditional looking spectra.

Peak picking

Data analysis

Take a noisy data set and extract the maxima from it. If it is too noisy, there will be many unimportant maxima, so you will need a criterion to choose where peaks are located more coarsely and how high they are.

Function minimiser

Data analysis

Computational chemistry calculations often rely on finding the minimum of potential energy surfaces. Each energy calculation can take a long time. Create an algorithm find the minimum of a landscape (or function), evaluating the function as few times as possible. The function could be anything but a popular one for initial tests is the Rosenbrock function.

Cholesky decomposition

Difficult

Solving equations involving symmetric square matrices can be computationally expensive. It is much faster with triangular matrices. A Cholesky decomposition expresses a Hermitian positive-definite matrix as a product of two triangular matrices. Make a program that operates this decomposition. You can expand this to non-Hermitian matrix with a very similar “LDL” decomposition.

Gram-Schmidt orthogonalisation

Difficult

Many numerical operations in Chemistry rely on their basis being orthogonal. A Gram-Schmidt orthogonalisation is an algorithm that takes a set of vectors and produces a transformation matrix which turns these vectors into an orthonormal set. Write an implementation of Gram-Schmidt orthogonalisation.

Advice:

Geometry analysis: You will need to use input files containing the geometry information which you are to analyse. Depending on your project, you may find it more useful to begin with Cartesian coordinates, Z-matrices, or any other kind of info, and present it in all sorts of file formats. Take inspiration from the final mini-project for a common file Cartesian coordinate file format. For your output, you may want to print information to a file or to the screen depending on the type of output.

Geometry generator: See above but reversing the inputs and outputs. Instead of printing to screen, you may use command line arguments.

Data analysis: Widespread data storage file formats in science are .csv, and sometimes .jcamp.

Difficult: The Wikipedia pages for this style of algorithm are usually quite a good starting point, but you can sometimes find better explanations in their primary sources.

In all cases, you will need simple inputs to begin your development. Make them up! They don’t need to be realistic (at least initially), just simple enough to allow you to start programming.


发表评论

电子邮件地址不会被公开。 必填项已用*标注