Heat is a program for UNIX I have written for my thesis in Astrophysics.
The purpose of the program is to integrate the diffusion equation to simulate heat conduction in a one-dimensional body. It is fully customizable thanks to the Guile interface, which allows the user to write "plug-ins" in Scheme to extend the features of the program.
If you are doing research on heat conduction, this program won't probably suit your needs. But I think it could be a good example if you are trying to write a numerical integrator for partial differential equations. The program uses some fairly sophisticated techniques, such as a stack machine, a parser which translate a subset of the Mathematica language into pseudo-assembly code and a tiny interface to Guile.
A brief introduction to the numerical methods used in the program is being written in my thesis. When the text will be completed, I shall make it downloadable from this page.
This is a text script that is to be interpreted by Heat.
# End time for the simulation (seconds) end_time = 300.0; # Heat conductivity conductivity = 0.8e-3; # Diffusivity constant diffusivity := 0.5 (Sign[x - 0.5] + 1) Sqrt[1.0e-3] + 0.5 (Sign[0.5 - x] + 1) Sqrt[1.0e-2]; mass_length = 1.0; delta_time = 0.1; output_delta_time = 30 delta_time; grid_points = 20; # This is the initial temperature (a constant) initial_condition = 4.0; # These are the plot limits min_plot_temperature = initial_condition - 1.5; max_plot_temperature = initial_condition + 1.5; # This is the heat power provided by the radiometer heat_source = 1.0e-3; # This is the HFI temperature boundary_temperature = 4;
This is a sample plot generated by the program using the -f png option to render the image in a PNG file. On the X axis there is the position (in centimeters, from 0 to 1). On the Y axis there is the temperature (in Kelvin).
![]() |
Download the program by selecting one of the following links:
To download the tarball from an UNIX terminal, you can also write:
$ wget "http://www.oocities.org/zio_tom78/downloads/heat-0.2.tar.gz"
To install it, write:
$ tar xvfz heat-0.2.tar.gz $ cd heat-0.2 $ ./configure $ make $ su -c "make install" Password: ******
This will install the program and the documentation (in Info format). To create a Postscript copy of the manual, simply write:
$ cd heat-0.2/doc $ texi2dvi heat.texi $ dvips -o heat.ps heat.dvi