Trajecstory FAQ

The purpose of computing is insight, not numbers.
– From Richard Hammings’ book “The Art of Doing Science and Engineering – Learning to Learn”

This is the FAQ. The download page for the source code and Linux binaries is here.

What does the program do?

While a student, many years ago, I was always mystified while trying to visualize the path an electron would take when it moved under the combined influence of electric and magnetic fields. The simple trajectories (circle, helix, cycloid) were fine, but what about when the fields and initial conditions were not so simple?

The purpose of Trajecstory is to let the user see, in three-dimensions, how an electron would move in fields which, while time-independent, are varying in space, when it is initialized with arbitrary momentum.

How do I use it?

The geometry is cartesian in three-dimensions.

A 10cm x 10cm x 10cm box is shown on the screen. The electron is placed in the box (or outside it) by specifying its x, y, and z coordinates.

Its initial momentum is specified by the components along the three axes.

The electric field is also specified by its components, along with its variation along the axes as well.

The magnetic field is similarly specified, along with the variation of only its x-component along one direction, which can be either x, or y, or z.

Specify how much time you want the electron to move. Click “Replot” and the trajectory is plotted.

Sample trajectories

Here are a some screenshots to give you a flavor of the program.


There are a few more examples in the user guide included with the source and binary packages.

What do I need to compile it?

See the user guide for more details. You will need the GNU C/C++ compiler and associated development tools and libraries, the GNU Scientific Library and the Qt software development kit and libraries that are available with all Linux distributions. These are described in the documentation.

But I don’t want to compile it. Why can’t you just provide a pre-compiled binary?

Well, it’s better to compile it on your machine, because then you are sure that it is optimized for your Linux installation. Besides, you can also check and modify the source if you wish.

However a pre-compiled 64-bit is available on the download page. To run this, the Qt run-time libraries are required, which should already be available on your installation.

Are there any bugs?

If you don’t see any at first, something will surface eventually. Did you really have to ask?

What is the copying policy?

While it is copyright, (c) Kartik Patel the program is also free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by  the Free Software Foundation; either version 2 of the License, or (at your option) any later version.  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You will receive a copy of the GNU General Public License along with this program; for more information, write to:

The Free Software Foundation, Inc.,

675 Mass Ave,


MA 02139, USA.

I will add more content to this page as and when time permits. Please drop a line via e-mail if you need any clarifications or find any bugs.

Last modified: 27 June 2017

Copyright (c) Kartik Patel, letapk AT gmail DOT com