Difference between revisions of "584 Computational Methods"

From gradcomputer
Jump to: navigation, search
(add Henriksen Labview section)
Line 65: Line 65:
  
 
== Erik Henriksen (Mar 30, Apr 6) ==
 
== Erik Henriksen (Mar 30, Apr 6) ==
 +
<strong>LabVIEW</strong> (Laboratory Virtual Instrument Engineering Workbench) is a graphical programming language that uses icons instead of lines of text to create applications. In contrast to text-based programming languages that use instructions to determine the order of program execution, LabVIEW uses dataflow programming. In data flow programming, the flow of data through the nodes on the block diagram determines the execution order of the VIs and functions. VIs, or virtual instruments, are LabVIEW programs that imitate physical instruments.
 +
 +
In LabVIEW, you build a user interface by using a set of tools and objects. The user interface is known as the front panel. After you build the front panel, you add code using graphical representations of functions to control the front panel objects. You add this graphical code, also known as G code or block diagram code, to the block diagram. The block diagram somewhat resembles a flowchart. The block diagram, front panel, and graphical representations of code compose a VI.
 +
 +
Ultimately the VI is used to acquire, display, analyze and save data. VIs interface with real instruments through USB, serial, or GPIB connections and can remotely control a wide range of standard laboratory equipment.
 +
 +
We will undertake the measurement of a simple RC circuit using your own VI, a function generator, and an oscilloscope. The basic approaches to communicating with lab equipment will be discussed in class. To prepare, it is best to become familiar with the Labview environment by diving right in!
 +
 +
 +
<strong>Things to do:</strong>
 +
 +
The Mac computers in Crow 302 have Labview 2014 installed on them. Find time prior to the first class to familiarize yourself with Labview: after launching the program, open Help/Find Examples, then open Fundamentals/Waveforms/Waveforms - XY pairs.vi. Run the program to observe its behavior. Then click Window/Show Block Diagram to explore the underlying program.
 +
 +
Also explore Fundamentals/Loops and Structures/Feedback Node - Building An Array.vi  and /Loop Tunnel Modes.vi. You may wish to open many more examples: there is a wide range of simple VIs illustrating many basic concepts of Labview programming.
 +
 +
Note that right-clicking in a block diagram allows you to add prewritten functions, structures, basic math, &c.
 +
 +
 +
<strong>Assignment:</strong> before class on the 30th, use these basic tools to construct a VI that, when run, displays the sum of a series of sine and cosines whose frequencies and amplitudes are entered in controls on the VI front panel. Keep it simple: at the very least, be able to display either a square wave or a triangle wave composed of an arbitrary number of terms added together (so that we could see a rough square wave approximation with only, say, 5 terms; or a very good approx using 100 terms).
 +
  
* Labview.
 
* Project: controlling a lab device, and reading data from it.
 
  
 
== Kasey Wagoner (Apr 13, 20) ==
 
== Kasey Wagoner (Apr 13, 20) ==

Revision as of 10:54, 23 March 2015

Tentative Syllabus


Mark Alford (Jan 26, Feb 2)

Mathematica for Statistical Mechanics of Fermions

Requirements: Before starting the class, students should

  • Make sure you have easy access to Mathematica. Preferably it should be installed on your own laptop.
    • Physics graduate students: for a free Mathematica license, write to Sai Iyer giving your WUSTL email address and approximate month and year of graduation.
    • Undergraduates (and non-physics grads): buy it for $25.00 from Software Licensing. Send email to WU_SoftwareLicensing@wumail.wustl.edu giving your first and last name, Washington University email address, and how payment will be made (check or credit/debit card). Once payment has been satisfied you will receive a unique activation code.
  • Reproduce all the examples in my Introduction to Mathematica
  • Study (and preferably reproduce) the examples in my Mathematica Techniques
  • Refresh your undergraduate statistical mechanics knowledge. Make sure you understand the following:
    • Pauli exclusion principle
    • Fermi Surface
    • Fermi-Dirac distribution

Project: Students should bring their laptop, with Mathematica installed, to class. The following files should be loaded on the laptop:

  • First project file containing the exercises that will be explained and that students will start solving in the first class.
  • Second project file containing the exercises that will be explained and that students will start solving in the second class.

Wim Dickhoff (Feb 9, 16)

  • Project: diagonalization of quantum mechanical potentials.

The Schroedinger equation of Quantum Mechanics can in some cases be solved analytically for discrete eigenvalues and corresponding wave functions. This is true for potentials with spherical symmetry like the Coulomb or 3-D Harmonic Oscillator. We will extend the solution for discrete eigenvalues for bound states of potentials that do not allow an analytical solution.

Francesc Ferrer (Feb 23, Mar 2)

Python/Matplotlib

  • Requirements:
    • Make sure that you bring to class your computer with a working Python environment (including Numpy, Scipy and Matplotlib). Consider for example the Enthought distribution, which is available for free and provides a one-click Python installation for Windows, Linux and Mac.
    • Our first goal will be to write a script that produces the bifurcation diagram for the tent-map. To develop the script, and to get used to the language itself, it will be very useful to run Python interactively. It is highly recommended that you use Ipython for this purpose. You can think of Ipython as an equivalent to the Mathematica FrontEnd containing an integrated graphics environment, easily accessible help, and many other useful features. You can launch the shell from the command line ('ipython --pylab' loads the graphics environment automatically), which is faster, or use its web-based notebook environment.
  • Background:
    • Some good resources to get acquainted with the basics of the language are listed in the official Python site: Tutorials. An accessible, yet fairly complete, one can be found here; if you have a little bit of programming experience, you might want to browse Google's Python class.
    • Matplotlib will allow you to plot functions and it provides the source code for an extensive list of examples.

Mike Ogilvie (Mar 16, 23)

Project: Our goal is to learn to use Monte Carlo simulation to understand the behavior of complex systems. We will study the two-dimensional Ising model, perhaps the most celebrated model in all theoretical physics.

Background: Introductory material on the Ising model can be found in most graduate-level statistical mechanics texts, as well as here: Ising model. The Metropolis algorithm will be covered in detail in class.

Requirements: We will continue with Python and the iPython environment. I will send you via email a working Ising model simulation as an iPython notebook, which you can modify and extend.

Things to do:

  • Verify the phase structure is approximately correct
    • Examine the effect of lattice size and run time
    • Examine the difference between a hot start and cold start
    • Preliminary plot of magnetization versus beta
  • Determine magnetization as a function of beta
    • Determine an appropriate lattice size and run time
    • Determine equilibration time
    • Explore different ways to measure magnetization
  • Advanced topics
    • Susceptibility and specific heat measurements
    • Autocorrelation and statistical error

Erik Henriksen (Mar 30, Apr 6)

LabVIEW (Laboratory Virtual Instrument Engineering Workbench) is a graphical programming language that uses icons instead of lines of text to create applications. In contrast to text-based programming languages that use instructions to determine the order of program execution, LabVIEW uses dataflow programming. In data flow programming, the flow of data through the nodes on the block diagram determines the execution order of the VIs and functions. VIs, or virtual instruments, are LabVIEW programs that imitate physical instruments.

In LabVIEW, you build a user interface by using a set of tools and objects. The user interface is known as the front panel. After you build the front panel, you add code using graphical representations of functions to control the front panel objects. You add this graphical code, also known as G code or block diagram code, to the block diagram. The block diagram somewhat resembles a flowchart. The block diagram, front panel, and graphical representations of code compose a VI.

Ultimately the VI is used to acquire, display, analyze and save data. VIs interface with real instruments through USB, serial, or GPIB connections and can remotely control a wide range of standard laboratory equipment.

We will undertake the measurement of a simple RC circuit using your own VI, a function generator, and an oscilloscope. The basic approaches to communicating with lab equipment will be discussed in class. To prepare, it is best to become familiar with the Labview environment by diving right in!


Things to do:

The Mac computers in Crow 302 have Labview 2014 installed on them. Find time prior to the first class to familiarize yourself with Labview: after launching the program, open Help/Find Examples, then open Fundamentals/Waveforms/Waveforms - XY pairs.vi. Run the program to observe its behavior. Then click Window/Show Block Diagram to explore the underlying program.

Also explore Fundamentals/Loops and Structures/Feedback Node - Building An Array.vi and /Loop Tunnel Modes.vi. You may wish to open many more examples: there is a wide range of simple VIs illustrating many basic concepts of Labview programming.

Note that right-clicking in a block diagram allows you to add prewritten functions, structures, basic math, &c.


Assignment: before class on the 30th, use these basic tools to construct a VI that, when run, displays the sum of a series of sine and cosines whose frequencies and amplitudes are entered in controls on the VI front panel. Keep it simple: at the very least, be able to display either a square wave or a triangle wave composed of an arbitrary number of terms added together (so that we could see a rough square wave approximation with only, say, 5 terms; or a very good approx using 100 terms).


Kasey Wagoner (Apr 13, 20)

  • SolidWorks
  • Project: designing a 3D object.