
part-nd

An arbitrary-dimensional particle simulator
Mark J Stock <mstock@umich.edu>

http://markjstock.org/part-nd/


I. Building the software --------------------------------------------------

The Windows binaries are prebuilt and should run on most Windows
computers. E-mail me if, for some reason, they do not. I use MinGW
to compile the Windows versions.

Compiled Linux binaries are included, too. If those don't work on
your Unix-like system, building the program should be easy. I hope
it is easy. If you have problems, *please* e-mail me. I almost always
help. Plus, if you tell me where you are having difficulty, I will be
able to improve the code and documentation for all future users.

In the directory that this file is in, just type

make

and binary executables for 1D to 4D will be made.


II. Usage -----------------------------------------------------------------

Edit a sample*.pnd file, making sure to match all coordinate input with
the number of dimensions in the problem.

Unix users can then run the desired program as shown:

part-3d sample_part-3d.pnd
part-3d < sample_part-3d.pnd

grav-2d sample_grav-2d.pnd
grav-2d < sample_grav-2d.pnd

Windows users have several options. You can drag the .pnd file onto the
appropriate .exe file, whereupon the output files will either appear in
the current working directory, or your home directory (which in my
case was C:\Documents and Settings\mstock).

You can also run "cmd" to enter the DOS-like command prompt. From there,
you can run

part-3d.exe sample_part-3d.pnd

Lastly, you can download and install MSYS, a Unix-like environment,
and run the program from within MSYS using

part-3d.exe sample_part-3d.pnd
part-3d.exe < sample_part-3d.pnd

If your .pnd file is set up to read in another file, you need to make
sure that the other file is in either (or both) your current working
directory or your home directory. As a windows novice, this confused me.


III. Advanced use ---------------------------------------------------------

Feel free to monkey with the code. If you look in the Makefile, and the 
first part of structs.h, you'll quickly see how to make executables that
can track ANY number of dimensions. So, if you want to run a 27-dimensional
pool table, all you need is a large-enough computer.


IV. Conclusion ------------------------------------------------------------

Thanks for taking the time to check this out. If you are having fun, I'd 
love to hear from you.

Mark
mstock@umich.edu
2005-09-14
2011-06-07


Appendix A --- Change Log -------------------------------------------------

v1.5	Output window is fixed-size, initial velocities for "sphere" are 
	better, OpenMP directives for multithreading added (65% efficient)

v1.4	Windows and Linux executables included

v1.3	added libpng support, removed GIF support and related system calls
	added bit depth parameter to output file
	merged image_size and density pixel sizes---all output images use
		image_size now
	fixed bounds on sim-> construction variables
	fixed moving_particle problem in replace_all_particles()
	allowed input file to enter via stdin (to help Windows users)

v1.2	upgraded part3d to part-nd
	upgraded all forces except for strand forces to arbitrary dimensions
	fixed particle-box gravitational force, now more accurate
	many other minor improvements

Appendix B --- Gnu General Public License ------------------------------

    This program is 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 should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

