#!/usr/bin/perl
#
# Make a nice graph showing efficiency as a function of redshift
#   for each of the 3 fields.
#
# MWR 3/4/2007

$debug = 1;

$title = "Ideal harmonic oscillator with k = 30 N/m, m = 20 kg ";
$cmdfile = "./ideal_plot.gnu";
$psfile = "./ideal_plot.ps";
open(CMDFILE, ">$cmdfile") || die("can't open $cmdfile");
printf CMDFILE "set output '$psfile' \n ";
printf CMDFILE "set term postscript color \n";
printf CMDFILE "set grid \n";
printf CMDFILE "set key top right \n";
printf CMDFILE "set xlabel 'time (seconds)'  \n";
printf CMDFILE "set ylabel '' \n";
printf CMDFILE "set title '$title'  \n";
printf CMDFILE "plot [0:100][-1.2:1.2] ";
printf CMDFILE "  'ideal_data.out' using (\$2):(\$4) ";
printf CMDFILE "            t '' with linespoints pt 3 ps 0.5 ";
printf CMDFILE " \n";
printf CMDFILE "quit \n";
close(CMDFILE);

$cmd = "gnuplot $cmdfile ";
printf "cmd is ..$cmd.. \n";
$ret = `$cmd`;
$giffile = $psfile;
$giffile =~ s/.ps/.gif/;
$cmd = "convert -rotate 90 $psfile $giffile";
printf "cmd is ..$cmd.. \n";
$ret = `$cmd`;



#########################################################################

$title = "Damped harmonic oscillator with k = 30 N/m, m = 20 kg, b = 0.3 N*s/m ";
$cmdfile = "./damped_a_plot.gnu";
$psfile = "./damped_a_plot.ps";
open(CMDFILE, ">$cmdfile") || die("can't open $cmdfile");
printf CMDFILE "set output '$psfile' \n ";
printf CMDFILE "set term postscript color \n";
printf CMDFILE "set grid \n";
printf CMDFILE "set key top right \n";
printf CMDFILE "set xlabel 'time (seconds)'  \n";
printf CMDFILE "set ylabel '' \n";
printf CMDFILE "set title '$title'  \n";
printf CMDFILE "plot [0:100][-1.2:1.2] ";
printf CMDFILE "  'damped_a_data.out' using (\$2):(\$4) ";
printf CMDFILE "            t '' with linespoints pt 3 ps 0.5 ";
printf CMDFILE " \n";
printf CMDFILE "quit \n";
close(CMDFILE);

$cmd = "gnuplot $cmdfile ";
printf "cmd is ..$cmd.. \n";
$ret = `$cmd`;
$giffile = $psfile;
$giffile =~ s/.ps/.gif/;
$cmd = "convert -rotate 90 $psfile $giffile";
printf "cmd is ..$cmd.. \n";
$ret = `$cmd`;




#########################################################################

$title = "Damped harmonic oscillator with k = 30 N/m, m = 20 kg, b = 0.9 N*s/m ";
$cmdfile = "./damped_b_plot.gnu";
$psfile = "./damped_b_plot.ps";
open(CMDFILE, ">$cmdfile") || die("can't open $cmdfile");
printf CMDFILE "set output '$psfile' \n ";
printf CMDFILE "set term postscript color \n";
printf CMDFILE "set grid \n";
printf CMDFILE "set key top right \n";
printf CMDFILE "set xlabel 'time (seconds)'  \n";
printf CMDFILE "set ylabel '' \n";
printf CMDFILE "set title '$title'  \n";
printf CMDFILE "plot [0:100][-1.2:1.2] ";
printf CMDFILE "  'damped_b_data.out' using (\$2):(\$4) ";
printf CMDFILE "            t '' with linespoints pt 3 ps 0.5 ";
printf CMDFILE " \n";
printf CMDFILE "quit \n";
close(CMDFILE);

$cmd = "gnuplot $cmdfile ";
printf "cmd is ..$cmd.. \n";
$ret = `$cmd`;
$giffile = $psfile;
$giffile =~ s/.ps/.gif/;
$cmd = "convert -rotate 90 $psfile $giffile";
printf "cmd is ..$cmd.. \n";
$ret = `$cmd`;



#########################################################################

$title = "Damped harmonic oscillator with k = 30 N/m, m = 20 kg, b = 2.9 N*s/m ";
$cmdfile = "./damped_c_plot.gnu";
$psfile = "./damped_c_plot.ps";
open(CMDFILE, ">$cmdfile") || die("can't open $cmdfile");
printf CMDFILE "set output '$psfile' \n ";
printf CMDFILE "set term postscript color \n";
printf CMDFILE "set grid \n";
printf CMDFILE "set key top right \n";
printf CMDFILE "set xlabel 'time (seconds)'  \n";
printf CMDFILE "set ylabel '' \n";
printf CMDFILE "set title '$title'  \n";
printf CMDFILE "plot [0:100][-1.2:1.2] ";
printf CMDFILE "  'damped_c_data.out' using (\$2):(\$4) ";
printf CMDFILE "            t '' with linespoints pt 3 ps 0.5 ";
printf CMDFILE " \n";
printf CMDFILE "quit \n";
close(CMDFILE);

$cmd = "gnuplot $cmdfile ";
printf "cmd is ..$cmd.. \n";
$ret = `$cmd`;
$giffile = $psfile;
$giffile =~ s/.ps/.gif/;
$cmd = "convert -rotate 90 $psfile $giffile";
printf "cmd is ..$cmd.. \n";
$ret = `$cmd`;


#########################################################################

$title = "Damped harmonic oscillator with k = 30 N/m, m = 20 kg, b = 15 N*s/m ";
$cmdfile = "./damped_d_plot.gnu";
$psfile = "./damped_d_plot.ps";
open(CMDFILE, ">$cmdfile") || die("can't open $cmdfile");
printf CMDFILE "set output '$psfile' \n ";
printf CMDFILE "set term postscript color \n";
printf CMDFILE "set grid \n";
printf CMDFILE "set key top right \n";
printf CMDFILE "set xlabel 'time (seconds)'  \n";
printf CMDFILE "set ylabel '' \n";
printf CMDFILE "set title '$title'  \n";
printf CMDFILE "plot [0:100][-1.2:1.2] ";
printf CMDFILE "  'damped_d_data.out' using (\$2):(\$4) ";
printf CMDFILE "            t '' with linespoints pt 3 ps 0.5 ";
printf CMDFILE " \n";
printf CMDFILE "quit \n";
close(CMDFILE);

$cmd = "gnuplot $cmdfile ";
printf "cmd is ..$cmd.. \n";
$ret = `$cmd`;
$giffile = $psfile;
$giffile =~ s/.ps/.gif/;
$cmd = "convert -rotate 90 $psfile $giffile";
printf "cmd is ..$cmd.. \n";
$ret = `$cmd`;


#########################################################################

$title = "Overdamped harmonic oscillator with k = 30 N/m, m = 20 kg, b = 70 N*s/m ";
$cmdfile = "./damped_e_plot.gnu";
$psfile = "./damped_e_plot.ps";
open(CMDFILE, ">$cmdfile") || die("can't open $cmdfile");
printf CMDFILE "set output '$psfile' \n ";
printf CMDFILE "set term postscript color \n";
printf CMDFILE "set grid \n";
printf CMDFILE "set key top right \n";
printf CMDFILE "set xlabel 'time (seconds)'  \n";
printf CMDFILE "set ylabel '' \n";
printf CMDFILE "set title '$title'  \n";
printf CMDFILE "plot [0:100][-1.2:1.2] ";
printf CMDFILE "  'damped_e_data.out' using (\$2):(\$4) ";
printf CMDFILE "            t '' with linespoints pt 3 ps 0.5 ";
printf CMDFILE " \n";
printf CMDFILE "quit \n";
close(CMDFILE);

$cmd = "gnuplot $cmdfile ";
printf "cmd is ..$cmd.. \n";
$ret = `$cmd`;
$giffile = $psfile;
$giffile =~ s/.ps/.gif/;
$cmd = "convert -rotate 90 $psfile $giffile";
printf "cmd is ..$cmd.. \n";
$ret = `$cmd`;



#########################################################################

$title = "Critically-damped harmonic oscillator with k = 30 N/m, m = 20 kg, b = 50 N*s/m ";
$cmdfile = "./damped_f_plot.gnu";
$psfile = "./damped_f_plot.ps";
open(CMDFILE, ">$cmdfile") || die("can't open $cmdfile");
printf CMDFILE "set output '$psfile' \n ";
printf CMDFILE "set term postscript color \n";
printf CMDFILE "set grid \n";
printf CMDFILE "set key top right \n";
printf CMDFILE "set xlabel 'time (seconds)'  \n";
printf CMDFILE "set ylabel '' \n";
printf CMDFILE "set title '$title'  \n";
printf CMDFILE "plot [0:100][-1.2:1.2] ";
printf CMDFILE "  'damped_f_data.out' using (\$2):(\$4) ";
printf CMDFILE "            t '' with linespoints pt 3 ps 0.5 ";
printf CMDFILE " \n";
printf CMDFILE "quit \n";
close(CMDFILE);

$cmd = "gnuplot $cmdfile ";
printf "cmd is ..$cmd.. \n";
$ret = `$cmd`;
$giffile = $psfile;
$giffile =~ s/.ps/.gif/;
$cmd = "convert -rotate 90 $psfile $giffile";
printf "cmd is ..$cmd.. \n";
$ret = `$cmd`;



#########################################################################

$title = "Comparison of damped harmonic oscillators with k = 30 N/m, m = 20 kg ";
$cmdfile = "./damped_g_plot.gnu";
$psfile = "./damped_g_plot.ps";
open(CMDFILE, ">$cmdfile") || die("can't open $cmdfile");
printf CMDFILE "set output '$psfile' \n ";
printf CMDFILE "set term postscript color \n";
printf CMDFILE "set grid \n";
printf CMDFILE "set key top right \n";
printf CMDFILE "set xlabel 'time (seconds)'  \n";
printf CMDFILE "set ylabel '' \n";
printf CMDFILE "set title '$title'  \n";
printf CMDFILE "plot [0:10][-0.6:1.2] ";
printf CMDFILE "  'damped_d_data.out' using (\$2):(\$4) ";
printf CMDFILE "            t 'underdamped: b=15 N*s/m' with linespoints pt 3 ps 0.5 ";
printf CMDFILE " ,";
printf CMDFILE "  'damped_f_data.out' using (\$2):(\$4) ";
printf CMDFILE "            t 'critically damped: b=50 N*s/m' with linespoints pt 3 ps 0.5 ";
printf CMDFILE " ,";
printf CMDFILE "  'damped_e_data.out' using (\$2):(\$4) ";
printf CMDFILE "            t 'overdamped: b=70 N*s/m' with linespoints pt 3 ps 0.5 ";
printf CMDFILE " \n";
printf CMDFILE "quit \n";
close(CMDFILE);

$cmd = "gnuplot $cmdfile ";
printf "cmd is ..$cmd.. \n";
$ret = `$cmd`;
$giffile = $psfile;
$giffile =~ s/.ps/.gif/;
$cmd = "convert -rotate 90 $psfile $giffile";
printf "cmd is ..$cmd.. \n";
$ret = `$cmd`;










exit 0;


##############################################################################
# PROCEDURE: exec_cmd
#
# DESCRIPTION: Execute the given shell command line.  If the $debug flag
#              is set, we print to stdout the command line, and
#              also print out the result string.
#
# RETURNS:
#              the result of the command
#
#
sub exec_cmd {

  my($cmd, $ret);

  $cmd = $_[0];

  if ($debug > 0) {
    printf "cmd is ..$cmd.. \n";
  }
  $ret = `$cmd`;
  if ($debug > 0) {
    printf "ret is ..$ret.. \n";
  }

  return($ret);
}


