Your Computer Class Project will involve writing or modifying a computer code dealing with some aspect of physics using any of one the following areas in computational physics: matrix solution of a set of linear equations (say with Gaussian elimination), solution of a set of ordinary differential equations (using either the 4th-order Runge-Kutta technique or the Adams method), solution of a partial differential equation (with the dependent variable being a function of at least two independent variables, e.,g., solution to Schrodinger's equation), or fitting a set of data to a linear relation using the method of least squares. Note that if you have some other type of calculation that you wish to perform for this project, ask me for approval before writing your proposal. Note that this proposal will be your second homework assignment -- you will get a separate assignment sheet with the details of how this proposal should be structured.
You are free to use any of the following programming languages: IDL, Fortran, Python (either version 2.7 or 3), or C. You are also allowed to use C++ if you like, but note that I will not be able to help you if you have troubles getting your program to work. Also note that you are not allowed to use programming languages like Mathematica, Maple, or MatLab. You are allowed to use any math functions the programming language supplies (either internally or in a library). Note that I will supply Runge-Kutta and Adams method subroutines (written in Fortran 77) on this project web page to solve systems of ordinary differential equations. Typically when doing such a computer research project, the amount of time needed to complete a given aspect of the project is: 50% for code development, 20% for debugging the code, 20% to analyze the results, and 10% to write the manuscript.
You will then analyze and present your results. The analysis should be done via software you write (in some sort of graphics software like IDL). Besides writing an 8 to 10 page manuscript on the results of this work, you also will be required to write a proposal to do this work for the second homework assignment. In this proposal, you need to state what problem you are taking on, how you will approach the solution, the operating system and machine type you plan on using, the programming language you plan to use, and what questions you plan on answering with this project.
Those of you taking this course for honors or graduate credit must carry out the additional material in the project descriptions, or propose to do a project that is at a graduate level (and I will decide what is graduate level). Also, your research paper will need to be 10 to 15 ages in length.
Topic | Area of Physics | Suggested Method of Solution |
---|---|---|
Project Instructions Document | --- | --- |
Data Fitting to Hubble's Law | Data Analysis | Linear Least Squares |
Quasi-Static Solar Coronal Loop Modeling |     Thermodynamics     | Adams Method |
Polytrope Modeling of Stellar Interiors | Thermodynamics |     4th-Order Runge-Kutta    |
Coupled Harmonic Oscillators | Mechanics | Gaussian Elimination |
Trajectories with Air Friction |
Mechanics | 4th-Order Runge-Kutta |
    Quantum Mechanical Harmonic Oscillator     | Quantum | PDE Solution |
Quantum Mechanical Scattering | Quantum | PDE Solution |
Codes should be able output data into ASCII files which can be examined by your professor and used for your analysis. The best way to display the results of your code is through a graphical plots. You will need to do this both to the terminal (i.e., screen) and to a hardcopy plot such as an encapsulated postscript file (which you can then include in your final manuscript). Besides turning in the final report, you will also be required to turn in at least one of these output files and a listing of the code itself by emailing me these items at my ETSU email address. When writing your final manuscripts, you must use the LaTeX markup language.
IMPORTANT NOTE: Due to OIT's paranoia about security issues, files ending
in either ".dat" (standard Unix data files) and ".pro" (IDL procedure and
function files) will not show up on a web browser even though those these
files exist on the web server disk. To counteract this, I have changed the
name of all ".dat" files to ".txt" files and renamed all of the IDL procedures
for you to download to ".txt" file names. Note that after you download
a given IDL procedure or function file from this web site to your IDL
working directory on your PC, immediately rename it to its ".pro" name as
shown on web page link. For instance, when you click on "sampleplot.pro",
this will save this file to your IDL working directory as "sampleplot.txt".
Once on your home machine, rename it to "sampleplot.pro" from a terminal window
or directory GUI interface.
Also note that some web browsers will just display a text (ASCII) file
in the browser itself, instead of downloading it. In those cases, just open
up an empty file with text editting software (like emacs or Notepad)
and clip an paste the text from the browser to your file. Then save it to a
filename by the same name as indicated on the web page.
A sample LaTeX file (template.tex) can be downloaded and used as a template for your project's manuscript. This LaTeX file requires the temptex.eps figure file which can be downloaded too. The template.pdf file contain the compiled version of this LaTeX file. Download the following files to a subdirectory where you wish to carry out this project (i.e. the so-called working directory). Click on each of the files listed.
    template.tex     |     template.pdf     |     temptex.eps     |
The files below are needed to assist you in carrying out the Data Fitting to Hubble's Law project. There are links that contain spectra of a set of galaxies (in ASCII format with files ending in ".txt"), a bare-bones IDL procedure that you can use as a starting point, some supplemental IDL procedures, the spectral data files, and a reference paper concerning the spectra contained in the data files. For this project, you will be determining Hubble's Constant, Ho, which is used in Hubble's Law:
where d is the distance measured in parsecs and p is the parallax angle measured in arcseconds (though you will not need this parallax equation for this project).
    1995ApJS_97_331M.pdf    | McQuade, Calzetti, & Kinney 1995, ApJS, 97, 331 |
hstmiras2000.pdf |     One of my papers as an example in writing scientific papers    |
sampleplot.pro | IDL procedure to generate plots |
hubble.pro | Template IDL procedure for this project |
galflscale.pro | Determine the flux scale factor for plots |
spectype.pro | IDL/GUI procedure to enter spectrum type |
decideopt.pro | IDL/GUI procedure used when a Gaussian fit is bad |
rdgaldist.pro | IDL procedure to read galdist.dat data file |
rdgalspec.pro | IDL procedure to read the galaxy spectrum files |
selectgal.pro | Allows user to preselect spectra to be reduced |
    galdist.txt    |     Galaxy distances data file     |
    ngc224.txt    |     ngc224 spectrum file |
    ngc262.txt |     ngc262 spectrum file |
    ngc598.txt |     ngc598 spectrum file |
    ngc1023.txt |     ngc1023 spectrum file |
    ngc1068.txt |     ngc1068 spectrum file |
    ngc1569.txt |     ngc1569 spectrum file |
    ngc1614.txt |     ngc1614 spectrum file |
    ngc1667.txt |     ngc1667 spectrum file |
    ngc2403.txt    |     ngc2403 spectrum file |
    ngc3031.txt |     ngc3031 spectrum file |
    ngc3077.txt |     ngc3077 spectrum file |
    ngc4194.txt |     ngc4194 spectrum file |
    ngc4853.txt |     ngc4853 spectrum file |
    ngc4861.txt |     ngc4861 spectrum file |
    ngc5728.txt |     ngc5728 spectrum file |
    ngc5860.txt |     ngc5860 spectrum file |
    ngc5996.txt |     ngc5996 spectrum file |
    ngc6052.txt |     ngc6052 spectrum file |
    ngc6090.txt |     ngc6090 spectrum file |
    ngc6217.txt |     ngc6217 spectrum file |
    ngc6764.txt |     ngc6764 spectrum file |
    ngc7250.txt |     ngc7250 spectrum file |
    ngc7673.txt |     ngc7673 spectrum file |
    ngc7714.txt |     ngc7714 spectrum file |
    ugca410.txt |     ugca410 spectrum file |
    ugc9560.txt |     ugc9560 spectrum file |
    mrk66.txt |     mrk66 spectrum file |
    mrk309.txt |     mrk309 spectrum file |
    mrk357.txt |     mrk357 spectrum file |
    mrk477.txt |     mrk477 spectrum file |
    mrk499.txt |     mrk499 spectrum file |
    mrk542.txt |     mrk542 spectrum file |
    ic214.txt |     ic214 spectrum file |
    ic1586.txt |     ic1586 spectrum file |
The NASA SkyLab mission had a solar telescope on board that took many high-resolution images of the Sun at X-ray wavelengths. One of the most important findings of SkyLab was that the solar corona is composed of numerous magnetic loop-like structures that can last from days to weeks in a relatively static state. As such, these structures have been come to known as quasi-static solar coronal loops (SCL). The following are research papers published and unpublished about the physics of carrying out numerical modeling of solar coronal loops.
Raymond, et al. (1976) | Radiative Cooling of Low-Density Plasma |
Rosner, et al. (1978) | Dynamics of the Quiescent Solar Corona |
Vesecky, et al. (1979) | Numerical Modeling of Quasi-Static Coronal Loops. I. Uniform Energy Input |
Aschwanden & Schrijver (2002) | Analytical Approximations to Hydrostatic Solutions and Scaling Laws of Coronal Loops |
Luttermoser (1981) | Modeling Quasi-Static Solar Coronal Loops with Nonuniform Energy Input |
The following are useful Fortran 77 files for modeling solar coronal loops. Feel free to make use of any of these for your project.
rk4.f | Fortran 77 subroutines using the 4th-order Runge-Kutta technique for ODEs. |
ode.f | Fortran 77 subroutines using the Adams method for ODEs.
Note that this file also contains the DE, STEP, and INTRP subroutines. |
de.f | Fortran 77 subroutine of Adams method for ODEs. |
intrp.f | Fortran 77 subroutine called by de.f. |
step.f | Fortran 77 subroutine called by de.f. |
machin.f | Fortran 77 program to calculate data for ode.f and de.f. |
f.f | Sample Fortran 77 subroutine containing the
differential equations that ode.f and de.f are asked to solve. |
This web page contains the links of the various IDL procedure files that students in PHYS-4007/5007 will need to help them carry out their course project. The files here are in standard ASCII (text) format so that when you click on the link, the code will appear in your web browser. Once the code appears on the web browser, highlight all the lines of code, then copy and paste them into an ASCII editor (either Notepad, Emacs, or the IDL GUI editor). Once pasted, save this file as indicated by the PROCEDURE name (e.g., polytrope.pro).
polytrope.pro | IDL procedure to model polytropes |
printout.pro | IDL procedure to generate polytrope output files |
rdpolymodel.pro | IDL procedure to read polytrope output files |
rk4coeff.pro | IDL procedure to calculate coefficients for 4th-order Runge-Kutta integration |
rk4coeff.pro | IDL procedure to carry out a 4th-order Runge-Kutta integration |
The remaining suggested projects listed above do not have helpful code files that I have written for student use. Should a student choose one of these project topics, they will have to develope thyat coding from scratch. Good luck with your modeling!