Hi,(adsbygoogle = window.adsbygoogle || []).push({});

So I'm trying to solve the 2D Ising Model using a simple Monte Carlo algorithm, for small square lattices, imposing periodic boundary conditions. Before I compute any thermodynamic quantities though, I want to study the energetics of the system with only nearest-neighbour interactions.

I want to visualize the system at every iteration of the Monte Carlo loop. The idea is to store the state of the lattice in a matrix, with each site storing the value +1 for spin up, and -1 for spin down.

A computer program I've written in C with a friend generates a data file with the state of the matrix. I then use a pipe to call gnuplot from within this program, to plot the file.

However, I notice that the plot window appears onlyafterthe pipe is closed -- presumably it is then that gnuplot is actually executed the first time, with all the arguments sent through the pipe. This means the plot window does not show up at a specific time of your choice, and in fact shows up at the end of the program.

Now, I want to visualize the matrixat every iteration, so for that, I need to call gnuplot (through thesamepipe pointer) in every iteration, so that the existing plot is updated.How can this be done?

If I just naively include a plot command (through fprintf), then the plot shows up for the first time after some 20 or 30 iterations (depending on the size of the lattice).

Thanks in advance!

**Physics Forums | Science Articles, Homework Help, Discussion**

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

# Using gnuplot through a pipe in C/C++ to generate multiple plots (one each iteration)

**Physics Forums | Science Articles, Homework Help, Discussion**