What is CodeIgor?
CodeIgor is a simple (yet quite powerful), free (GPLv3) Python script, which makes copies of given files, substituting user-defined patterns for given values. Every copy is related to a scpecific 'solution', so that you may define 'solutions' having the same patterns but with different values. This allows you to serialize the same code for a different set of parameters, with each of them put in a specific subdirectory ('solution').
Intended audience: scientists with the need to write the same code (for simulations) with a set of many different values for specific parameter (see example below).
Hey, if you find my script useful for any other purposes, let me know!
Current version: 1.03 (2010-06-24)
A (very) simple example
A simple example would be preparing the same simulation code (for example the Ising model) for ten different temperatures, ready to compile and run parallelly on a computer cluster. You only need to write your code once, and from this directory structure:
./ising/
main.cpp
functions.h
functions.cpp
Makefile
CodeIgor can produce many copies - each one with different set of parameters for every file:
./output_dir/
compile.sh
temperature0.2/
main.cpp
functions.h
functions.cpp
Makefile
temperature0.4/
main.cpp
functions.h
functions.cpp
Makefile
temperature0.6/
main.cpp
functions.h
functions.cpp
Makefile
(and so on)
There are also many useful features, like regular expressions or summary file generation. See other sections for better explanations and more ideas.