Back to the main page.


Heat

Index

Introduction to the Program

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.

Example

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).

Temperature plot made with heat

Download

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

Back to the main page.

This page is best viewed with any browser