<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://micro.stanford.edu/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wcash</id>
	<title>Micro and Nano Mechanics Group - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://micro.stanford.edu/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wcash"/>
	<link rel="alternate" type="text/html" href="http://micro.stanford.edu/wiki/Special:Contributions/Wcash"/>
	<updated>2026-07-05T09:22:01Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=William_Cash&amp;diff=5934</id>
		<title>William Cash</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=William_Cash&amp;diff=5934"/>
		<updated>2013-09-22T18:40:33Z</updated>

		<summary type="html">&lt;p&gt;Wcash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=William Cash=&lt;br /&gt;
Billy began working as an engineering consultant at Exponent Failure Analysis Associates after completing his Ph.D. in March, 2013.&lt;br /&gt;
&lt;br /&gt;
===Education===&lt;br /&gt;
*2013 Ph.D. Mechanical Engineering. Stanford University&amp;lt;br/&amp;gt;&lt;br /&gt;
*2009 M.S. Mechanical Engineering.  Stanford University&amp;lt;br/&amp;gt;&lt;br /&gt;
*2007 B.S. Mechanical Engineering &#039;&#039;Summa Cum Laude&#039;&#039;.  The Ohio State University&lt;br /&gt;
&lt;br /&gt;
===Contact Information===&lt;br /&gt;
[http://www.exponent.com/william_cash/ Consultant Profile and CV]&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=File:Hysteresis.gif&amp;diff=5932</id>
		<title>File:Hysteresis.gif</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=File:Hysteresis.gif&amp;diff=5932"/>
		<updated>2013-09-18T03:24:32Z</updated>

		<summary type="html">&lt;p&gt;Wcash: hysteresis loop&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;hysteresis loop&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Micro_Maintenance&amp;diff=5919</id>
		<title>Micro Maintenance</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Micro_Maintenance&amp;diff=5919"/>
		<updated>2013-05-20T06:50:44Z</updated>

		<summary type="html">&lt;p&gt;Wcash: /* Setting up web server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;H1 ALIGN=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;FONT SIZE=&amp;quot;-1&amp;quot;&amp;gt;&amp;lt;/FONT&amp;gt; &lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
How to Maintain the Computer Server Micro.stanford.edu&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;DIV&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;P ALIGN=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;STRONG&amp;gt;William Cash&amp;lt;/STRONG&amp;gt;&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;/DIV&amp;gt;&lt;br /&gt;
&amp;lt;P ALIGN=&amp;quot;CENTER&amp;quot;&amp;gt;[[ Apr 23 ]], [[2013]]&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;HR&amp;gt;&lt;br /&gt;
&amp;lt;!--Table of Child-Links--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Updates ==&lt;br /&gt;
&lt;br /&gt;
The computer is set up to install security updates by itself.  But regular updates need to be performed manually by the following steps.&lt;br /&gt;
&lt;br /&gt;
Step 1: login to micro&lt;br /&gt;
If packages need to be updated.  There should be messages like:&lt;br /&gt;
&lt;br /&gt;
          3 packages can be updated.&lt;br /&gt;
&lt;br /&gt;
Step 2: Get updates and install&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
Step 3: Checking the health of RAID array&lt;br /&gt;
&lt;br /&gt;
  cat /proc/mdstat &lt;br /&gt;
&lt;br /&gt;
The output should look like the following:&lt;br /&gt;
&lt;br /&gt;
 Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] &lt;br /&gt;
 md1 : active raid1 sda2[0] sdb2[1]&lt;br /&gt;
       4103104 blocks super 1.2 [2/2] [UU]&lt;br /&gt;
      &lt;br /&gt;
 md0 : active raid1 sda1[0] sdb1[1]&lt;br /&gt;
       972524352 blocks super 1.2 [2/2] [UU]&lt;br /&gt;
      &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the output does not look like that, then something is wrong and the issue should be addressed as soon as possible.&lt;br /&gt;
&lt;br /&gt;
== Reboot ==&lt;br /&gt;
&lt;br /&gt;
It is a good idea to reboot the computer from time to time, by the following command.&lt;br /&gt;
&lt;br /&gt;
  sudo reboot&lt;br /&gt;
&lt;br /&gt;
(We are trying to schedule the computer to reboot automatically every two weeks.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Disks and Backup ==&lt;br /&gt;
&lt;br /&gt;
The computer&#039;s internal hard disk is configured to be RAID 1 (mirror, 1TB).&lt;br /&gt;
&lt;br /&gt;
The computer has an external hard disk (RAID 1, 750GB spread over 2 partitions), which can be mounted by the following command.  (The external hard disk is really two regular internal disks in a box.)&lt;br /&gt;
&lt;br /&gt;
 sudo mount /dev/sdc2 /mnt/group_backup&lt;br /&gt;
&lt;br /&gt;
The letter/number after /dev may change, which is a problem.  &lt;br /&gt;
&lt;br /&gt;
(External hard disks need to be checked.)&lt;br /&gt;
&lt;br /&gt;
(We are trying to set up an automatic backup of important files and web pages on the external hard disk.)&lt;br /&gt;
&lt;br /&gt;
== Create New SVN ==&lt;br /&gt;
&lt;br /&gt;
Here is how to create a new SVN repository, using PIMC++ as an example.  Superuser privilege is required. &lt;br /&gt;
&lt;br /&gt;
Step 1: change directory to the repository directory and create new svn directory:&lt;br /&gt;
&lt;br /&gt;
  cd /var/www/svn&lt;br /&gt;
  sudo svn mkdir PIMC++&lt;br /&gt;
&lt;br /&gt;
Step 2: import files:&lt;br /&gt;
&lt;br /&gt;
  sudo svn import /path_to_files/PIMC++/ file:///var/svn/www/PIMC++ -m &amp;quot;Initial Import&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 3: change ownership from root to Apache:&lt;br /&gt;
&lt;br /&gt;
  sudo chown -R www-data PIMC++&lt;br /&gt;
  sudo chgrp -R www-data PIMC++&lt;br /&gt;
&lt;br /&gt;
Step 4: Modify &#039;svn_roots&#039; in ViewVC config file to include new subversion:&lt;br /&gt;
&lt;br /&gt;
  sudo vi /etc/viewvc/viewvc.conf&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  svn_roots =     DD2D: /var/www/svn/DD2D,&lt;br /&gt;
                  DDLab: /var/www/svn/DDLab,&lt;br /&gt;
                  DDLab2D: /var/www/svn/DDLab2D,&lt;br /&gt;
                  DDLab_ThinFilm: /var/www/svn/DDLab_ThinFilm,&lt;br /&gt;
                  LAMMPS: /var/www/svn/LAMMPS,&lt;br /&gt;
                  MD++: /var/www/svn/MD++,&lt;br /&gt;
                  ParaDiS: /var/www/svn/ParaDiS,&lt;br /&gt;
                  Qbox: /var/www/svn/Qbox,&lt;br /&gt;
                  VASP: /var/www/svn/VASP,&lt;br /&gt;
                  ParaDiS-global: /var/www/svn/ParaDiS-global,&lt;br /&gt;
                  PIMC++: /var/www/svn/PIMC++&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Step 5: Add PIMC++ to the Apache https webserver:&lt;br /&gt;
&lt;br /&gt;
  sudo vi /etc/apache2/sites-available/default-ssl&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;Location /svn/PIMC++&amp;gt;&lt;br /&gt;
       DAV svn&lt;br /&gt;
  #    SVNListParentPath on&lt;br /&gt;
       SVNPath /var/www/svn/PIMC++&lt;br /&gt;
       AuthType Basic&lt;br /&gt;
       AuthName &amp;quot;PIMC++ SVN&amp;quot;&lt;br /&gt;
       AuthUserFile  /etc/apache2/passwd/svn-passwd&lt;br /&gt;
       AuthGroupFile /etc/apache2/passwd/svn-groups&lt;br /&gt;
       SSLRequireSSL&lt;br /&gt;
       Require group pimc members&lt;br /&gt;
  &amp;lt;/Location&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Step 6: Restart Apache:&lt;br /&gt;
&lt;br /&gt;
  sudo /etc/init.d/apache2 restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to add a new user to an existing SVN:&lt;br /&gt;
&lt;br /&gt;
  sudo htpasswd -m /etc/apache2/passwd/svn-passwd new_user&#039;s_name&lt;br /&gt;
&lt;br /&gt;
Then add the new username to the appropriate group of svn-groups:&lt;br /&gt;
&lt;br /&gt;
  sudo vi /etc/apache2/passwd/svn-groups&lt;br /&gt;
&lt;br /&gt;
=Connecting to micro over SSH=&lt;br /&gt;
&lt;br /&gt;
Micro&#039;s SSH has several additional security features to prevent it from being hacked by brute force attacks. Everyday micro has numerous connection attempts from around the world, you can check the logs in /var/log/auth.log. I&#039;ve disabled password authentication by setting &lt;br /&gt;
&lt;br /&gt;
     vi /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
     ...&lt;br /&gt;
     PasswordAuthentication no&lt;br /&gt;
     ...&lt;br /&gt;
&lt;br /&gt;
and restarting apache.&lt;br /&gt;
&lt;br /&gt;
     sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
I also installed the program denyhosts to prevent someone from trying too log in too many times unsuccessfully in a short period of time. &lt;br /&gt;
&lt;br /&gt;
     sudo apt-get install denyhosts&lt;br /&gt;
&lt;br /&gt;
To connect to micro you need to have an RSA key generated on your own computer. On a *NIX operating system you can run the command:&lt;br /&gt;
&lt;br /&gt;
     ssh-keygen -t rsa -b 4096&lt;br /&gt;
&lt;br /&gt;
This will create a public key in ~/.ssh/id_ra.pub. You then need to copy the contents of this file to ~/.ssh/authorized_keys on micro. You can add as many keys as you like to this file to connect from all of your computers. Another option is to copy the contents of your public keys by temporarily enabling password authentication and using the command &#039;ssh-copy-id&#039;.&lt;br /&gt;
&lt;br /&gt;
= System Upgrade =&lt;br /&gt;
&lt;br /&gt;
The operating system of Micro has been updated Mar 22, 2013 by William Cash.  The upgraded system will receive updates until Apr 2017, after which the operating system is obsolete.  Another manual update will be needed at that time.&lt;br /&gt;
&lt;br /&gt;
The following is a summary of the tasks performed in the System Upgrade on Mar 22, 2013.&lt;br /&gt;
&lt;br /&gt;
== Prepping and Backing up the system ==&lt;br /&gt;
This stage is crucial. There&#039;s a lot of irreplaceable data that you can vanish in heartbeat if you aren&#039;t prepared. Ideally you can create an additional RAID mirror of micro&#039;s hard drives. That way if something bad happens you can install the extra hard drive and rebuild the old RAID array. Creating an additional RAID mirror is somewhat complicated, but the steps are essentially:&lt;br /&gt;
1) Create identical RAID partitions and format the drive with the same file system&lt;br /&gt;
2) &#039;&#039;&#039;ADD&#039;&#039;&#039; the disk to RAID raid array&lt;br /&gt;
3) &#039;&#039;&#039;Grow&#039;&#039;&#039; the RAID array&lt;br /&gt;
4) Wait for the mirror to be built&lt;br /&gt;
&lt;br /&gt;
It&#039;s important that you not only add the drive to the RAID array, but you also grow the array to have three disks! Simply adding the drive will not create a mirror. The mirroring process on micro&#039;s 1TB drives should take over 3 hours. You can check the status using &#039;cat /proc/mdstat&#039;. If it doesn&#039;t take several hours you did something wrong. &lt;br /&gt;
&lt;br /&gt;
You also need to dump all of the relevant MySQL databases so that you can restore them on the new system. You can do this using mysqldump or with phpmyadmin. Just make sure you dump them BEFORE you install the new operating system. It will save you a lot of headaches. &lt;br /&gt;
&lt;br /&gt;
It&#039;s not necessary to dump the SVN repositories because you can simply copy their entire directories, but it can&#039;t hurt.&lt;br /&gt;
&lt;br /&gt;
To be continued...&lt;br /&gt;
&lt;br /&gt;
== Setting up web server ==&lt;br /&gt;
&lt;br /&gt;
Micro hosts several websites that depend on MySQL databases. As a security feature each website has its own SQL user. These users need to be created on the new system.&lt;br /&gt;
&lt;br /&gt;
List of all the websites:&lt;br /&gt;
&lt;br /&gt;
 1) [http://micro.stanford.edu/wiki/Main_Page wiki]&lt;br /&gt;
 2) Users home pages&lt;br /&gt;
 2) [http://micro.stanford.edu/~caiwei/CSD-Book/ Book Computer Simulations of Dislocations]&lt;br /&gt;
 3) [http://paradis.stanford.edu/ ParaDiS]&lt;br /&gt;
 4) [http://micro.stanford.edu/MDpp/ MD++]&lt;br /&gt;
 5) [https://micro.stanford.edu/viewvc/ ViewVC]&lt;br /&gt;
 6) [https://micro.stanford.edu/svn/ SVN]&lt;br /&gt;
 7) [https://micro.stanford.edu/journal-repository/ Journal repository]&lt;br /&gt;
 8) [http://dislocations2008.stanford.edu/ Dislocations 2008]&lt;br /&gt;
&lt;br /&gt;
Increase the maximum uploaded file size for the journal repository to 30 MB in /etc/php5/apache2/php.ini&lt;br /&gt;
&lt;br /&gt;
 post_max_size = 30M&lt;br /&gt;
&lt;br /&gt;
== Installing Unison ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cis.upenn.edu/~bcpierce/unison/ Unison] is installed on micro using the command&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install unison&lt;br /&gt;
&lt;br /&gt;
Currently the version 2.40 is installed.&lt;br /&gt;
&lt;br /&gt;
Unison allows file synchronization across platforms.  The binary executables for Windows PCs can be downloaded at [http://www.cis.upenn.edu/~bcpierce/unison/download.html here].  [http://sourceforge.net/projects/gtk-win/?source=dlp Gtk run time libraries] need to be installed on Windows PCs for Unison to run.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installing Unicode ==&lt;br /&gt;
&lt;br /&gt;
The command &#039;&#039;&#039;unicode&#039;&#039;&#039; is installed on micro using the command&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install unicode&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Micro_Maintenance&amp;diff=5918</id>
		<title>Micro Maintenance</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Micro_Maintenance&amp;diff=5918"/>
		<updated>2013-05-18T04:24:25Z</updated>

		<summary type="html">&lt;p&gt;Wcash: /* Setting up web server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;H1 ALIGN=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;FONT SIZE=&amp;quot;-1&amp;quot;&amp;gt;&amp;lt;/FONT&amp;gt; &lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
How to Maintain the Computer Server Micro.stanford.edu&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;DIV&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;P ALIGN=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;STRONG&amp;gt;William Cash&amp;lt;/STRONG&amp;gt;&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;/DIV&amp;gt;&lt;br /&gt;
&amp;lt;P ALIGN=&amp;quot;CENTER&amp;quot;&amp;gt;[[ Apr 23 ]], [[2013]]&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;HR&amp;gt;&lt;br /&gt;
&amp;lt;!--Table of Child-Links--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Updates ==&lt;br /&gt;
&lt;br /&gt;
The computer is set up to install security updates by itself.  But regular updates need to be performed manually by the following steps.&lt;br /&gt;
&lt;br /&gt;
Step 1: login to micro&lt;br /&gt;
If packages need to be updated.  There should be messages like:&lt;br /&gt;
&lt;br /&gt;
          3 packages can be updated.&lt;br /&gt;
&lt;br /&gt;
Step 2: Get updates and install&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
Step 3: Checking the health of RAID array&lt;br /&gt;
&lt;br /&gt;
  cat /proc/mdstat &lt;br /&gt;
&lt;br /&gt;
The output should look like the following:&lt;br /&gt;
&lt;br /&gt;
 Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] &lt;br /&gt;
 md1 : active raid1 sda2[0] sdb2[1]&lt;br /&gt;
       4103104 blocks super 1.2 [2/2] [UU]&lt;br /&gt;
      &lt;br /&gt;
 md0 : active raid1 sda1[0] sdb1[1]&lt;br /&gt;
       972524352 blocks super 1.2 [2/2] [UU]&lt;br /&gt;
      &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the output does not look like that, then something is wrong and the issue should be addressed as soon as possible.&lt;br /&gt;
&lt;br /&gt;
== Reboot ==&lt;br /&gt;
&lt;br /&gt;
It is a good idea to reboot the computer from time to time, by the following command.&lt;br /&gt;
&lt;br /&gt;
  sudo reboot&lt;br /&gt;
&lt;br /&gt;
(We are trying to schedule the computer to reboot automatically every two weeks.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Disks and Backup ==&lt;br /&gt;
&lt;br /&gt;
The computer&#039;s internal hard disk is configured to be RAID 1 (mirror, 1TB).&lt;br /&gt;
&lt;br /&gt;
The computer has an external hard disk (RAID 1, 750GB spread over 2 partitions), which can be mounted by the following command.  (The external hard disk is really two regular internal disks in a box.)&lt;br /&gt;
&lt;br /&gt;
 sudo mount /dev/sdc2 /mnt/group_backup&lt;br /&gt;
&lt;br /&gt;
The letter/number after /dev may change, which is a problem.  &lt;br /&gt;
&lt;br /&gt;
(External hard disks need to be checked.)&lt;br /&gt;
&lt;br /&gt;
(We are trying to set up an automatic backup of important files and web pages on the external hard disk.)&lt;br /&gt;
&lt;br /&gt;
== Create New SVN ==&lt;br /&gt;
&lt;br /&gt;
Here is how to create a new SVN repository, using PIMC++ as an example.  Superuser privilege is required. &lt;br /&gt;
&lt;br /&gt;
Step 1: change directory to the repository directory and create new svn directory:&lt;br /&gt;
&lt;br /&gt;
  cd /var/www/svn&lt;br /&gt;
  sudo svn mkdir PIMC++&lt;br /&gt;
&lt;br /&gt;
Step 2: import files:&lt;br /&gt;
&lt;br /&gt;
  sudo svn import /path_to_files/PIMC++/ file:///var/svn/www/PIMC++ -m &amp;quot;Initial Import&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 3: change ownership from root to Apache:&lt;br /&gt;
&lt;br /&gt;
  sudo chown -R www-data PIMC++&lt;br /&gt;
  sudo chgrp -R www-data PIMC++&lt;br /&gt;
&lt;br /&gt;
Step 4: Modify &#039;svn_roots&#039; in ViewVC config file to include new subversion:&lt;br /&gt;
&lt;br /&gt;
  sudo vi /etc/viewvc/viewvc.conf&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  svn_roots =     DD2D: /var/www/svn/DD2D,&lt;br /&gt;
                  DDLab: /var/www/svn/DDLab,&lt;br /&gt;
                  DDLab2D: /var/www/svn/DDLab2D,&lt;br /&gt;
                  DDLab_ThinFilm: /var/www/svn/DDLab_ThinFilm,&lt;br /&gt;
                  LAMMPS: /var/www/svn/LAMMPS,&lt;br /&gt;
                  MD++: /var/www/svn/MD++,&lt;br /&gt;
                  ParaDiS: /var/www/svn/ParaDiS,&lt;br /&gt;
                  Qbox: /var/www/svn/Qbox,&lt;br /&gt;
                  VASP: /var/www/svn/VASP,&lt;br /&gt;
                  ParaDiS-global: /var/www/svn/ParaDiS-global,&lt;br /&gt;
                  PIMC++: /var/www/svn/PIMC++&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Step 5: Add PIMC++ to the Apache https webserver:&lt;br /&gt;
&lt;br /&gt;
  sudo vi /etc/apache2/sites-available/default-ssl&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;Location /svn/PIMC++&amp;gt;&lt;br /&gt;
       DAV svn&lt;br /&gt;
  #    SVNListParentPath on&lt;br /&gt;
       SVNPath /var/www/svn/PIMC++&lt;br /&gt;
       AuthType Basic&lt;br /&gt;
       AuthName &amp;quot;PIMC++ SVN&amp;quot;&lt;br /&gt;
       AuthUserFile  /etc/apache2/passwd/svn-passwd&lt;br /&gt;
       AuthGroupFile /etc/apache2/passwd/svn-groups&lt;br /&gt;
       SSLRequireSSL&lt;br /&gt;
       Require group pimc members&lt;br /&gt;
  &amp;lt;/Location&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Step 6: Restart Apache:&lt;br /&gt;
&lt;br /&gt;
  sudo /etc/init.d/apache2 restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to add a new user to an existing SVN:&lt;br /&gt;
&lt;br /&gt;
  sudo htpasswd -m /etc/apache2/passwd/svn-passwd new_user&#039;s_name&lt;br /&gt;
&lt;br /&gt;
Then add the new username to the appropriate group of svn-groups:&lt;br /&gt;
&lt;br /&gt;
  sudo vi /etc/apache2/passwd/svn-groups&lt;br /&gt;
&lt;br /&gt;
=Connecting to micro over SSH=&lt;br /&gt;
&lt;br /&gt;
Micro&#039;s SSH has several additional security features to prevent it from being hacked by brute force attacks. Everyday micro has numerous connection attempts from around the world, you can check the logs in /var/log/auth.log. I&#039;ve disabled password authentication by setting &lt;br /&gt;
&lt;br /&gt;
     vi /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
     ...&lt;br /&gt;
     PasswordAuthentication no&lt;br /&gt;
     ...&lt;br /&gt;
&lt;br /&gt;
and restarting apache.&lt;br /&gt;
&lt;br /&gt;
     sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
I also installed the program denyhosts to prevent someone from trying too log in too many times unsuccessfully in a short period of time. &lt;br /&gt;
&lt;br /&gt;
     sudo apt-get install denyhosts&lt;br /&gt;
&lt;br /&gt;
To connect to micro you need to have an RSA key generated on your own computer. On a *NIX operating system you can run the command:&lt;br /&gt;
&lt;br /&gt;
     ssh-keygen -t rsa -b 4096&lt;br /&gt;
&lt;br /&gt;
This will create a public key in ~/.ssh/id_ra.pub. You then need to copy the contents of this file to ~/.ssh/authorized_keys on micro. You can add as many keys as you like to this file to connect from all of your computers. Another option is to copy the contents of your public keys by temporarily enabling password authentication and using the command &#039;ssh-copy-id&#039;.&lt;br /&gt;
&lt;br /&gt;
= System Upgrade =&lt;br /&gt;
&lt;br /&gt;
The operating system of Micro has been updated Mar 22, 2013 by William Cash.  The upgraded system will receive updates until Apr 2017, after which the operating system is obsolete.  Another manual update will be needed at that time.&lt;br /&gt;
&lt;br /&gt;
The following is a summary of the tasks performed in the System Upgrade on Mar 22, 2013.&lt;br /&gt;
&lt;br /&gt;
== Prepping and Backing up the system ==&lt;br /&gt;
This stage is crucial. There&#039;s a lot of irreplaceable data that you can vanish in heartbeat if you aren&#039;t prepared. Ideally you can create an additional RAID mirror of micro&#039;s hard drives. That way if something bad happens you can install the extra hard drive and rebuild the old RAID array. Creating an additional RAID mirror is somewhat complicated, but the steps are essentially:&lt;br /&gt;
1) Create identical RAID partitions and format the drive with the same file system&lt;br /&gt;
2) &#039;&#039;&#039;ADD&#039;&#039;&#039; the disk to RAID raid array&lt;br /&gt;
3) &#039;&#039;&#039;Grow&#039;&#039;&#039; the RAID array&lt;br /&gt;
4) Wait for the mirror to be built&lt;br /&gt;
&lt;br /&gt;
It&#039;s important that you not only add the drive to the RAID array, but you also grow the array to have three disks! Simply adding the drive will not create a mirror. The mirroring process on micro&#039;s 1TB drives should take over 3 hours. You can check the status using &#039;cat /proc/mdstat&#039;. If it doesn&#039;t take several hours you did something wrong. &lt;br /&gt;
&lt;br /&gt;
You also need to dump all of the relevant MySQL databases so that you can restore them on the new system. You can do this using mysqldump or with phpmyadmin. Just make sure you dump them BEFORE you install the new operating system. It will save you a lot of headaches. &lt;br /&gt;
&lt;br /&gt;
It&#039;s not necessary to dump the SVN repositories because you can simply copy their entire directories, but it can&#039;t hurt.&lt;br /&gt;
&lt;br /&gt;
To be continued...&lt;br /&gt;
&lt;br /&gt;
== Setting up web server ==&lt;br /&gt;
&lt;br /&gt;
Micro hosts several websites that depend on MySQL databases. As a security feature each website has its own SQL user. These users need to be created on the new system.&lt;br /&gt;
&lt;br /&gt;
List of all the websites:&lt;br /&gt;
&lt;br /&gt;
 1) [http://micro.stanford.edu/wiki/Main_Page wiki]&lt;br /&gt;
 2) Users home pages&lt;br /&gt;
 2) [http://micro.stanford.edu/~caiwei/CSD-Book/ Book Computer Simulations of Dislocations]&lt;br /&gt;
 3) [http://paradis.stanford.edu/ ParaDiS]&lt;br /&gt;
 4) [http://micro.stanford.edu/MDpp/ MD++]&lt;br /&gt;
 5) [https://micro.stanford.edu/viewvc/ ViewVC]&lt;br /&gt;
 6) [https://micro.stanford.edu/svn/ SVN]&lt;br /&gt;
 7) [https://micro.stanford.edu/journal-repository/ Journal repository]&lt;br /&gt;
 8) [http://dislocations2008.stanford.edu/ Dislocations 2008]&lt;br /&gt;
&lt;br /&gt;
Increase the maximum uploaded file size for the journal repository to 30 MB in /etc/php5/cli/php.ini&lt;br /&gt;
&lt;br /&gt;
 upload_max_filesize = 30M&lt;br /&gt;
&lt;br /&gt;
== Installing Unison ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cis.upenn.edu/~bcpierce/unison/ Unison] is installed on micro using the command&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install unison&lt;br /&gt;
&lt;br /&gt;
Currently the version 2.40 is installed.&lt;br /&gt;
&lt;br /&gt;
Unison allows file synchronization across platforms.  The binary executables for Windows PCs can be downloaded at [http://www.cis.upenn.edu/~bcpierce/unison/download.html here].  [http://sourceforge.net/projects/gtk-win/?source=dlp Gtk run time libraries] need to be installed on Windows PCs for Unison to run.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installing Unicode ==&lt;br /&gt;
&lt;br /&gt;
The command &#039;&#039;&#039;unicode&#039;&#039;&#039; is installed on micro using the command&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install unicode&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Micro_Maintenance&amp;diff=5906</id>
		<title>Micro Maintenance</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Micro_Maintenance&amp;diff=5906"/>
		<updated>2013-03-28T01:13:48Z</updated>

		<summary type="html">&lt;p&gt;Wcash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;William Cash&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= How to Maintain the Computer Server Micro.stanford.edu =&lt;br /&gt;
&lt;br /&gt;
== Software Updates ==&lt;br /&gt;
&lt;br /&gt;
The computer is set up to install security updates by itself.  But regular updates need to be performed manually by the following steps.&lt;br /&gt;
&lt;br /&gt;
Step 1: login to micro&lt;br /&gt;
If packages need to be updated.  There should be messages like:&lt;br /&gt;
&lt;br /&gt;
          3 packages can be updated.&lt;br /&gt;
&lt;br /&gt;
Step 2: Get updates and install&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
Step 3: Checking the health of RAID array&lt;br /&gt;
&lt;br /&gt;
  cat /proc/mdstat &lt;br /&gt;
&lt;br /&gt;
The output should look like the following:&lt;br /&gt;
&lt;br /&gt;
 Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] &lt;br /&gt;
 md1 : active raid1 sda2[0] sdb2[1]&lt;br /&gt;
       4103104 blocks super 1.2 [2/2] [UU]&lt;br /&gt;
      &lt;br /&gt;
 md0 : active raid1 sda1[0] sdb1[1]&lt;br /&gt;
       972524352 blocks super 1.2 [2/2] [UU]&lt;br /&gt;
      &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the output does not look like that, then something is wrong and the issue should be addressed as soon as possible.&lt;br /&gt;
&lt;br /&gt;
== Reboot ==&lt;br /&gt;
&lt;br /&gt;
It is a good idea to reboot the computer from time to time, by the following command.&lt;br /&gt;
&lt;br /&gt;
  sudo reboot&lt;br /&gt;
&lt;br /&gt;
(We are trying to schedule the computer to reboot automatically every two weeks.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Disks and Backup ==&lt;br /&gt;
&lt;br /&gt;
The computer&#039;s internal hard disk is configured to be RAID 1 (mirror, 1TB).&lt;br /&gt;
&lt;br /&gt;
The computer has an external hard disk (RAID 1, 750GB spread over 2 partitions), which can be mounted by the following command.  (The external hard disk is really two regular internal disks in a box.)&lt;br /&gt;
&lt;br /&gt;
 sudo mount /dev/sdc2 /mnt/group_backup&lt;br /&gt;
&lt;br /&gt;
The letter/number after /dev may change, which is a problem.  &lt;br /&gt;
&lt;br /&gt;
(External hard disks need to be checked.)&lt;br /&gt;
&lt;br /&gt;
(We are trying to set up an automatic backup of important files and web pages on the external hard disk.)&lt;br /&gt;
&lt;br /&gt;
== Create New SVN ==&lt;br /&gt;
&lt;br /&gt;
Here is how to create a new SVN repository, using PIMC++ as an example.  Superuser privilege is required. &lt;br /&gt;
&lt;br /&gt;
Step 1: change directory to the repository directory and create new svn directory:&lt;br /&gt;
&lt;br /&gt;
  cd /var/www/svn&lt;br /&gt;
  sudo svn mkdir PIMC++&lt;br /&gt;
&lt;br /&gt;
Step 2: import files:&lt;br /&gt;
&lt;br /&gt;
  sudo svn import /path_to_files/PIMC++/ file:///var/svn/www/PIMC++ -m &amp;quot;Initial Import&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 3: change ownership from root to Apache:&lt;br /&gt;
&lt;br /&gt;
  sudo chown -R www-data PIMC++&lt;br /&gt;
  sudo chgrp -R www-data PIMC++&lt;br /&gt;
&lt;br /&gt;
Step 4: Modify &#039;svn_roots&#039; in ViewVC config file to include new subversion:&lt;br /&gt;
&lt;br /&gt;
  sudo vi /etc/viewvc/viewvc.conf&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  svn_roots =     DD2D: /var/www/svn/DD2D,&lt;br /&gt;
                  DDLab: /var/www/svn/DDLab,&lt;br /&gt;
                  DDLab2D: /var/www/svn/DDLab2D,&lt;br /&gt;
                  DDLab_ThinFilm: /var/www/svn/DDLab_ThinFilm,&lt;br /&gt;
                  LAMMPS: /var/www/svn/LAMMPS,&lt;br /&gt;
                  MD++: /var/www/svn/MD++,&lt;br /&gt;
                  ParaDiS: /var/www/svn/ParaDiS,&lt;br /&gt;
                  Qbox: /var/www/svn/Qbox,&lt;br /&gt;
                  VASP: /var/www/svn/VASP,&lt;br /&gt;
                  ParaDiS-global: /var/www/svn/ParaDiS-global,&lt;br /&gt;
                  PIMC++: /var/www/svn/PIMC++&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Step 5: Add PIMC++ to the Apache https webserver:&lt;br /&gt;
&lt;br /&gt;
  sudo vi /etc/apache2/sites-available/default-ssl&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;Location /svn/PIMC++&amp;gt;&lt;br /&gt;
       DAV svn&lt;br /&gt;
  #    SVNListParentPath on&lt;br /&gt;
       SVNPath /var/www/svn/PIMC++&lt;br /&gt;
       AuthType Basic&lt;br /&gt;
       AuthName &amp;quot;PIMC++ SVN&amp;quot;&lt;br /&gt;
       AuthUserFile  /etc/apache2/passwd/svn-passwd&lt;br /&gt;
       AuthGroupFile /etc/apache2/passwd/svn-groups&lt;br /&gt;
       SSLRequireSSL&lt;br /&gt;
       Require group pimc members&lt;br /&gt;
  &amp;lt;/Location&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Step 6: Restart Apache:&lt;br /&gt;
&lt;br /&gt;
  sudo /etc/init.d/apache2 restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to add a new user to an existing SVN:&lt;br /&gt;
&lt;br /&gt;
  sudo htpasswd -m /etc/apache2/passwd/svn-passwd new_user&#039;s_name&lt;br /&gt;
&lt;br /&gt;
Then add the new username to the appropriate group of svn-groups:&lt;br /&gt;
&lt;br /&gt;
  sudo vi /etc/apache2/passwd/svn-groups&lt;br /&gt;
&lt;br /&gt;
=Connecting to micro over SSH=&lt;br /&gt;
&lt;br /&gt;
Micro&#039;s SSH has several additional security features to prevent it from being hacked by brute force attacks. Everyday micro has numerous connection attempts from around the world, you can check the logs in /var/log/auth.log. I&#039;ve disabled password authentication by setting &lt;br /&gt;
&lt;br /&gt;
     vi /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
     ...&lt;br /&gt;
     PasswordAuthentication no&lt;br /&gt;
     ...&lt;br /&gt;
&lt;br /&gt;
and restarting apache.&lt;br /&gt;
&lt;br /&gt;
     sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
I also installed the program denyhosts to prevent someone from trying too log in too many times unsuccessfully in a short period of time. &lt;br /&gt;
&lt;br /&gt;
     sudo apt-get install denyhosts&lt;br /&gt;
&lt;br /&gt;
To connect to micro you need to have an RSA key generated on your own computer. On a *NIX operating system you can run the command:&lt;br /&gt;
&lt;br /&gt;
     ssh-keygen -t rsa -b 4096&lt;br /&gt;
&lt;br /&gt;
This will create a public key in ~/.ssh/id_ra.pub. You then need to copy the contents of this file to ~/.ssh/authorized_keys on micro. You can add as many keys as you like to this file to connect from all of your computers. Another option is to copy the contents of your public keys by temporarily enabling password authentication and using the command &#039;ssh-copy-id&#039;.&lt;br /&gt;
&lt;br /&gt;
= System Upgrade =&lt;br /&gt;
&lt;br /&gt;
The operating system of Micro has been updated Mar 22, 2013 by William Cash.  The upgraded system will receive updates until Apr 2017, after which the operating system is obsolete.  Another manual update will be needed at that time.&lt;br /&gt;
&lt;br /&gt;
The following is a summary of the tasks performed in the System Upgrade on Mar 22, 2013.&lt;br /&gt;
&lt;br /&gt;
== Prepping and Backing up the system ==&lt;br /&gt;
This stage is crucial. There&#039;s a lot of irreplaceable data that you can vanish in heartbeat if you aren&#039;t prepared. Ideally you can create an additional RAID mirror of micro&#039;s hard drives. That way if something bad happens you can install the extra hard drive and rebuild the old RAID array. Creating an additional RAID mirror is somewhat complicated, but the steps are essentially:&lt;br /&gt;
1) Create identical RAID partitions and format the drive with the same file system&lt;br /&gt;
2) &#039;&#039;&#039;ADD&#039;&#039;&#039; the disk to RAID raid array&lt;br /&gt;
3) &#039;&#039;&#039;Grow&#039;&#039;&#039; the RAID array&lt;br /&gt;
4) Wait for the mirror to be built&lt;br /&gt;
&lt;br /&gt;
It&#039;s important that you not only add the drive to the RAID array, but you also grow the array to have three disks! Simply adding the drive will not create a mirror. The mirroring process on micro&#039;s 1TB drives should take over 3 hours. You can check the status using &#039;cat /proc/mdstat&#039;. If it doesn&#039;t take several hours you did something wrong. &lt;br /&gt;
&lt;br /&gt;
You also need to dump all of the relevant MySQL databases so that you can restore them on the new system. You can do this using mysqldump or with phpmyadmin. Just make sure you dump them BEFORE you install the new operating system. It will save you a lot of headaches. &lt;br /&gt;
&lt;br /&gt;
It&#039;s not necessary to dump the SVN repositories because you can simply copy their entire directories, but it can&#039;t hurt.&lt;br /&gt;
&lt;br /&gt;
To be continued...&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Micro_Maintenance&amp;diff=5905</id>
		<title>Micro Maintenance</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Micro_Maintenance&amp;diff=5905"/>
		<updated>2013-03-28T00:50:27Z</updated>

		<summary type="html">&lt;p&gt;Wcash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;William Cash&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= How to Maintain the Computer Server Micro.stanford.edu =&lt;br /&gt;
&lt;br /&gt;
== Software Updates ==&lt;br /&gt;
&lt;br /&gt;
The computer is set up to install security updates by itself.  But regular updates need to be performed manually by the following steps.&lt;br /&gt;
&lt;br /&gt;
Step 1: login to micro&lt;br /&gt;
If packages need to be updated.  There should be messages like:&lt;br /&gt;
&lt;br /&gt;
          3 packages can be updated.&lt;br /&gt;
&lt;br /&gt;
Step 2: Get updates and install&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
Step 3: Checking the health of RAID array&lt;br /&gt;
&lt;br /&gt;
  cat /proc/mdstat &lt;br /&gt;
&lt;br /&gt;
The output should look like the following:&lt;br /&gt;
&lt;br /&gt;
 Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] &lt;br /&gt;
 md1 : active raid1 sda2[0] sdb2[1]&lt;br /&gt;
       4103104 blocks super 1.2 [2/2] [UU]&lt;br /&gt;
      &lt;br /&gt;
 md0 : active raid1 sda1[0] sdb1[1]&lt;br /&gt;
       972524352 blocks super 1.2 [2/2] [UU]&lt;br /&gt;
      &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the output does not look like that, then something is wrong and the issue should be addressed as soon as possible.&lt;br /&gt;
&lt;br /&gt;
== Reboot ==&lt;br /&gt;
&lt;br /&gt;
It is a good idea to reboot the computer from time to time, by the following command.&lt;br /&gt;
&lt;br /&gt;
  sudo reboot&lt;br /&gt;
&lt;br /&gt;
(We are trying to schedule the computer to reboot automatically every two weeks.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Disks and Backup ==&lt;br /&gt;
&lt;br /&gt;
The computer&#039;s internal hard disk is configured to be RAID 1 (mirror, 1TB).&lt;br /&gt;
&lt;br /&gt;
The computer has an external hard disk (RAID 1, 750GB spread over 2 partitions), which can be mounted by the following command.  (The external hard disk is really two regular internal disks in a box.)&lt;br /&gt;
&lt;br /&gt;
 sudo mount /dev/sdc2 /mnt/group_backup&lt;br /&gt;
&lt;br /&gt;
The letter/number after /dev may change, which is a problem.  &lt;br /&gt;
&lt;br /&gt;
(External hard disks need to be checked.)&lt;br /&gt;
&lt;br /&gt;
(We are trying to set up an automatic backup of important files and web pages on the external hard disk.)&lt;br /&gt;
&lt;br /&gt;
== Create New SVN ==&lt;br /&gt;
&lt;br /&gt;
Here is how to create a new SVN repository, using PIMC++ as an example.  Superuser privilege is required. &lt;br /&gt;
&lt;br /&gt;
Step 1: change directory to the repository directory and create new svn directory:&lt;br /&gt;
&lt;br /&gt;
  cd /var/www/svn&lt;br /&gt;
  sudo svn mkdir PIMC++&lt;br /&gt;
&lt;br /&gt;
Step 2: import files:&lt;br /&gt;
&lt;br /&gt;
  sudo svn import /path_to_files/PIMC++/ file:///var/svn/www/PIMC++ -m &amp;quot;Initial Import&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 3: change ownership from root to Apache:&lt;br /&gt;
&lt;br /&gt;
  sudo chown -R www-data PIMC++&lt;br /&gt;
  sudo chgrp -R www-data PIMC++&lt;br /&gt;
&lt;br /&gt;
Step 4: Modify &#039;svn_roots&#039; in ViewVC config file to include new subversion:&lt;br /&gt;
&lt;br /&gt;
  sudo vi /etc/viewvc/viewvc.conf&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  svn_roots =     DD2D: /var/www/svn/DD2D,&lt;br /&gt;
                  DDLab: /var/www/svn/DDLab,&lt;br /&gt;
                  DDLab2D: /var/www/svn/DDLab2D,&lt;br /&gt;
                  DDLab_ThinFilm: /var/www/svn/DDLab_ThinFilm,&lt;br /&gt;
                  LAMMPS: /var/www/svn/LAMMPS,&lt;br /&gt;
                  MD++: /var/www/svn/MD++,&lt;br /&gt;
                  ParaDiS: /var/www/svn/ParaDiS,&lt;br /&gt;
                  Qbox: /var/www/svn/Qbox,&lt;br /&gt;
                  VASP: /var/www/svn/VASP,&lt;br /&gt;
                  ParaDiS-global: /var/www/svn/ParaDiS-global,&lt;br /&gt;
                  PIMC++: /var/www/svn/PIMC++&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Step 5: Add PIMC++ to the Apache https webserver:&lt;br /&gt;
&lt;br /&gt;
  sudo vi /etc/apache2/sites-available/default-ssl&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;Location /svn/PIMC++&amp;gt;&lt;br /&gt;
       DAV svn&lt;br /&gt;
  #    SVNListParentPath on&lt;br /&gt;
       SVNPath /var/www/svn/PIMC++&lt;br /&gt;
       AuthType Basic&lt;br /&gt;
       AuthName &amp;quot;PIMC++ SVN&amp;quot;&lt;br /&gt;
       AuthUserFile  /etc/apache2/passwd/svn-passwd&lt;br /&gt;
       AuthGroupFile /etc/apache2/passwd/svn-groups&lt;br /&gt;
       SSLRequireSSL&lt;br /&gt;
       Require group pimc members&lt;br /&gt;
  &amp;lt;/Location&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Step 6: Restart Apache:&lt;br /&gt;
&lt;br /&gt;
  sudo /etc/init.d/apache2 restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to add a new user to an existing SVN:&lt;br /&gt;
&lt;br /&gt;
  sudo htpasswd -m /etc/apache2/passwd/svn-passwd new_user&#039;s_name&lt;br /&gt;
&lt;br /&gt;
Then add the new username to the appropriate group of svn-groups:&lt;br /&gt;
&lt;br /&gt;
  sudo vi /etc/apache2/passwd/svn-groups&lt;br /&gt;
&lt;br /&gt;
=Connecting to micro over SSH=&lt;br /&gt;
&lt;br /&gt;
Micro&#039;s SSH has several additional security features to prevent it from being hacked by brute force attacks. Everyday micro has numerous connection attempts from around the world, you can check the logs in /var/log/auth.log. I&#039;ve disabled password authentication by setting &lt;br /&gt;
&lt;br /&gt;
     vi /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
     ...&lt;br /&gt;
     PasswordAuthentication no&lt;br /&gt;
     ...&lt;br /&gt;
&lt;br /&gt;
and restarting apache.&lt;br /&gt;
&lt;br /&gt;
     sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
I also installed the program denyhosts to prevent someone from trying too log in too many times unsuccessfully in a short period of time. &lt;br /&gt;
&lt;br /&gt;
     sudo apt-get install denyhosts&lt;br /&gt;
&lt;br /&gt;
To connect to micro you need to have an RSA key generated on your own computer. On a *NIX operating system you can run the command:&lt;br /&gt;
&lt;br /&gt;
     ssh-keygen -t rsa -b 4096&lt;br /&gt;
&lt;br /&gt;
This will create a public key in ~/.ssh/id_ra.pub. You then need to copy the contents of this file to ~/.ssh/authorized_keys on micro. You can add as many keys as you like to this file to connect from all of your computers. Another option is to copy the contents of your public keys by temporarily enabling password authentication and using the command &#039;ssh-copy-id&#039;.&lt;br /&gt;
&lt;br /&gt;
= System Upgrade =&lt;br /&gt;
&lt;br /&gt;
The operating system of Micro has been updated Mar 22, 2013 by William Cash.  The upgraded system will receive updates until Apr 2017, after which the operating system is obsolete.  Another manual update will be needed at that time.&lt;br /&gt;
&lt;br /&gt;
The following is a summary of the tasks performed in the System Upgrade on Mar 22, 2013.&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Main_Page&amp;diff=5887</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Main_Page&amp;diff=5887"/>
		<updated>2012-10-06T00:30:56Z</updated>

		<summary type="html">&lt;p&gt;Wcash: /* Group Meetings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Welcome to the Micro and Nano Mechanics Group at Stanford&lt;br /&gt;
&lt;br /&gt;
==Group Meetings==&lt;br /&gt;
&lt;br /&gt;
==[[Group Members]]==&lt;br /&gt;
&lt;br /&gt;
==[[Research Projects]]==&lt;br /&gt;
&lt;br /&gt;
==[[Tutorials]]==&lt;br /&gt;
&lt;br /&gt;
==[[Education]]==&lt;br /&gt;
&lt;br /&gt;
==[[Fun]]==&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Journal_Article_Discussions&amp;diff=5878</id>
		<title>Journal Article Discussions</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Journal_Article_Discussions&amp;diff=5878"/>
		<updated>2012-06-27T00:23:55Z</updated>

		<summary type="html">&lt;p&gt;Wcash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;1&amp;quot;&amp;gt; &lt;br /&gt;
=9/29/2011: Eshelby &amp;amp; Stroh (1951) Dislocations in Thin Plates=&lt;br /&gt;
Reader: Billy Cash&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/2/2b/Eshelby-Stroh-51-discussion.pdf Download PDF]\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;2&amp;quot;&amp;gt; &lt;br /&gt;
=10/13/2011: F. Kroupa (1966) Dislocation loops =&lt;br /&gt;
Reader: Ill Ryu&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/0/06/Dislocation_loops_Kroupa_1966.pdf Download PDF]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;3&amp;quot;&amp;gt; &lt;br /&gt;
=10/27/2011: A.K. Head (1966) Dislocation Group Dynamics I. Similarity Solutions of the n-body Problem=&lt;br /&gt;
Reader: William Kuykendall&lt;br /&gt;
&lt;br /&gt;
Discussion: [https://micro.stanford.edu/mediawiki/images/4/49/Head--Dislocation_Group_Dynamics_1--Discussion.pdf Download PDF]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;4&amp;quot;&amp;gt; &lt;br /&gt;
=1/24/2012: Dorn, Mitchell, and Hauser(1965) Dislocation Dynamics=&lt;br /&gt;
Reader: Wei Cai&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/d/da/2011-12-16-Cai-Dorn-1964.pdf Download PDF]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
=2/7/2012: M. Comninou, J. Dundurs (1972) Long-Range Interaction between a Screw Dislocation and a Spherical Inclusion=&lt;br /&gt;
Reader: W Cash&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/4/45/Comninou_Dundurs_72_discussion.pdf Download PDF]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;6&amp;quot;&amp;gt; &lt;br /&gt;
=4/3/2012: Stroh (1961) The Deformation of a Tilt Boundary under Applied Forces =&lt;br /&gt;
Reader: William Kuykendall&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/wiki/File:2012-04-03-Kuykendall-Stroh-1961.pdf Download PDF]&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Journal_Article_Discussions&amp;diff=5877</id>
		<title>Journal Article Discussions</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Journal_Article_Discussions&amp;diff=5877"/>
		<updated>2012-06-27T00:23:15Z</updated>

		<summary type="html">&lt;p&gt;Wcash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;1&amp;quot;&amp;gt; &lt;br /&gt;
=9/29/2011: Eshelby &amp;amp; Stroh (1951) Dislocations in Thin Plates=&lt;br /&gt;
Reader: Billy Cash&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/2/2b/Eshelby-Stroh-51-discussion.pdf Download PDF]\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;2&amp;quot;&amp;gt; &lt;br /&gt;
=10/13/2011: F. Kroupa (1966) Dislocation loops =&lt;br /&gt;
Reader: Ill Ryu&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/0/06/Dislocation_loops_Kroupa_1966.pdf Download PDF]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;3&amp;quot;&amp;gt; &lt;br /&gt;
=10/27/2011: A.K. Head (1966) Dislocation Group Dynamics I. Similarity Solutions of the n-body Problem=&lt;br /&gt;
Reader: William Kuykendall&lt;br /&gt;
&lt;br /&gt;
Discussion: [https://micro.stanford.edu/mediawiki/images/4/49/Head--Dislocation_Group_Dynamics_1--Discussion.pdf Download PDF]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;4&amp;quot;&amp;gt; &lt;br /&gt;
=1/24/2012: Dorn, Mitchell, and Hauser(1965) Dislocation Dynamics=&lt;br /&gt;
Reader: Wei Cai&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/d/da/2011-12-16-Cai-Dorn-1964.pdf Download PDF]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
=2/7/2012: M. Comninou, J. Dundurs (1972) Long-Range Interaction between a Screw Dislocation and a Spherical Inclusion&lt;br /&gt;
Reader: W Cash&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/4/45/Comninou_Dundurs_72_discussion.pdf Download PDF]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;6&amp;quot;&amp;gt; &lt;br /&gt;
=4/3/2012: Stroh (1961) The Deformation of a Tilt Boundary under Applied Forces =&lt;br /&gt;
Reader: William Kuykendall&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/wiki/File:2012-04-03-Kuykendall-Stroh-1961.pdf Download PDF]&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=File:Comninou_Dundurs_72_discussion.pdf&amp;diff=5876</id>
		<title>File:Comninou Dundurs 72 discussion.pdf</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=File:Comninou_Dundurs_72_discussion.pdf&amp;diff=5876"/>
		<updated>2012-06-27T00:21:56Z</updated>

		<summary type="html">&lt;p&gt;Wcash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=William_Cash&amp;diff=5815</id>
		<title>William Cash</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=William_Cash&amp;diff=5815"/>
		<updated>2012-05-28T19:47:29Z</updated>

		<summary type="html">&lt;p&gt;Wcash: added website&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[image:Billy_cover.jpg|thumb|330px|Modeling on the cover of Sound &amp;amp; Vibration.  I&#039;m kind of a big deal. ;-)]]&lt;br /&gt;
&lt;br /&gt;
=William Cash=&lt;br /&gt;
Billy is a Ph.D. candidate in mechanical engineering studying dislocations. &lt;br /&gt;
&lt;br /&gt;
For up to date information, check [http://1.38e-23.com 1.38e-23.com]&lt;br /&gt;
&lt;br /&gt;
===Education===&lt;br /&gt;
*06/2009 - present: Ph.D. Mechanical Engineering. Stanford University&amp;lt;br/&amp;gt;&lt;br /&gt;
*09/2007 - 06/2009: M.S. Mechanical Engineering.  Stanford University&amp;lt;br/&amp;gt;&lt;br /&gt;
*09/2003 - 06/2007: B.S. Mechanical Engineering &#039;&#039;Summa Cum Laude&#039;&#039;.  The Ohio State University&lt;br /&gt;
&lt;br /&gt;
===Contact Information===&lt;br /&gt;
Office: Durand 204 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Address: &amp;lt;td/&amp;gt;&amp;lt;td&amp;gt;William Cash&amp;lt;td/&amp;gt;&amp;lt;tr/&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;td/&amp;gt;&amp;lt;td&amp;gt;Mechanics and Computation Group&amp;lt;td/&amp;gt;&amp;lt;tr/&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;td/&amp;gt;&amp;lt;td&amp;gt;Durand Bldg. Rm. 204&amp;lt;td/&amp;gt;&amp;lt;tr/&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;td/&amp;gt;&amp;lt;td&amp;gt;496 Lomita Mall&amp;lt;td/&amp;gt;&amp;lt;tr/&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;td/&amp;gt;&amp;lt;td&amp;gt;Stanford, CA 94305&amp;lt;td/&amp;gt;&amp;lt;tr/&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
Email: &amp;lt;math&amp;gt;\mathrm{wcash\;at\;stanford\;dot\;edu}&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Tutorial:Members_Only&amp;diff=5812</id>
		<title>Tutorial:Members Only</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Tutorial:Members_Only&amp;diff=5812"/>
		<updated>2012-05-23T23:54:15Z</updated>

		<summary type="html">&lt;p&gt;Wcash: added link to our journal repository&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Manuals for Group Members ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;500&amp;quot; | Scientific Articles&lt;br /&gt;
|-&lt;br /&gt;
| [https://micro.stanford.edu/journal-repository Journal Repository]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;500&amp;quot; | ParaDiS&lt;br /&gt;
|-  &lt;br /&gt;
| [[ParaDiS Cylinder Code Manuals ]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ParaDiS ThinFilm Code Manuals]]&lt;br /&gt;
|- &lt;br /&gt;
| [[ParaDiS Aniso Code Manuals]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!width=&amp;quot;500&amp;quot; | MD++&lt;br /&gt;
|-&lt;br /&gt;
| [[Foward Flux Sampling in MD++]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Torsion and Bending PBC in MD++]]&lt;br /&gt;
|- &lt;br /&gt;
| [[A Polygonal Dislocation Loop in MD++]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Use of Ewald Summation in MD++]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!width=&amp;quot;500&amp;quot; | Phase Field&lt;br /&gt;
|-&lt;br /&gt;
| [[Single Phase Field Model with Isotropic Surface Energy]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Single Phase Field Model with Anisotropic Surface Energy]]&lt;br /&gt;
|- &lt;br /&gt;
| [[Multi Phase Field Model with Isotropic Interface Energy]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Multi Phase Field Model with Anisotropic Interface Energy]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!width=&amp;quot;500&amp;quot; | VASP&lt;br /&gt;
|-&lt;br /&gt;
| [[VASP Computing Bulk Modulus of Au]]&lt;br /&gt;
|-&lt;br /&gt;
| [[VASP Computing Bulk Modulus of ZrO2]]&lt;br /&gt;
|-&lt;br /&gt;
| [[VASP Computing Bulk Modulus of YSZ]]&lt;br /&gt;
|-&lt;br /&gt;
| [[VASP Computing Density of States of YSZ]]&lt;br /&gt;
|-&lt;br /&gt;
| [[VASP Computing Generalized Stacking Fault Energy of Au]]&lt;br /&gt;
|-&lt;br /&gt;
| [[VASP Computing Ideal Shear Strength of Au]]&lt;br /&gt;
|-&lt;br /&gt;
| [[VASP terminology]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!width=&amp;quot;500&amp;quot; | Qbox&lt;br /&gt;
|-&lt;br /&gt;
| [[Qbox Computing Bulk Modulus of Au]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Qbox Computing Bulk Modulus of ZrO2]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Qbox Implemention of Magnetic Field]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Qbox Generating Pseudopotentials]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Ab Initio Simulations of Condensed Matter under Arbitrary Magnetic Field | MPBC/Qbox draft1]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Predicting Molecular and Electronic Response to Magnetic Field from First Principles | MPBC/Qbox draft2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!width=&amp;quot;500&amp;quot; | C++&lt;br /&gt;
|-&lt;br /&gt;
| [[BOOST Library]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Install GCC]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!width=&amp;quot;500&amp;quot; | LaTeX&lt;br /&gt;
|-&lt;br /&gt;
| [[Install LaTeX from Scratch]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Beamer Presentations]]&lt;br /&gt;
|-&lt;br /&gt;
| [[TikZ package]]&lt;br /&gt;
|-&lt;br /&gt;
| [[PGFPLOTS]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Asymptote]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!width=&amp;quot;500&amp;quot; | Tools&lt;br /&gt;
|-&lt;br /&gt;
| [[Atom Eye]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Gnuplot]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!width=&amp;quot;500&amp;quot; | Computers&lt;br /&gt;
|-&lt;br /&gt;
| [[Libraries in SU-AHPCRC]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!width=&amp;quot;500&amp;quot; | Fatigue Literature Review&lt;br /&gt;
|-&lt;br /&gt;
| [[2D Dislocation Dynamics]]&lt;br /&gt;
|-&lt;br /&gt;
| [[3D Dislocation Dynamics]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!width=&amp;quot;500&amp;quot; | Outreach&lt;br /&gt;
|-&lt;br /&gt;
| [[Simulating Solids in MD++]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Videos of bucky balls in motion]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=MD%2B%2B_An_Example_Script_File&amp;diff=5792</id>
		<title>MD++ An Example Script File</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=MD%2B%2B_An_Example_Script_File&amp;diff=5792"/>
		<updated>2012-04-23T21:27:00Z</updated>

		<summary type="html">&lt;p&gt;Wcash: fixed mathbf{H}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;P ALIGN=&amp;quot;CENTER&amp;quot;&amp;gt; MD++ Tutorial &amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;P ALIGN=&amp;quot;CENTER&amp;quot;&amp;gt; &amp;lt;FONT SIZE=&amp;quot;+2&amp;quot; color=&amp;quot;darkred&amp;quot;&amp;gt;&amp;lt;STRONG&amp;gt;&lt;br /&gt;
An Example Script File&amp;lt;/STRONG&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;DIV&amp;gt;&lt;br /&gt;
&amp;lt;P ALIGN=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;STRONG&amp;gt;Adrian Buganza, William Kuykendall and Wei Cai&amp;lt;/STRONG&amp;gt;&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;/DIV&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This tutorial walks you through a complete .script file that performs an MD simulation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run a simulation using MD++ the basic approach consists on writing a &#039;&#039;script&#039;&#039; file. The &#039;&#039;script&#039;&#039; file consists of a series of variable assignments (e.g. &amp;lt;tt&amp;gt;latticeconst = 5.430&amp;lt;/tt&amp;gt;) and commands (e.g. &amp;lt;tt&amp;gt;openwin&amp;lt;/tt&amp;gt;) that MD++ uses to setup and run the simulation.  The disadvantage of &#039;&#039;script&#039;&#039; files is that they do not allow for more complex programming such as &amp;lt;tt&amp;gt;for&amp;lt;/tt&amp;gt; loops or similar programming tools. To incorporate this type of features the user can write a &#039;&#039;*.tcl&#039;&#039; file. More information on &#039;&#039;*.tcl&#039;&#039; files can be found in a different manual.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overall Structure of *.script files ==&lt;br /&gt;
&lt;br /&gt;
In general, a &#039;&#039;script&#039;&#039; file will have the following parts:&lt;br /&gt;
&lt;br /&gt;
* MD setup&lt;br /&gt;
* Initialize atoms positions&lt;br /&gt;
* Plotting setup&lt;br /&gt;
* Relaxation&lt;br /&gt;
* MD simulation settings&lt;br /&gt;
* MD Simulation&lt;br /&gt;
&lt;br /&gt;
The last three items do not always appear because they actually depend on the specific problem to be solved. For example, it is a common practice to relax the structure (find a configuration with minimum potential energy) before running a simulation, but the initial configuration (e.g. read in from a file) might already satisfy such condition.  Furthermore, there are some cases in which simulations at zero temperature are done in order to determine characteristic properties of a material like the ideal strength, in such a case, time integration is not needed and the last item on the list won&#039;t appear in the code.  In summary, what operations are performed by MD++ depend on the commands listed in the &#039;&#039;script&#039;&#039; file.  Nonetheless, in the following, we will briefly explain all the items listed above.&lt;br /&gt;
&lt;br /&gt;
Suppose you have installed MD++ in your $HOME/Codes/MD++ folder.  &lt;br /&gt;
 &lt;br /&gt;
 export MDPP=$HOME/Codes/MD++&lt;br /&gt;
 cd $MDPP&lt;br /&gt;
&lt;br /&gt;
In this example, we will use the follwing &#039;&#039;script&#039;&#039; file:&lt;br /&gt;
&lt;br /&gt;
 $MDPP/scripts/Examples/example02a-si-md.script&lt;br /&gt;
&lt;br /&gt;
All characters following the &#039;&#039;&#039;#&#039;&#039;&#039; (pound) sign are comments.  They will be ignored by the MD++ program and we will not discuss them here either.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Output set up ==&lt;br /&gt;
&lt;br /&gt;
Nearly every script file starts with the following three lines.&lt;br /&gt;
&lt;br /&gt;
 setnolog&lt;br /&gt;
 setoverwrite&lt;br /&gt;
 dirname = runs/si-example&lt;br /&gt;
&lt;br /&gt;
The first two commands (&amp;lt;tt&amp;gt;setnolog&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;setoverwrite&amp;lt;/tt&amp;gt;) are optional, but the line that specifies &amp;lt;tt&amp;gt;dirname&amp;lt;/tt&amp;gt; must precede all other commands.  Otherwise MD++ will exit with error.&lt;br /&gt;
&lt;br /&gt;
The first line, &amp;lt;tt&amp;gt;setnolog&amp;lt;/tt&amp;gt; indicates that everything will be printed to screen and the log file (A.log) created will be empty.  If this line is commented out (by adding # in front), MD++ will redirect all screen outputs to the A.log file in the directory specified by &amp;lt;tt&amp;gt;dirname&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Command &amp;lt;tt&amp;gt;setoverwrite&amp;lt;/tt&amp;gt; allows the new output files (including A.log file) to overwrite the old files in the directory (specified by &amp;lt;tt&amp;gt;dirname&amp;lt;/tt&amp;gt;).  If this line is commented out, MD++ will exit with error if the directory specified by &amp;lt;tt&amp;gt;dirname&amp;lt;/tt&amp;gt; already exists.&lt;br /&gt;
&lt;br /&gt;
Finally, &amp;lt;tt&amp;gt;dirname = runs/si-example&amp;lt;/tt&amp;gt; specifies the output directory.  If it does not exist, it will be created.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Initialize atoms positions ==&lt;br /&gt;
&lt;br /&gt;
Before doing any simulations (e.g. commands &amp;lt;tt&amp;gt;eval&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;relax&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;run&amp;lt;/tt&amp;gt;) or visualization (e.g. command &amp;lt;tt&amp;gt;plot&amp;lt;/tt&amp;gt;), an atomic configuration must be loaded (by &amp;lt;tt&amp;gt;readcn&amp;lt;/tt&amp;gt;) or created (e.g. by &amp;lt;tt&amp;gt;makecrystal&amp;lt;/tt&amp;gt;) into MD++. &lt;br /&gt;
&lt;br /&gt;
For the former use the following, e.g.&lt;br /&gt;
&lt;br /&gt;
 incnfile = relaxed.cn readcn&lt;br /&gt;
&lt;br /&gt;
This is an easy way to read in a configuration (.cn) file you have created before.  This reads in a file (&#039;&#039;relaxed.cn&#039;&#039; from the &amp;lt;tt&amp;gt;runs/si-example&amp;lt;/tt&amp;gt; folder) that contains the positions of your atoms.  Of course, if this is the first time you run this script file, your &amp;lt;tt&amp;gt;runs/si-example&amp;lt;/tt&amp;gt; folder will not contain any .cn files.  So this line will not work.  You will have to comment it out and try to create an atomic configuration file from scratch.&lt;br /&gt;
&lt;br /&gt;
A common way to create an atomic configuration is to create a perfect crystal structure, e.g. using the following commands.&lt;br /&gt;
&lt;br /&gt;
 crystalstructure = diamond-cubic &lt;br /&gt;
 latticeconst = 5.4309529817532409 &lt;br /&gt;
 latticesize  =  [ 1 0 0 4&lt;br /&gt;
                   0 1 0 4&lt;br /&gt;
                   0 0 1 4 ]  &lt;br /&gt;
 makecrystal writecn&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;crystalstructure = diamond-cubic&amp;lt;/tt&amp;gt; specifies the crystal structure.  In this example, it specifies diamond-cubic, which is the crystal structure for Silicon.  &amp;lt;tt&amp;gt;latticeconst = 5.4309529817532409&amp;lt;/tt&amp;gt; specifies the lattice constant (&amp;lt;math&amp;gt;a_0&amp;lt;/math&amp;gt;) in Angstrom.  The lines &amp;lt;tt&amp;gt;latticesize = ...&amp;lt;/tt&amp;gt; specifies the size of the lattice you wish to create.  The first three values  &amp;lt;tt&amp;gt;1 0 0&amp;lt;/tt&amp;gt; specify the orientation of the first simulation cell vector (in Miller indices notation), followed by the number of repeats (4) in that direction.  The next three values &amp;lt;tt&amp;gt;0 1 0&amp;lt;/tt&amp;gt; specify the orientation of the second simulation cell vector, followed by the number of repeats (4) in that direction.in each line are an axis direction.  The next three values &amp;lt;tt&amp;gt;0 0 1&amp;lt;/tt&amp;gt; specify the orientation of the third simulation cell vector, followed by the number of repeats (4) in that direction.in each line are an axis direction.&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;tt&amp;gt;1 0 0 4&amp;lt;/tt&amp;gt; will produce the crystal structure as &amp;lt;tt&amp;gt;2 0 0 2&amp;lt;/tt&amp;gt;.  The atoms will be labeled differently, but the structure will be the same.&lt;br /&gt;
&lt;br /&gt;
To emphasize, the &amp;lt;tt&amp;gt;crystalstructure&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;latticeconst&amp;lt;/tt&amp;gt; determine the structure.  The &amp;lt;tt&amp;gt;latticesize&amp;lt;/tt&amp;gt; specifies the size and orientation of the crystal to be created.&lt;br /&gt;
&lt;br /&gt;
It is also worth mentioning that Periodic Boundary Conditions (PBC) are &#039;&#039;&#039;always&#039;&#039;&#039; implied in MD++.  PBC are always used.  However, you can create gaps such that the atoms in the periodic images are outside the cutoff radius.  This will effectively create a free surface.  This is called the &#039;&#039;supercell&#039;&#039; approach.&lt;br /&gt;
&lt;br /&gt;
When creating a crystal structuree, MD++ never creates half-atoms or fractional atoms (as might be seen in some solid state physics books).  A simple cubic will have a single full atom at one corner (other corners have zero atoms).  The other 7 corners will also have a single atom because of PBC.&lt;br /&gt;
&lt;br /&gt;
Finally, &amp;lt;tt&amp;gt;makecrystal&amp;lt;/tt&amp;gt; is the command that actually creates the crystal structure.  It first computes the number of atoms to be allocated and then specifies their coordinates.  The command &amp;lt;tt&amp;gt;writecn&amp;lt;/tt&amp;gt; writes the configuration to a file in the [[Output_File_Formats_in_MD%2B%2B#Configuration_.cn_File | .cn format]].  By default, the file name is &amp;lt;tt&amp;gt;final.cn&amp;lt;/tt&amp;gt;, but you can change it by specifying variable, e.g. &amp;lt;tt&amp;gt;finalcnfile = perf.cn&amp;lt;/tt&amp;gt; &#039;&#039;&#039;before&#039;&#039;&#039; calling &amp;lt;tt&amp;gt;writecn&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The [[Output_File_Formats_in_MD%2B%2B#Configuration_.cn_File | .cn file]] starts with the number of atoms, then followed by that number of lines, each line giving the scaled coordinates of one atom.  If other options are set (e.g. &amp;lt;tt&amp;gt;writevelocity = 1&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;writeall = 1&amp;lt;/tt&amp;gt;), it may also save other things, such as velocities, in each line.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Plotting setup ==&lt;br /&gt;
&lt;br /&gt;
This section if pretty standard, so we will be brief.  The usual lines of code you can have in your .script file are:&lt;br /&gt;
&lt;br /&gt;
 atomradius = 0.67 bondradius = 0.3 bondlength = 2.8285&lt;br /&gt;
 atomcolor = orange highlightcolor = purple  bondcolor = red backgroundcolor = gray70&lt;br /&gt;
 plotfreq = 10  rotateangles = [ 0 0 0 1.25 ]&lt;br /&gt;
 openwin alloccolors rotate saverot&lt;br /&gt;
 eval plot&lt;br /&gt;
&lt;br /&gt;
The first two lines are parameters for plotting. &amp;lt;tt&amp;gt;atomradius&amp;lt;/tt&amp;gt; specifies how large a ball you want to draw for each atom.  &amp;lt;tt&amp;gt;bondradius = 0.3&amp;lt;/tt&amp;gt; specifies how thick a line you want to draw for each bond.  &amp;lt;tt&amp;gt;bondradius = 0.3&amp;lt;/tt&amp;gt; means any two atoms whose distance is less than 0.3 Angstrom will have a bond drawn between them.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;plotfreq = 10&amp;lt;/tt&amp;gt; specifies that during your (future) MD simulation, the atomic structure in the X-window will be updated every 10 MD time steps.  &amp;lt;tt&amp;gt;rotateangles&amp;lt;/tt&amp;gt; specifies the HOME orientation (the first three values) and scaling (the fourth value) of your view.  By default, your HOME viewing orientation has the x-axis pointing to the right, y-axis pointing upward, and z-axis pointing out of the plane.  After rotating your viewing angle by mouse drag or arrow keys, you can return to this HOME viewing angle by pressing the HOME key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;openwin&amp;lt;/tt&amp;gt; is the command that opens a new X-window (i.e. the canvas) where atoms will be plotted.  You are better off if you always put the other commands &amp;lt;tt&amp;gt;alloccolors rotate saverot&amp;lt;/tt&amp;gt; right after it, which help initialize the X-window.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;eval&amp;lt;/tt&amp;gt; command is not a plotting command, but it is usually used before plotting the results.  For example, sometimes we want to color atoms according to their local potential energy, which requires the potential function to be called before plotting.  We can do so by calling &amp;lt;tt&amp;gt;eval&amp;lt;/tt&amp;gt;. The last command &amp;lt;tt&amp;gt;plot&amp;lt;/tt&amp;gt; puts the atoms onto the X-window.  You can rotate your viewing angle by mouse drag.  Press F1 in the X-window to print a list of commands you can use to change your view or save a snapshot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Relaxation ==&lt;br /&gt;
&lt;br /&gt;
Relaxation means moving the atomic coordinates to a local minimum of the potential energy function. This is done with the conjugate gradient (CG) algorithm (an iterative search algorithm). To find the relaxed configuration use the following lines.&lt;br /&gt;
&lt;br /&gt;
 conj_ftol = 1e-7 conj_itmax = 1000 conj_fevalmax = 10000 &lt;br /&gt;
 conj_fixbox = 1  conj_summary = 1&lt;br /&gt;
 relax finalcnfile = relaxed.cn writecn &lt;br /&gt;
&lt;br /&gt;
The first line sets up the function tolerance, maximum iterations and maximum number of times the code is allowed to call the potential function.  In the second line &amp;lt;tt&amp;gt;conj_fixbox = 1&amp;lt;/tt&amp;gt;,  indicates that the simulation box (i.e. the &amp;lt;math&amp;gt;\mathbf{H}&amp;lt;/math&amp;gt;) is not allowed to change.  If this parameter is set to 0, the box size will go to the equilibrium size.  Thus, for however many repeat cells you have, the box will go to the equilibrium size for that number of repeat cells.  This is a convenient way to determine the equilibrium lattice constant of your crystal structure.&lt;br /&gt;
&lt;br /&gt;
After the various variables for the CGR algorithm have been set in the first two lines, the &amp;lt;tt&amp;gt;relax&amp;lt;/tt&amp;gt; calls the CG algorithm to relax the structure.  The relaxed structure is saved into a configuration file (specified as &amp;lt;tt&amp;gt;relaxed.cn&amp;lt;/tt&amp;gt; here).&lt;br /&gt;
&lt;br /&gt;
== MD simulation setup ==&lt;br /&gt;
&lt;br /&gt;
In this part of the code you define parameters such as ensemble type or integrator to be used in your subsequent MD simulation. Generic lines of code that might be useful are:&lt;br /&gt;
&lt;br /&gt;
 T_OBJ = 300&lt;br /&gt;
 equilsteps = 0  totalsteps = 100 timestep = 0.0001&lt;br /&gt;
 atommass = 28.0855&lt;br /&gt;
 atomTcpl = 200.0 boxTcpl = 20.0&lt;br /&gt;
 DOUBLE_T = 0&lt;br /&gt;
 srand48bytime initvelocity &lt;br /&gt;
 saveprop = 0  savepropfreq = 10 openpropfile &lt;br /&gt;
 ensemble_type = NVE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;T_OBJ = 300&amp;lt;/tt&amp;gt; sets the target temperature to 300 Kelvin, which will be used to initialize velocities.  (It will also be used by the thermostat if the &amp;lt;tt&amp;gt;NVT&amp;lt;/tt&amp;gt; ensemble were used, though not in this example.) The second line sets total number of steps and the time step (in picosecond). &lt;br /&gt;
&amp;lt;tt&amp;gt; atommass = 28.0855 &amp;lt;/tt&amp;gt; specifies atomic mass in grams/mole. &amp;lt;tt&amp;gt; atomTcpl = 200.0 boxTcpl = 20.0&amp;lt;/tt&amp;gt; are variables pertaining to the thermostat and bariostat for certain ensembles (not needed for &amp;lt;tt&amp;gt;NVE&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
In the next line, if the variable &amp;lt;tt&amp;gt;DOUBLE_T&amp;lt;/tt&amp;gt; is set to  0 then MD++ will not double &amp;lt;tt&amp;gt;T_OBJ&amp;lt;/tt&amp;gt; when initializing the velocity.  When equilibrium is reached for an NVE simulation for solids, the temperature will usually be about half of your initial &amp;lt;tt&amp;gt;T_OBJ&amp;lt;/tt&amp;gt;.   If &amp;lt;tt&amp;gt;T_OBJ&amp;lt;/tt&amp;gt; is set to 1, MD++ will double &amp;lt;tt&amp;gt;T_OBJ&amp;lt;/tt&amp;gt; when initializing the velocity, so that at equilibrium the temperature gets close to the desired value &amp;lt;tt&amp;gt;T_OBJ&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;srand48bytime&amp;lt;/tt&amp;gt; seeds the random number generator by the computer&#039;s clock time, so that everytime you run the simulation, your atomic trajectories will be different (because &amp;lt;tt&amp;gt;initvelocity&amp;lt;/tt&amp;gt; uses pseudo-random numbers when assigning velocities).  For debugging purposes, you may want your simulations to be exactly repeatable.  You can do so by always assigning the same random seed, e.g. &lt;br /&gt;
&lt;br /&gt;
 randseed = 12345   srand48&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;saveprop = 0&amp;lt;/tt&amp;gt;, the property file will not be saved during your MD simulation. If it were set to 1, a property file will be saved.  &amp;lt;tt&amp;gt;savepropfreq = 10&amp;lt;/tt&amp;gt; specifies a line will be added to the property file every 10 MD time steps (if &amp;lt;tt&amp;gt;saveprop = 1&amp;lt;/tt&amp;gt;).  Command &amp;lt;tt&amp;gt;openpropfile&amp;lt;/tt&amp;gt; opens the property file to prepare for subsequent MD simulation.&lt;br /&gt;
&lt;br /&gt;
Lastly, &amp;lt;tt&amp;gt;ensemble_type = NVE&amp;lt;/tt&amp;gt; defines the simulation ensemble. Typical ensembles are &amp;lt;tt&amp;gt;NVE&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;NVT&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;integrator_type = VVerlet&amp;lt;/tt&amp;gt; sets the integrator type to be &#039;&#039;Velocity Verlet&#039;&#039;.  You can also try &amp;lt;tt&amp;gt;Gear6&amp;lt;/tt&amp;gt; to see the difference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MD simulation ==&lt;br /&gt;
&lt;br /&gt;
To run an MD simulation there is only one command needed:&lt;br /&gt;
&lt;br /&gt;
 run &lt;br /&gt;
&lt;br /&gt;
The parameters of this MD simulation has been defined in the previous section.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;quit&amp;lt;/tt&amp;gt; command instructs MD++ to exit without reading the rest of the script file.  MD++ will also exit when it reaches the end of the script file.  Sometimes, you want to view the atomic structure at the end of your simulation before MD++ exits.  You can do so by putting the main program to sleep (the X-window is still awake) before exiting, &lt;br /&gt;
&lt;br /&gt;
 sleep quit &lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;tt&amp;gt;sleep&amp;lt;/tt&amp;gt; puts the main program to sleep for 600 seconds.  You can change the default value by setting, e.g. &amp;lt;tt&amp;gt;sleepseconds = 30 &amp;lt;/tt&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=M01_Introduction_to_MD%2B%2B&amp;diff=5712</id>
		<title>M01 Introduction to MD++</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=M01_Introduction_to_MD%2B%2B&amp;diff=5712"/>
		<updated>2012-04-02T16:55:20Z</updated>

		<summary type="html">&lt;p&gt;Wcash: /* Issues with Nvidia Linux graphics card driver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 3.2 Final//EN&amp;quot;--&amp;gt;&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;!--Converted with LaTeX2HTML 2002-2-1 (1.71)&lt;br /&gt;
original version by:  Nikos Drakos, CBLU, University of Leeds&lt;br /&gt;
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan&lt;br /&gt;
* with significant contributions from:&lt;br /&gt;
  Jens Lippmann, Marek Rouchal, Martin Wilck and others --&amp;gt;&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;HEAD&amp;gt;&lt;br /&gt;
&amp;lt;TITLE&amp;gt;Manual 01 for MD++ Introduction to MD++&amp;lt;/TITLE&amp;gt;&lt;br /&gt;
&amp;lt;META NAME=&amp;quot;description&amp;quot; CONTENT=&amp;quot;Manual 01 for MD++ Introduction to MD++&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;META NAME=&amp;quot;keywords&amp;quot; CONTENT=&amp;quot;M01_MD++_v4&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;META NAME=&amp;quot;resource-type&amp;quot; CONTENT=&amp;quot;document&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;META NAME=&amp;quot;distribution&amp;quot; CONTENT=&amp;quot;global&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;META NAME=&amp;quot;Generator&amp;quot; CONTENT=&amp;quot;LaTeX2HTML v2002-2-1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;META HTTP-EQUIV=&amp;quot;Content-Style-Type&amp;quot; CONTENT=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;LINK REL=&amp;quot;STYLESHEET&amp;quot; HREF=&amp;quot;M01_MD++_v4.css&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;LINK REL=&amp;quot;next&amp;quot; HREF=&amp;quot;node1.html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/HEAD&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Navigation Panel--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;A NAME=&amp;quot;tex2html8&amp;quot;&lt;br /&gt;
  HREF=&amp;quot;node1.html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;IMG WIDTH=&amp;quot;37&amp;quot; HEIGHT=&amp;quot;24&amp;quot; ALIGN=&amp;quot;BOTTOM&amp;quot; BORDER=&amp;quot;0&amp;quot; ALT=&amp;quot;next&amp;quot;&lt;br /&gt;
 SRC=&amp;quot;file:/usr/share/latex2html/icons/next.png&amp;quot;&amp;gt;&amp;lt;/A&amp;gt; &lt;br /&gt;
&amp;lt;IMG WIDTH=&amp;quot;26&amp;quot; HEIGHT=&amp;quot;24&amp;quot; ALIGN=&amp;quot;BOTTOM&amp;quot; BORDER=&amp;quot;0&amp;quot; ALT=&amp;quot;up&amp;quot;&lt;br /&gt;
 SRC=&amp;quot;file:/usr/share/latex2html/icons/up_g.png&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;IMG WIDTH=&amp;quot;63&amp;quot; HEIGHT=&amp;quot;24&amp;quot; ALIGN=&amp;quot;BOTTOM&amp;quot; BORDER=&amp;quot;0&amp;quot; ALT=&amp;quot;previous&amp;quot;&lt;br /&gt;
 SRC=&amp;quot;file:/usr/share/latex2html/icons/prev_g.png&amp;quot;&amp;gt;   &lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt; Next:&amp;lt;/B&amp;gt; &amp;lt;A NAME=&amp;quot;tex2html9&amp;quot;&lt;br /&gt;
  HREF=&amp;quot;node1.html&amp;quot;&amp;gt;Overview&amp;lt;/A&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--End of Navigation Panel--&amp;gt;&lt;br /&gt;
&amp;lt;H1 ALIGN=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;FONT SIZE=&amp;quot;-1&amp;quot;&amp;gt;Manual 01 for MD++ &amp;lt;/FONT&amp;gt; &lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Introduction to MD++&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;DIV&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;P ALIGN=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;STRONG&amp;gt;Keonwook Kang and Wei Cai&amp;lt;/STRONG&amp;gt;&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;/DIV&amp;gt;&lt;br /&gt;
&amp;lt;P ALIGN=&amp;quot;CENTER&amp;quot;&amp;gt;[[ Nov 24 ]], [[2007]]&amp;lt;/P&amp;gt;&lt;br /&gt;
&amp;lt;P&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;HR&amp;gt;&lt;br /&gt;
&amp;lt;!--Table of Child-Links--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
MD++ is a molecular dynamics simulation package written in C++. It is&lt;br /&gt;
originally developed by Wei Cai when he was a graduate student at MIT&lt;br /&gt;
and still being updated to include more features. MD++ is supposed to&lt;br /&gt;
run in a Unix/Linux environment. However, if you have&lt;br /&gt;
cygwin,&amp;lt;ref&amp;gt;For download and installation, visit&lt;br /&gt;
http://www.cygwin.com/. You must download and install the full&lt;br /&gt;
package of cygwin. See http://micro.stanford.edu/~caiwei/Forum/2004-12-12-MD++/cygwin.html&lt;br /&gt;
for installation instructions.&amp;lt;/ref&amp;gt; a linux-like environment installed in your&lt;br /&gt;
Windows machine, you can also enjoy MD++ there. Currently, this code&lt;br /&gt;
is designed mainly for studying the atomic behavior in solid crystal&lt;br /&gt;
materials. It can also be extended to study other systems, such as&lt;br /&gt;
fluids, polymers and bio-molecules. This document is the first of a&lt;br /&gt;
series of manuals written for those new to MD simulations. These&lt;br /&gt;
manuals explain how to use MD++ with simple examples.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;HR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
The latest version of MD++ code can be downloaded from the web site,&lt;br /&gt;
http://micro.stanford.edu/~caiwei/Forum/2004-12-12-MD++/.&lt;br /&gt;
Here we assume that the reader is familiar with basic Unix/Linux shell&lt;br /&gt;
commands.&amp;lt;ref&amp;gt;For those who are not familiar with Unix/Linux&lt;br /&gt;
environment, we suggest the book &#039;&#039;A practical guide to Linux&lt;br /&gt;
commands, editors and shell programming&#039;&#039; by Mark G. Sobell. You can&lt;br /&gt;
also easily find several good web sties about the shell&lt;br /&gt;
commands.&amp;lt;/ref&amp;gt; Before you download MD++ code, we recommend &lt;br /&gt;
that you make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in your home directory. &lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
&lt;br /&gt;
Save the MD++ package in this directory(&#039;&#039;&#039;~/Codes&#039;&#039;&#039;). Suppose the&lt;br /&gt;
downloaded file is &#039;&#039;&#039;md++-2007-01-07.tar.gz&#039;&#039;&#039;, then we can&lt;br /&gt;
extract it by,&lt;br /&gt;
&lt;br /&gt;
 $ tar -zxvf md++-2007-01-07.tar.gz &lt;br /&gt;
&lt;br /&gt;
This command creates the &#039;&#039;&#039;MD++&#039;&#039;&#039; sub-directory and extracts all the&lt;br /&gt;
files into it. Go to the &#039;&#039;&#039;MD++&#039;&#039;&#039; directory and make a&lt;br /&gt;
&#039;&#039;&#039;runs&#039;&#039;&#039; directory if it does not exist.&lt;br /&gt;
 $ cd MD++; mkdir runs &lt;br /&gt;
&lt;br /&gt;
To compile the codes in release(R) mode &amp;lt;ref&amp;gt;If &#039;&#039;&#039;build=R&#039;&#039;&#039;, MD++&lt;br /&gt;
is compiled with the &#039;&#039;&#039;-O3&#039;&#039;&#039; option. By default(&#039;&#039;&#039;build=D&#039;&#039;&#039;), MD++ compiles as debug mode with the &#039;&#039;&#039;-g&#039;&#039;&#039; option. In release mode, the executabale files run faster but the compilation time is slightly longer than debug mode&amp;lt;/ref&amp;gt; in a Linux system, type &lt;br /&gt;
&lt;br /&gt;
 $ make all build=R &lt;br /&gt;
&lt;br /&gt;
In order to compile MD++ In a different system (such as Windows), you can specify the&lt;br /&gt;
&#039;&#039;&#039;SYS&#039;&#039;&#039; variable in the command line, such as&lt;br /&gt;
&lt;br /&gt;
 $ make all build=R SYS=cygwin &lt;br /&gt;
&lt;br /&gt;
provided that cygwin is installed. You can also compile MD++ code in an Apple/Machintosh computer, using&lt;br /&gt;
&lt;br /&gt;
 $ make all SYS=mac build=R &lt;br /&gt;
&lt;br /&gt;
By default, &#039;&#039;&#039;SYS=gpp&#039;&#039;&#039; which corresponds to the GNU c++&lt;br /&gt;
compiler. If you have the intel c/c++ compiler &#039;&#039;&#039;icc&#039;&#039;&#039; in your system, use &#039;&#039;&#039;SYS=intel&#039;&#039;&#039; to activate &#039;&#039;&#039;icc&#039;&#039;&#039;, which produces much faster executables than GNU c++ compiler. For more &#039;&#039;&#039;SYS&#039;&#039;&#039; values, take a look at the file &#039;&#039;&#039;~/Codes/MD++/src/Makefie.base&#039;&#039;&#039;. &lt;br /&gt;
You may get an TCL-related error during compilation. You can bypass this error using, &#039;&#039;e.g.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
 $make SYS=cygwin TCL=no &lt;br /&gt;
&lt;br /&gt;
by suppressing TCL option.&lt;br /&gt;
After compilation, you have executable files such as &#039;&#039;fs_gpp&#039;&#039;, &#039;&#039;eam_gpp&#039;&#039;, and &#039;&#039;sw_gpp&#039;&#039; in the &#039;&#039;&#039;bin&#039;&#039;&#039; directory.&amp;lt;ref&amp;gt;If you use &#039;&#039;&#039;SYS=cygwin&#039;&#039;&#039;, the executable files would be &#039;&#039;fs_cygwin.exe&#039;&#039;, &#039;&#039;eam_cygwin.exe&#039;&#039;, &#039;&#039;etc&#039;&#039;.&amp;lt;/ref&amp;gt; If you just want to compile one executable file, such as &#039;&#039;&#039;fs_gpp&#039;&#039;&#039;, use &lt;br /&gt;
&lt;br /&gt;
 $ make fs build=R &lt;br /&gt;
&lt;br /&gt;
The name of each execution file stands for the potential model that will be used in&lt;br /&gt;
the atomisitic simulation. For example, &#039;&#039;&#039;fs&#039;&#039;&#039; stands for the Finnis-Sinclair (FS) potential&amp;lt;ref&amp;gt;M. W. Finnis and J. E. Sinclair, &#039;&#039;Philos. Mag. A.&#039;&#039; &#039;&#039;&#039;50&#039;&#039;&#039; 45 (1984)&amp;lt;/ref&amp;gt; , &#039;&#039;&#039;lj&#039;&#039;&#039; for the Lennard-Jones (LJ) pair potential,&amp;lt;ref&amp;gt;J. E. Lennard-Jones, &amp;quot;Cohesion&amp;quot; &#039;&#039;Proceedings of the Physical Society&#039;&#039; &#039;&#039;&#039;43&#039;&#039;&#039; 461-482 (1931)&amp;lt;/ref&amp;gt; &#039;&#039;&#039;eam&#039;&#039;&#039; for the embedded-atom method (EAM) potential,&amp;lt;ref&amp;gt;M. S. Daw and M. I. Baskes, &amp;quot;Embedded-atom method: Derivation and application to impurities, surfaces, and&lt;br /&gt;
  other defects in metals&amp;quot;, &#039;&#039;Phys. Rev. B&#039;&#039; &#039;&#039;&#039;29&#039;&#039;&#039; 6443 (1984)&amp;lt;/ref&amp;gt; and &#039;&#039;&#039;sw&#039;&#039;&#039; &lt;br /&gt;
for the Stillinger-Weber (SW) potential.&amp;lt;ref&amp;gt;F. H. Stillinger and T. A. Weber, &amp;quot;Computer   simulation of local order in condensed phases of silicon&amp;quot;, &#039;&#039;Phys. Rev. B&#039;&#039; &#039;&#039;&#039;31&#039;&#039;&#039; 5262 (1985)&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;H. Balamane, T. Halicioglu, and W. A. Tiller, &amp;quot;Comparative study of silicon empirical interatomic potentials&amp;quot;, &#039;&#039;Phys. Rev. B&#039;&#039; &#039;&#039;&#039;46&#039;&#039;&#039; 2250 (1992)&amp;lt;/ref&amp;gt; Each potential model is applicable to a group of atomic species. For example, the FS potential was designed for body-centered-cubic (BCC) metals such as Mo, Ta and&lt;br /&gt;
W. The SW potential was designed for diamond-cubic semiconductors such as Si and Ge. &lt;br /&gt;
By the way, the executable &#039;&#039;&#039;md_gpp&#039;&#039;&#039; does not contain any potential&lt;br /&gt;
model. Hence it cannot be used to compute any material properties but&lt;br /&gt;
it can still be used to display atomic structures.&lt;br /&gt;
&lt;br /&gt;
If you modify the source code (in the &#039;&#039;&#039;src&#039;&#039;&#039; directory), you&lt;br /&gt;
need to recompile MD++. we recommend you to clean the previous executables&lt;br /&gt;
and rebuild by typing,&lt;br /&gt;
&lt;br /&gt;
 $ make clean; make all build=R &lt;br /&gt;
&lt;br /&gt;
To see more help on &#039;&#039;&#039;make&#039;&#039;&#039;, type &lt;br /&gt;
&lt;br /&gt;
 $ make help &lt;br /&gt;
&lt;br /&gt;
To check if you successfully install and compile MD++, try to run one of example scripts in the &#039;&#039;&#039;Examples&#039;&#039;&#039; directory, &#039;&#039;e.g.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
 $ bin/fs_gpp scripts/Examples/example01-mo.script &lt;br /&gt;
&lt;br /&gt;
If you want to stop MD++ running, press &#039;&#039;&#039;ctrl+c&#039;&#039;&#039; or close&lt;br /&gt;
the visualization window.&lt;br /&gt;
&lt;br /&gt;
== MD++ Directories ==&lt;br /&gt;
After installation, the &#039;&#039;&#039;MD++&#039;&#039;&#039; directory will contain the&lt;br /&gt;
following sub-directories.&amp;lt;ref&amp;gt;The new version of MD++ may have&lt;br /&gt;
different directories, but the main structure is still almost same.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;TABLE CELLPADDING=3&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;$ ls&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;bin&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;Doc&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;makefile&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;potentials&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;scripts&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;Tools&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;CSD-book&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;Examples&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;matlab&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;README&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;src&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
The contents in each directory are described below.&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;TABLE CELLPADDING=3&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;&#039;&#039;&#039;src&#039;&#039;&#039;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;source codes&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;&#039;&#039;&#039;bin&#039;&#039;&#039;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;binary executable files generated by &amp;lt;TT&amp;gt;make&amp;lt;/TT&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;&#039;&#039;&#039;Doc&#039;&#039;&#039;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;manuals&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;&#039;&#039;&#039;scripts&#039;&#039;&#039;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;input script files for running MD++&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;&#039;&#039;&#039;runs&#039;&#039;&#039;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;where the simulation outputs are stored&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;&#039;&#039;&#039;potentials&#039;&#039;&#039;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;potential files to read in&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;&#039;&#039;&#039;Examples&#039;&#039;&#039;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;some example input script files&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;&#039;&#039;&#039;Tools&#039;&#039;&#039;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;pre/post-simulation tools such as &#039;&#039;&#039;atomeye&#039;&#039;&#039; for visualization&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;&#039;&#039;&#039;matlab&#039;&#039;&#039;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD ALIGN=&amp;quot;LEFT&amp;quot;&amp;gt;useful Matlab codes.&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;HR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Script File ==&lt;br /&gt;
To execute a molecular simulation, the MD++ code reads an input script file,&lt;br /&gt;
which contains a series of commands to run and variables to be assigned for the&lt;br /&gt;
simulation.&lt;br /&gt;
To create or modify a script file in a Unix/Linux environment, you can&lt;br /&gt;
use &#039;&#039;vi&#039;&#039;, &#039;&#039;emacs&#039;&#039;, &#039;&#039;nedit&#039;&#039; or any of your favorite editors. For example, &lt;br /&gt;
&lt;br /&gt;
 $ vi scripts/example01-mo.script &lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 $ emacs scripts/example01-mo.script &amp;amp;amp;&lt;br /&gt;
&lt;br /&gt;
You can see what is the format by opening one of example script&lt;br /&gt;
files. All script files have a common head region,&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
# -*-shell-script-*- &lt;br /&gt;
setnolog                       # No log file saved&lt;br /&gt;
setoverwrite                   # Overwrite a log file&lt;br /&gt;
dirname = runs/mo-example      # Specify output directory&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
In a script file, you can commnet out a line&lt;br /&gt;
or a part of the line by the pound sign, &#039;&#039;&#039;#&#039;&#039;&#039;. You can use&lt;br /&gt;
&#039;&#039;&#039;#&#039;&#039;&#039; to leave your own comment or explanation anywhere in the&lt;br /&gt;
script.&lt;br /&gt;
The first line tells the &#039;&#039;Emacs&#039;&#039; editor to use the shell-script&lt;br /&gt;
mode to display the file.&lt;br /&gt;
The &#039;&#039;&#039;setnolog&#039;&#039;&#039; command tells MD++ not to create a log file and the outputs will be printed on the screen.&lt;br /&gt;
If &#039;&#039;&#039;setnolog&#039;&#039;&#039; is commented out, then the outputs will be redirected to a log file &#039;&#039;&#039;A.log&#039;&#039;&#039; in the output directory specified by the variable &#039;&#039;&#039;dirname&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
The simulation stops whenever it reaches the &#039;&#039;&#039;quit&#039;&#039;&#039;&lt;br /&gt;
command. Sometimes it is useful to put &#039;&#039;&#039;sleep&#039;&#039;&#039; before the&lt;br /&gt;
&#039;&#039;&#039;quit&#039;&#039;&#039; command, such as &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
sleep quit        # System gets sleep for 600 sec before quit.&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
The &#039;&#039;&#039;sleep&#039;&#039;&#039; command keeps the visualization window alive for a&lt;br /&gt;
while during which we can look at the atomic structure. Other&lt;br /&gt;
commands and variables in the scripts file will be explained in more&lt;br /&gt;
detail later.&lt;br /&gt;
&amp;lt;HR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Visualization Window Control ==&lt;br /&gt;
When you run MD++, a new window usually pops up through which you can&lt;br /&gt;
observe the motion of atoms. We refer to this window as the&lt;br /&gt;
&amp;quot;visualization window&amp;quot;. There are several short keys to manipulate&lt;br /&gt;
the object displayed in this window. For example, to translate the&lt;br /&gt;
object press t and then use arrow keys. To rotate it, use r and&lt;br /&gt;
arrow keys. To see more help, press F1, and the following will be&lt;br /&gt;
printed to the screen (if &#039;&#039;&#039;setnolog&#039;&#039;&#039; is commented out)&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Mouse drag to rotate &lt;br /&gt;
Hot Keys: &lt;br /&gt;
F1        : display this message &lt;br /&gt;
Up        : rotate up &lt;br /&gt;
Down      : rotate down &lt;br /&gt;
Left      : rotate left &lt;br /&gt;
Right     : rotate right &lt;br /&gt;
PgUp      : rotate counterclockwise &lt;br /&gt;
PgDn      : rotate clockwise &lt;br /&gt;
Home      : back to initial viewpoint &lt;br /&gt;
Space     : stop rotate &lt;br /&gt;
p         : toggle pause &lt;br /&gt;
t         : translation &lt;br /&gt;
s         : scaling &lt;br /&gt;
d         : move projection infinity point &lt;br /&gt;
r         : rotation &lt;br /&gt;
f         : toggle pbc enableness &lt;br /&gt;
m         : toggle drawframe &lt;br /&gt;
g         : pbc glide &lt;br /&gt;
x         : pbc shift in x &lt;br /&gt;
y         : pbc shift in y&lt;br /&gt;
z         : pbc shift in z &lt;br /&gt;
w         : print window specification &lt;br /&gt;
F9        : output gif&lt;br /&gt;
F10       : output postscript&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;HR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Shell_Commands&amp;diff=5681</id>
		<title>Shell Commands</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Shell_Commands&amp;diff=5681"/>
		<updated>2012-02-07T01:36:24Z</updated>

		<summary type="html">&lt;p&gt;Wcash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;( in alphabetical order )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd&#039;&#039;&#039; to change your current directory&lt;br /&gt;
Go to your home directory&lt;br /&gt;
  cd ~&lt;br /&gt;
Go to a specified directory, e.g.&lt;br /&gt;
  cd /tmp&lt;br /&gt;
You can use&lt;br /&gt;
  cd -&lt;br /&gt;
to toggle between two directories with no effort at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;find&#039;&#039;&#039; to search for files in a directory hierarchy&lt;br /&gt;
  find ./ -name param.inc&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;grep&#039;&#039;&#039; to show lines matching a pattern from files&lt;br /&gt;
&lt;br /&gt;
  grep EPOT runs/mo-example/A.log&lt;br /&gt;
  grep -3 Stress runs/mo-example/A.log&lt;br /&gt;
  grep -w mea Fortran/MEAM-Baskes/meam/*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nm&#039;&#039;&#039;  to list symbols from object files&lt;br /&gt;
&lt;br /&gt;
  nm Fortran/MEAM-Baskes/meam/linux/forces.o | grep phiid&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;tar&#039;&#039;&#039; the tar archiving utility&lt;br /&gt;
&lt;br /&gt;
  tar -zxvf MD++.tar.gz&lt;br /&gt;
  tar -jxvf highlight-2.6.5.tar.bz2&lt;br /&gt;
  tar -cvzf foo.tar.gz foo&lt;br /&gt;
  tar -cvjf foo.tar.bz2 foo&lt;br /&gt;
  tar cvf MD++.tar MD++ --exclude MD++/runs --exclude MD++/scripts/work --exclude MD++/cookies --exclude &amp;quot;.svn&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ tar --create --tape-length=2097152 --file=results-NACL2-1.tar results-NACL2&lt;br /&gt;
Prepare volume #2 for `results-NACL2-1.tar&#039; and hit return: n results-NACL2-2.tar&lt;br /&gt;
Prepare volume #2 for `results-NACL2-2.tar&#039; and hit return: &lt;br /&gt;
Prepare volume #3 for `results-NACL2-2.tar&#039; and hit return: n results-NACL2-3.tar&lt;br /&gt;
Prepare volume #3 for `results-NACL2-3.tar&#039; and hit return: &lt;br /&gt;
Prepare volume #4 for `results-NACL2-3.tar&#039; and hit return: n results-NACL2-4.tar&lt;br /&gt;
Prepare volume #4 for `results-NACL2-4.tar&#039; and hit return:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;yum&#039;&#039;&#039; (Yellowdog Updater Modified) update program&lt;br /&gt;
&lt;br /&gt;
  yum search gcc&lt;br /&gt;
  yum list installed | grep python-numeric&lt;br /&gt;
  yum remove python-numeric.i386&lt;br /&gt;
  yum install python-numeric.i386&lt;br /&gt;
  yum check-update gcc.i386&lt;br /&gt;
  yum update gcc.i386&lt;br /&gt;
  yum info gcc.i386&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;diff -b&#039;&#039;&#039; Can be used to compare two files when the tabbing and whitespace has been changed in a code (tabbing, blank lines, spaces, etc). Regular diff will state that &#039;a=b&#039; is different than &#039;a = b&#039;.&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Shell_Commands&amp;diff=5680</id>
		<title>Shell Commands</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Shell_Commands&amp;diff=5680"/>
		<updated>2012-02-07T01:34:55Z</updated>

		<summary type="html">&lt;p&gt;Wcash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;( in alphabetical order )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd&#039;&#039;&#039; to change your current directory&lt;br /&gt;
Go to your home directory&lt;br /&gt;
  cd ~&lt;br /&gt;
Go to a specified directory, e.g.&lt;br /&gt;
  cd /tmp&lt;br /&gt;
You can use&lt;br /&gt;
  cd -&lt;br /&gt;
to toggle between two directories with no effort at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;find&#039;&#039;&#039; to search for files in a directory hierarchy&lt;br /&gt;
  find ./ -name param.inc&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;grep&#039;&#039;&#039; to show lines matching a pattern from files&lt;br /&gt;
&lt;br /&gt;
  grep EPOT runs/mo-example/A.log&lt;br /&gt;
  grep -3 Stress runs/mo-example/A.log&lt;br /&gt;
  grep -w mea Fortran/MEAM-Baskes/meam/*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nm&#039;&#039;&#039;  to list symbols from object files&lt;br /&gt;
&lt;br /&gt;
  nm Fortran/MEAM-Baskes/meam/linux/forces.o | grep phiid&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;tar&#039;&#039;&#039; the tar archiving utility&lt;br /&gt;
&lt;br /&gt;
  tar -zxvf MD++.tar.gz&lt;br /&gt;
  tar -jxvf highlight-2.6.5.tar.bz2&lt;br /&gt;
  tar -cvzf foo.tar.gz foo&lt;br /&gt;
  tar -cvjf foo.tar.bz2 foo&lt;br /&gt;
  tar cvf MD++.tar MD++ --exclude MD++/runs --exclude MD++/scripts/work --exclude MD++/cookies --exclude &amp;quot;.svn&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ tar --create --tape-length=2097152 --file=results-NACL2-1.tar results-NACL2&lt;br /&gt;
Prepare volume #2 for `results-NACL2-1.tar&#039; and hit return: n results-NACL2-2.tar&lt;br /&gt;
Prepare volume #2 for `results-NACL2-2.tar&#039; and hit return: &lt;br /&gt;
Prepare volume #3 for `results-NACL2-2.tar&#039; and hit return: n results-NACL2-3.tar&lt;br /&gt;
Prepare volume #3 for `results-NACL2-3.tar&#039; and hit return: &lt;br /&gt;
Prepare volume #4 for `results-NACL2-3.tar&#039; and hit return: n results-NACL2-4.tar&lt;br /&gt;
Prepare volume #4 for `results-NACL2-4.tar&#039; and hit return:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;yum&#039;&#039;&#039; (Yellowdog Updater Modified) update program&lt;br /&gt;
&lt;br /&gt;
  yum search gcc&lt;br /&gt;
  yum list installed | grep python-numeric&lt;br /&gt;
  yum remove python-numeric.i386&lt;br /&gt;
  yum install python-numeric.i386&lt;br /&gt;
  yum check-update gcc.i386&lt;br /&gt;
  yum update gcc.i386&lt;br /&gt;
  yum info gcc.i386&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;diff -b&#039;&#039;&#039; Can be used two compare two files when the tabbing and whitespace has been changed in a code (tabbing, blank lines, spaces, etc). Regular diff will state that &#039;a=b&#039; is different than &#039;a = b&#039;.&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Journal_Article_Discussions&amp;diff=5678</id>
		<title>Journal Article Discussions</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Journal_Article_Discussions&amp;diff=5678"/>
		<updated>2012-01-24T23:46:00Z</updated>

		<summary type="html">&lt;p&gt;Wcash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;1&amp;quot;&amp;gt; &lt;br /&gt;
=9/29/2011: Eshelby &amp;amp; Stroh (1951) Dislocations in Thin Plates=&lt;br /&gt;
Reader: Billy Cash&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/2/2b/Eshelby-Stroh-51-discussion.pdf Download PDF]\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;2&amp;quot;&amp;gt; &lt;br /&gt;
=10/13/2011: F. Kroupa (1966) Dislocation loops =&lt;br /&gt;
Reader: Ill Ryu&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/0/06/Dislocation_loops_Kroupa_1966.pdf Download PDF]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;3&amp;quot;&amp;gt; &lt;br /&gt;
=10/27/2011: A.K. Head (1966) Dislocation Group Dynamics I. Similarity Solutions of the n-body Problem=&lt;br /&gt;
Reader: William Kuykendall&lt;br /&gt;
&lt;br /&gt;
Discussion: [https://micro.stanford.edu/mediawiki/images/4/49/Head--Dislocation_Group_Dynamics_1--Discussion.pdf Download PDF]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;4&amp;quot;&amp;gt; &lt;br /&gt;
=1/24/2012: Dorn, Mitchell, and Hauser(1965) Dislocation Dynamics=&lt;br /&gt;
Reader: Wei Cai&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/d/da/2011-12-16-Cai-Dorn-1964.pdf Download PDF]&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Journal_Article_Discussions&amp;diff=5677</id>
		<title>Journal Article Discussions</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Journal_Article_Discussions&amp;diff=5677"/>
		<updated>2012-01-24T23:39:44Z</updated>

		<summary type="html">&lt;p&gt;Wcash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;1&amp;quot;&amp;gt; &lt;br /&gt;
=9/29/2011: Eshelby &amp;amp; Stroh (1951) Dislocations in Thin Plates=&lt;br /&gt;
Reader: Billy Cash&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/2/2b/Eshelby-Stroh-51-discussion.pdf Download PDF]\&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;2&amp;quot;&amp;gt; &lt;br /&gt;
=10/13/2011: F. Kroupa (1966) Dislocation loops =&lt;br /&gt;
Reader: Ill Ryu&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/0/06/Dislocation_loops_Kroupa_1966.pdf Download PDF]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;3&amp;quot;&amp;gt; &lt;br /&gt;
=10/27/2011: A.K. Head (1966) Dislocation Group Dynamics I. Similarity Solutions of the n-body Problem=&lt;br /&gt;
Reader: William Kuykendall&lt;br /&gt;
&lt;br /&gt;
Discussion: [https://micro.stanford.edu/mediawiki/images/4/49/Head--Dislocation_Group_Dynamics_1--Discussion.pdf Download PDF]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;4&amp;quot;&amp;gt; &lt;br /&gt;
=1/24/2012: Dorn, Mitchell, and Hauser(1965) Dislocation Dynamics=&lt;br /&gt;
Reader: Wei Cai&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/d/da/2011-12-16-Cai-Dorn-1964.pdf Download PDF]&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=File:2011-12-16-Cai-Dorn-1964.pdf&amp;diff=5676</id>
		<title>File:2011-12-16-Cai-Dorn-1964.pdf</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=File:2011-12-16-Cai-Dorn-1964.pdf&amp;diff=5676"/>
		<updated>2012-01-24T23:39:11Z</updated>

		<summary type="html">&lt;p&gt;Wcash: Dorn, Mitchell, and Hauser (1965) Dislocation Dynamics slides&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dorn, Mitchell, and Hauser (1965) Dislocation Dynamics slides&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Journal_Article_Discussions&amp;diff=5536</id>
		<title>Journal Article Discussions</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Journal_Article_Discussions&amp;diff=5536"/>
		<updated>2011-10-27T21:50:17Z</updated>

		<summary type="html">&lt;p&gt;Wcash: added span id for Ill&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;1&amp;quot;&amp;gt; &lt;br /&gt;
=9/29/2011: Eshelby &amp;amp; Stroh (1951) Dislocations in Thin Plates=&lt;br /&gt;
Reader: Billy Cash&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/2/2b/Eshelby-Stroh-51-discussion.pdf Download PDF]\&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;2&amp;quot;&amp;gt; &lt;br /&gt;
=10/13/2011: F. Kroupa (1966) Dislocation loops =&lt;br /&gt;
Reader: Ill Ryu&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/0/06/Dislocation_loops_Kroupa_1966.pdf Download PDF]&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Journal_Article_Discussions&amp;diff=5505</id>
		<title>Journal Article Discussions</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Journal_Article_Discussions&amp;diff=5505"/>
		<updated>2011-09-29T22:59:39Z</updated>

		<summary type="html">&lt;p&gt;Wcash: tag testing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;1&amp;quot;&amp;gt; &lt;br /&gt;
=9/29/2011: Eshelby &amp;amp; Stroh (1951) Dislocations in Thin Plates=&lt;br /&gt;
Reader: Billy Cash&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/2/2b/Eshelby-Stroh-51-discussion.pdf Download PDF]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;2&amp;quot;&amp;gt; &lt;br /&gt;
=10/6/2011: Testing 1..2..3=&lt;br /&gt;
Reader: Unknown&lt;br /&gt;
&lt;br /&gt;
Discussion: ..............&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Journal_Article_Discussions&amp;diff=5504</id>
		<title>Journal Article Discussions</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Journal_Article_Discussions&amp;diff=5504"/>
		<updated>2011-09-29T22:58:46Z</updated>

		<summary type="html">&lt;p&gt;Wcash: tag testing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;1&amp;quot;&amp;gt;=9/29/2011: Eshelby &amp;amp; Stroh (1951) Dislocations in Thin Plates=&lt;br /&gt;
Reader: Billy Cash&lt;br /&gt;
&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/2/2b/Eshelby-Stroh-51-discussion.pdf Download PDF]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;2&amp;quot;&amp;gt;=10/6/2011: Testing 1..2..3=&lt;br /&gt;
Reader: Unknown&lt;br /&gt;
&lt;br /&gt;
Discussion: ..............&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Journal_Article_Discussions&amp;diff=5503</id>
		<title>Journal Article Discussions</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Journal_Article_Discussions&amp;diff=5503"/>
		<updated>2011-09-29T22:57:57Z</updated>

		<summary type="html">&lt;p&gt;Wcash: added first discussion. testing tags&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=9/29/2011: Eshelby &amp;amp; Stroh (1951) Dislocations in Thin Plates=&lt;br /&gt;
Reader: Billy Cash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
Discussion: [http://micro.stanford.edu/mediawiki/images/2/2b/Eshelby-Stroh-51-discussion.pdf Download PDF]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=10/6/2011: Testing 1..2..3=&lt;br /&gt;
Reader: Unknown&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Discussion: ..............&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Education&amp;diff=5502</id>
		<title>Education</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Education&amp;diff=5502"/>
		<updated>2011-09-29T22:50:38Z</updated>

		<summary type="html">&lt;p&gt;Wcash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Education==&lt;br /&gt;
&lt;br /&gt;
[[Recommended Courses]]&lt;br /&gt;
&lt;br /&gt;
[[Recommended Books]]&lt;br /&gt;
&lt;br /&gt;
[http://me.stanford.edu/current/grad1/degree_prog.html ME PhD Requirements]&lt;br /&gt;
&lt;br /&gt;
[[Journal Article Discussions]]&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=File:Eshelby-Stroh-51-discussion.pdf&amp;diff=5501</id>
		<title>File:Eshelby-Stroh-51-discussion.pdf</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=File:Eshelby-Stroh-51-discussion.pdf&amp;diff=5501"/>
		<updated>2011-09-29T22:49:11Z</updated>

		<summary type="html">&lt;p&gt;Wcash: Discussion of Eshelby &amp;amp; Stroh (1951) Dislocations in Thin Plates.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Discussion of Eshelby &amp;amp; Stroh (1951) Dislocations in Thin Plates.&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Thinfilm_change_log&amp;diff=5453</id>
		<title>Thinfilm change log</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Thinfilm_change_log&amp;diff=5453"/>
		<updated>2011-09-16T21:20:41Z</updated>

		<summary type="html">&lt;p&gt;Wcash: updated LocateCell()&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Force.h===&lt;br /&gt;
*Used to be a part of ParadisProto.h in previous versions of the code.&lt;br /&gt;
*Added thinfilm variables to function definitions.&lt;br /&gt;
&lt;br /&gt;
===Home.h===&lt;br /&gt;
*Identical to original code. However, it is needed in the thinfilm Include directory for the code to compile correctly.&lt;br /&gt;
&lt;br /&gt;
===Node.h===&lt;br /&gt;
* Declared THINFILM_SURFACE_NODE = 6&lt;br /&gt;
&lt;br /&gt;
===Param.h===&lt;br /&gt;
*Added thinfilm variable declarations.&lt;br /&gt;
*Added _STACKINGFAULT variable.&lt;br /&gt;
&lt;br /&gt;
===ParadisProto.h===&lt;br /&gt;
*Added thinfilm variables to function definitions.&lt;br /&gt;
*Included TF.h.&lt;br /&gt;
*Added SemiInfiniteSegSegForce2 because of the differences between the SemiInfiniteSegSegForce in v2.3.5 cylinder code and the bulk code for v2.5.1&lt;br /&gt;
&lt;br /&gt;
===Topology.h===&lt;br /&gt;
*Added thinfilm variables to function definitions.&lt;br /&gt;
&lt;br /&gt;
===Util.h===&lt;br /&gt;
*Added cellIndex[3] to LocateCell() definition if _THINFILM&lt;br /&gt;
*Added WRITE_NODE_FORCE() if _THINFILM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AllSegmentStress.c===&lt;br /&gt;
*No longer contained in src in v2.5.1. &lt;br /&gt;
*The organization of FMlayer struct has changed. Code to get FMMcell should be:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 600px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cellID = EncodeFMCellIndex(layer-&amp;gt;lDim, cellIndex[0], cellIndex[1], cellIndex[2])&lt;br /&gt;
FMMcell = LookupFMCell(layer-&amp;gt;cellTable, cellID)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===AllYoffeStress.c===&lt;br /&gt;
*added Sylvie&#039;s virtual segment changes.&lt;br /&gt;
&lt;br /&gt;
===Collision.c===&lt;br /&gt;
*This code is now a calling function for PredictiveCollision.c or ProximityCollision.c&lt;br /&gt;
*Force collison to occur on surface&lt;br /&gt;
*Change SURFACE_NODE to THINFILM_SURFACE_NODE&lt;br /&gt;
&lt;br /&gt;
===CrossSlip.c===&lt;br /&gt;
*Now a handler function for CrossSlipBCC.c and CrossSlipFCC.c&lt;br /&gt;
*Passed thinfilm variables&lt;br /&gt;
&lt;br /&gt;
===CrossSlipBCC.c &amp;amp; CrossSlipFCC.c===&lt;br /&gt;
*THESE FUNCTIONS HAVE DRASTICALLY CHANGED IN v2.5.1. THE SECOND LOOP SHOULD PROBABLY BE UPDATED AT SOME POINT.&lt;br /&gt;
*Added second loop for surface nodes.&lt;br /&gt;
*Declared variables burg[], glidedir[][], and fnode[] because they are no longer part of src in v2.5.1&lt;br /&gt;
*Added nodepinned2().&lt;br /&gt;
*Need to be passed the thinfilm variables in order to give them to SetOneNodeForce().&lt;br /&gt;
&lt;br /&gt;
===DeltaPlasticStrain===&lt;br /&gt;
*Needs to be passed thinfilm variables to give them to DeltaPlasticStrain_BCC.c or DeltaPlasticStrain_FCC.c&lt;br /&gt;
&lt;br /&gt;
===DeltaPlasticStrain_BCC.c &amp;amp; DeltaPlasticStrain_BCC.c===&lt;br /&gt;
*Added modifications for _BENDING.&lt;br /&gt;
&lt;br /&gt;
===ForwardEulerIntegrator.c===&lt;br /&gt;
*Passed thinfilm variables.&lt;br /&gt;
&lt;br /&gt;
===Initialize.c===&lt;br /&gt;
*Added modifications for _STACKINGFAULT.&lt;br /&gt;
*Suppressed warnings about free surfaces when using thinfilm.&lt;br /&gt;
*Added simVol calculation for thinfilm.&lt;br /&gt;
&lt;br /&gt;
===InputSanity.c===&lt;br /&gt;
*Disabled failure if there are free surfaces and not using FMM with thinfilm.&lt;br /&gt;
&lt;br /&gt;
===LocalSegForces.c===&lt;br /&gt;
*Added modifications for _STACKINGFAULT.&lt;br /&gt;
*Added modifications for _BENDING.&lt;br /&gt;
*Added Sylvie&#039;s virtual segment treatment.&lt;br /&gt;
*Passed thinfilm variables.&lt;br /&gt;
*When using FULL_N2_FORCES added thinfilm remote forces.&lt;br /&gt;
*Added remote stress contribution from the thinfilm regardless of whether FMM is enabled&lt;br /&gt;
&lt;br /&gt;
===MobilityLaw_BCC_0b.c===&lt;br /&gt;
*Constrained thinfilm surface node velocity in the z-direction to be zero.&lt;br /&gt;
&lt;br /&gt;
===MobilityLaw_BCC_0.c===&lt;br /&gt;
*Added correction to BTotal for a surface node, because it is simply linked.&lt;br /&gt;
&lt;br /&gt;
===MobilityLaw_BCC_glide.c===&lt;br /&gt;
*Added correction to BTotal for a surface node, because it is simply linked.&lt;br /&gt;
*Added correction for a thinfilm&#039;s normal constraint.&lt;br /&gt;
&lt;br /&gt;
===MobilityLaw_FCC_0.c===&lt;br /&gt;
*Constrained thinfilm surface node velocity in the z-direction to be zero.&lt;br /&gt;
*Tried to add Laboratory coordinate system rotation (may need checked)&lt;br /&gt;
&lt;br /&gt;
===MobilityLaw_Relax.c===&lt;br /&gt;
*This code was significantly changed from v2.3.5 to v2.5.1 in the src (may need checked)&lt;br /&gt;
*Constrained thinfilm surface node velocity in the z-direction to be zero.&lt;br /&gt;
&lt;br /&gt;
===NodeForce.c===&lt;br /&gt;
*Added modifications for _STACKINGFAULT.&lt;br /&gt;
*Added modifications for _BENDING.&lt;br /&gt;
*Added Sylvie&#039;s virtual segment treatment.&lt;br /&gt;
*Included TF.h.&lt;br /&gt;
*Passed thinfilm variables.&lt;br /&gt;
*Added WRITE_NODE_FORCE statements.&lt;br /&gt;
*Called InitSegSigbRem()&lt;br /&gt;
*Computed thinfilm&#039;s contribution to sigbRem.&lt;br /&gt;
*Added a call to LocalVirtualSegForces()&lt;br /&gt;
*When FULL_N2_FORCES, Added hook to zero sigbRem for adding in Yoffe stress. This is already done in the bulk code, but only with FEM.&lt;br /&gt;
*When FULL_N2_FORCES, added remote stress calculation for thinfilm in SetOneNodeForce().&lt;br /&gt;
*When NOT FULL_N2, added a hook to zero sigbRem for adding in Yoffe stress. This is already done in the bulk code, but only with FEM. This one was vectorized in the bulk code.&lt;br /&gt;
*Calculate PK force if _THINFILM, even if FMM is not enabled. This is done in the bulk code, but for FEM.&lt;br /&gt;
*Added thinfilm image stress to the segment&#039;s sigb. &lt;br /&gt;
&lt;br /&gt;
===ParadisStep.c===&lt;br /&gt;
*Added thinfilm variables to function definitions.&lt;br /&gt;
&lt;br /&gt;
===Param.c===&lt;br /&gt;
*Added modifications for _STACKINGFAULT.&lt;br /&gt;
*Initialized thinfilm variables.&lt;br /&gt;
&lt;br /&gt;
===Plot.c===&lt;br /&gt;
*Included Param.h and TF.h.&lt;br /&gt;
*Added plotting for thinfilm.&lt;br /&gt;
&lt;br /&gt;
===Remesh.c===&lt;br /&gt;
*Included TF.h&lt;br /&gt;
*Passed thinfilm variables.&lt;br /&gt;
*Added call to Thinfilm_Remesh().&lt;br /&gt;
&lt;br /&gt;
===RemeshRule_2.c===&lt;br /&gt;
*prevented thinfilm surface node from being removed.&lt;br /&gt;
&lt;br /&gt;
===Topology.c===&lt;br /&gt;
*Added modifications for _STACKINGFAULT.&lt;br /&gt;
*Included TF.h.&lt;br /&gt;
*Passed thinfilm variables.&lt;br /&gt;
*Handled combining pinned multinodes at the surface.&lt;br /&gt;
*Handled the splitting of surface nodes.&lt;br /&gt;
*Changed to THINFILM_SURFACE_NODE&lt;br /&gt;
&lt;br /&gt;
===TrapezoidIntegrator.c===&lt;br /&gt;
*Passed thinfilm variables.&lt;br /&gt;
*changed the print statement for thinfilm&lt;br /&gt;
&lt;br /&gt;
===SemiInfiniteSegSegForce.c===&lt;br /&gt;
*v2.5.1 now has this within the bulk code, but there appears to be some differences from the thinfilm code in v2.3.5.&lt;br /&gt;
*v2.5.1 bulk code currently only computes forces on fp3 and fp4. It zeros out forces on fp1 and does not compute fp2. v2.3.5 computed all four.&lt;br /&gt;
*Currently call the 2.3.5 functions SemiInfiniteSegSegForce2 and SpecialSemiInfiniteSegSegForce2.&lt;br /&gt;
&lt;br /&gt;
===Compute.c===&lt;br /&gt;
*Changed to SemiInfiniteSegSegForce2.&lt;br /&gt;
&lt;br /&gt;
===Util.c===&lt;br /&gt;
*Added function WRITE_NODE_FORCE.&lt;br /&gt;
*Had LocateCell return cellIndex when using thinfilm.&lt;br /&gt;
*Changing LocateCell necessitates adding Util.h to the thinfilm libraries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ABCoeff.c===&lt;br /&gt;
*Unique to thinfilm&lt;br /&gt;
*Added Sylvie&#039;s virtual segment treatment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fourier_transforms.c===&lt;br /&gt;
*Unique to thinfilm&lt;br /&gt;
*Added Sylvie&#039;s virtual segment treatment.&lt;br /&gt;
&lt;br /&gt;
===TF_Main.c===&lt;br /&gt;
*Unique to thinfilm&lt;br /&gt;
*Added Sylvie&#039;s virtual segment treatment.&lt;br /&gt;
&lt;br /&gt;
===TF_Util.c===&lt;br /&gt;
*Unique to thinfilm&lt;br /&gt;
*Added Sylvie&#039;s virtual segment treatment.&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Thinfilm_change_log&amp;diff=5452</id>
		<title>Thinfilm change log</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Thinfilm_change_log&amp;diff=5452"/>
		<updated>2011-09-16T20:44:27Z</updated>

		<summary type="html">&lt;p&gt;Wcash: added the rest of the common c files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Force.h===&lt;br /&gt;
*Used to be a part of ParadisProto.h in previous versions of the code.&lt;br /&gt;
*Added thinfilm variables to function definitions.&lt;br /&gt;
&lt;br /&gt;
===Home.h===&lt;br /&gt;
*Identical to original code. However, it is needed in the thinfilm Include directory for the code to compile correctly.&lt;br /&gt;
&lt;br /&gt;
===Node.h===&lt;br /&gt;
* Declared THINFILM_SURFACE_NODE = 6&lt;br /&gt;
&lt;br /&gt;
===Param.h===&lt;br /&gt;
*Added thinfilm variable declarations.&lt;br /&gt;
*Added _STACKINGFAULT variable.&lt;br /&gt;
&lt;br /&gt;
===ParadisProto.h===&lt;br /&gt;
*Added thinfilm variables to function definitions.&lt;br /&gt;
*Included TF.h.&lt;br /&gt;
*Added SemiInfiniteSegSegForce2 because of the differences between the SemiInfiniteSegSegForce in v2.3.5 cylinder code and the bulk code for v2.5.1&lt;br /&gt;
&lt;br /&gt;
===Topology.h===&lt;br /&gt;
*Added thinfilm variables to function definitions.&lt;br /&gt;
&lt;br /&gt;
===Util.h===&lt;br /&gt;
*Added cellIndex[3] to LocateCell() definition if _THINFILM&lt;br /&gt;
*Added WRITE_NODE_FORCE() if _THINFILM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AllSegmentStress.c===&lt;br /&gt;
*No longer contained in src in v2.5.1. &lt;br /&gt;
*The organization of FMlayer struct has changed. Code to get FMMcell should be:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 600px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cellID = EncodeFMCellIndex(layer-&amp;gt;lDim, cellIndex[0], cellIndex[1], cellIndex[2])&lt;br /&gt;
FMMcell = LookupFMCell(layer-&amp;gt;cellTable, cellID)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===AllYoffeStress.c===&lt;br /&gt;
*added Sylvie&#039;s virtual segment changes.&lt;br /&gt;
&lt;br /&gt;
===Collision.c===&lt;br /&gt;
*This code is now a calling function for PredictiveCollision.c or ProximityCollision.c&lt;br /&gt;
*Force collison to occur on surface&lt;br /&gt;
*Change SURFACE_NODE to THINFILM_SURFACE_NODE&lt;br /&gt;
&lt;br /&gt;
===CrossSlip.c===&lt;br /&gt;
*Now a handler function for CrossSlipBCC.c and CrossSlipFCC.c&lt;br /&gt;
*Passed thinfilm variables&lt;br /&gt;
&lt;br /&gt;
===CrossSlipBCC.c &amp;amp; CrossSlipFCC.c===&lt;br /&gt;
*THESE FUNCTIONS HAVE DRASTICALLY CHANGED IN v2.5.1. THE SECOND LOOP SHOULD PROBABLY BE UPDATED AT SOME POINT.&lt;br /&gt;
*Added second loop for surface nodes.&lt;br /&gt;
*Declared variables burg[], glidedir[][], and fnode[] because they are no longer part of src in v2.5.1&lt;br /&gt;
*Added nodepinned2().&lt;br /&gt;
*Need to be passed the thinfilm variables in order to give them to SetOneNodeForce().&lt;br /&gt;
&lt;br /&gt;
===DeltaPlasticStrain===&lt;br /&gt;
*Needs to be passed thinfilm variables to give them to DeltaPlasticStrain_BCC.c or DeltaPlasticStrain_FCC.c&lt;br /&gt;
&lt;br /&gt;
===DeltaPlasticStrain_BCC.c &amp;amp; DeltaPlasticStrain_BCC.c===&lt;br /&gt;
*Added modifications for _BENDING.&lt;br /&gt;
&lt;br /&gt;
===ForwardEulerIntegrator.c===&lt;br /&gt;
*Passed thinfilm variables.&lt;br /&gt;
&lt;br /&gt;
===Initialize.c===&lt;br /&gt;
*Added modifications for _STACKINGFAULT.&lt;br /&gt;
*Suppressed warnings about free surfaces when using thinfilm.&lt;br /&gt;
*Added simVol calculation for thinfilm.&lt;br /&gt;
&lt;br /&gt;
===InputSanity.c===&lt;br /&gt;
*Disabled failure if there are free surfaces and not using FMM with thinfilm.&lt;br /&gt;
&lt;br /&gt;
===LocalSegForces.c===&lt;br /&gt;
*Added modifications for _STACKINGFAULT.&lt;br /&gt;
*Added modifications for _BENDING.&lt;br /&gt;
*Added Sylvie&#039;s virtual segment treatment.&lt;br /&gt;
*Passed thinfilm variables.&lt;br /&gt;
*When using FULL_N2_FORCES added thinfilm remote forces.&lt;br /&gt;
*Added remote stress contribution from the thinfilm regardless of whether FMM is enabled&lt;br /&gt;
&lt;br /&gt;
===MobilityLaw_BCC_0b.c===&lt;br /&gt;
*Constrained thinfilm surface node velocity in the z-direction to be zero.&lt;br /&gt;
&lt;br /&gt;
===MobilityLaw_BCC_0.c===&lt;br /&gt;
*Added correction to BTotal for a surface node, because it is simply linked.&lt;br /&gt;
&lt;br /&gt;
===MobilityLaw_BCC_glide.c===&lt;br /&gt;
*Added correction to BTotal for a surface node, because it is simply linked.&lt;br /&gt;
*Added correction for a thinfilm&#039;s normal constraint.&lt;br /&gt;
&lt;br /&gt;
===MobilityLaw_FCC_0.c===&lt;br /&gt;
*Constrained thinfilm surface node velocity in the z-direction to be zero.&lt;br /&gt;
*Tried to add Laboratory coordinate system rotation (may need checked)&lt;br /&gt;
&lt;br /&gt;
===MobilityLaw_Relax.c===&lt;br /&gt;
*This code was significantly changed from v2.3.5 to v2.5.1 in the src (may need checked)&lt;br /&gt;
*Constrained thinfilm surface node velocity in the z-direction to be zero.&lt;br /&gt;
&lt;br /&gt;
===NodeForce.c===&lt;br /&gt;
*Added modifications for _STACKINGFAULT.&lt;br /&gt;
*Added modifications for _BENDING.&lt;br /&gt;
*Added Sylvie&#039;s virtual segment treatment.&lt;br /&gt;
*Included TF.h.&lt;br /&gt;
*Passed thinfilm variables.&lt;br /&gt;
*Added WRITE_NODE_FORCE statements.&lt;br /&gt;
*Called InitSegSigbRem()&lt;br /&gt;
*Computed thinfilm&#039;s contribution to sigbRem.&lt;br /&gt;
*Added a call to LocalVirtualSegForces()&lt;br /&gt;
*When FULL_N2_FORCES, Added hook to zero sigbRem for adding in Yoffe stress. This is already done in the bulk code, but only with FEM.&lt;br /&gt;
*When FULL_N2_FORCES, added remote stress calculation for thinfilm in SetOneNodeForce().&lt;br /&gt;
*When NOT FULL_N2, added a hook to zero sigbRem for adding in Yoffe stress. This is already done in the bulk code, but only with FEM. This one was vectorized in the bulk code.&lt;br /&gt;
*Calculate PK force if _THINFILM, even if FMM is not enabled. This is done in the bulk code, but for FEM.&lt;br /&gt;
*Added thinfilm image stress to the segment&#039;s sigb. &lt;br /&gt;
&lt;br /&gt;
===ParadisStep.c===&lt;br /&gt;
*Added thinfilm variables to function definitions.&lt;br /&gt;
&lt;br /&gt;
===Param.c===&lt;br /&gt;
*Added modifications for _STACKINGFAULT.&lt;br /&gt;
*Initialized thinfilm variables.&lt;br /&gt;
&lt;br /&gt;
===Plot.c===&lt;br /&gt;
*Included Param.h and TF.h.&lt;br /&gt;
*Added plotting for thinfilm.&lt;br /&gt;
&lt;br /&gt;
===Remesh.c===&lt;br /&gt;
*Included TF.h&lt;br /&gt;
*Passed thinfilm variables.&lt;br /&gt;
*Added call to Thinfilm_Remesh().&lt;br /&gt;
&lt;br /&gt;
===RemeshRule_2.c===&lt;br /&gt;
*prevented thinfilm surface node from being removed.&lt;br /&gt;
&lt;br /&gt;
===Topology.c===&lt;br /&gt;
*Added modifications for _STACKINGFAULT.&lt;br /&gt;
*Included TF.h.&lt;br /&gt;
*Passed thinfilm variables.&lt;br /&gt;
*Handled combining pinned multinodes at the surface.&lt;br /&gt;
*Handled the splitting of surface nodes.&lt;br /&gt;
*Changed to THINFILM_SURFACE_NODE&lt;br /&gt;
&lt;br /&gt;
===TrapezoidIntegrator.c===&lt;br /&gt;
*Passed thinfilm variables.&lt;br /&gt;
*changed the print statement for thinfilm&lt;br /&gt;
&lt;br /&gt;
===SemiInfiniteSegSegForce.c===&lt;br /&gt;
*v2.5.1 now has this within the bulk code, but there appears to be some differences from the thinfilm code in v2.3.5.&lt;br /&gt;
*v2.5.1 bulk code currently only computes forces on fp3 and fp4. It zeros out forces on fp1 and does not compute fp2. v2.3.5 computed all four.&lt;br /&gt;
*Currently call the 2.3.5 functions SemiInfiniteSegSegForce2 and SpecialSemiInfiniteSegSegForce2.&lt;br /&gt;
&lt;br /&gt;
===Compute.c===&lt;br /&gt;
*Changed to SemiInfiniteSegSegForce2.&lt;br /&gt;
&lt;br /&gt;
===Util.c===&lt;br /&gt;
*LocateCell() has stopped retuning cellindex in v2.5.1 and calculates the results in a different way. I have temporarily made it calculated the old way for _THINFILM.&lt;br /&gt;
*Added function WRITE_NODE_FORCE.&lt;br /&gt;
*Changing LocateCell necessitates adding Util.h to the thinfilm libraries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ABCoeff.c===&lt;br /&gt;
*Unique to thinfilm&lt;br /&gt;
*Added Sylvie&#039;s virtual segment treatment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fourier_transforms.c===&lt;br /&gt;
*Unique to thinfilm&lt;br /&gt;
*Added Sylvie&#039;s virtual segment treatment.&lt;br /&gt;
&lt;br /&gt;
===TF_Main.c===&lt;br /&gt;
*Unique to thinfilm&lt;br /&gt;
*Added Sylvie&#039;s virtual segment treatment.&lt;br /&gt;
&lt;br /&gt;
===TF_Util.c===&lt;br /&gt;
*Unique to thinfilm&lt;br /&gt;
*Added Sylvie&#039;s virtual segment treatment.&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Thinfilm_change_log&amp;diff=5451</id>
		<title>Thinfilm change log</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Thinfilm_change_log&amp;diff=5451"/>
		<updated>2011-09-16T10:42:12Z</updated>

		<summary type="html">&lt;p&gt;Wcash: added more c files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Force.h===&lt;br /&gt;
*Used to be a part of ParadisProto.h in previous versions of the code.&lt;br /&gt;
*Added thinfilm variables to function definitions.&lt;br /&gt;
&lt;br /&gt;
===Home.h===&lt;br /&gt;
*Identical to original code. However, it is needed in the thinfilm Include directory for the code to compile correctly.&lt;br /&gt;
&lt;br /&gt;
===Node.h===&lt;br /&gt;
* Declared THINFILM_SURFACE_NODE = 6&lt;br /&gt;
&lt;br /&gt;
===Param.h===&lt;br /&gt;
*Added thinfilm variable declarations.&lt;br /&gt;
*Added _STACKINGFAULT variable.&lt;br /&gt;
&lt;br /&gt;
===ParadisProto.h===&lt;br /&gt;
*Added thinfilm variables to function definitions.&lt;br /&gt;
*Included TF.h.&lt;br /&gt;
*Added SemiInfiniteSegSegForce2 because of the differences between the SemiInfiniteSegSegForce in v2.3.5 cylinder code and the bulk code for v2.5.1&lt;br /&gt;
&lt;br /&gt;
===Topology.h===&lt;br /&gt;
*Added thinfilm variables to function definitions.&lt;br /&gt;
&lt;br /&gt;
===Util.h===&lt;br /&gt;
*Added cellIndex[3] to LocateCell() definition if _THINFILM&lt;br /&gt;
*Added WRITE_NODE_FORCE() if _THINFILM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AllSegmentStress.c===&lt;br /&gt;
*No longer contained in src in v2.5.1. &lt;br /&gt;
*The organization of FMlayer struct has changed. Code to get FMMcell should be:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 600px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cellID = EncodeFMCellIndex(layer-&amp;gt;lDim, cellIndex[0], cellIndex[1], cellIndex[2])&lt;br /&gt;
FMMcell = LookupFMCell(layer-&amp;gt;cellTable, cellID)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===AllYoffeStress.c===&lt;br /&gt;
*added Sylvie&#039;s virtual segment changes.&lt;br /&gt;
&lt;br /&gt;
===Collision.c===&lt;br /&gt;
*This code is now a calling function for PredictiveCollision.c or ProximityCollision.c&lt;br /&gt;
*Force collison to occur on surface&lt;br /&gt;
*Change SURFACE_NODE to THINFILM_SURFACE_NODE&lt;br /&gt;
&lt;br /&gt;
===CrossSlip.c===&lt;br /&gt;
*Now a handler function for CrossSlipBCC.c and CrossSlipFCC.c&lt;br /&gt;
*Passed thinfilm variables&lt;br /&gt;
&lt;br /&gt;
===CrossSlipBCC.c &amp;amp; CrossSlipFCC.c===&lt;br /&gt;
*THESE FUNCTIONS HAVE DRASTICALLY CHANGED IN v2.5.1. THE SECOND LOOP SHOULD PROBABLY BE UPDATED AT SOME POINT.&lt;br /&gt;
*Added second loop for surface nodes.&lt;br /&gt;
*Declared variables burg[], glidedir[][], and fnode[] because they are no longer part of src in v2.5.1&lt;br /&gt;
*Added nodepinned2().&lt;br /&gt;
*Need to be passed the thinfilm variables in order to give them to SetOneNodeForce().&lt;br /&gt;
&lt;br /&gt;
===DeltaPlasticStrain===&lt;br /&gt;
*Needs to be passed thinfilm variables to give them to DeltaPlasticStrain_BCC.c or DeltaPlasticStrain_FCC.c&lt;br /&gt;
&lt;br /&gt;
===DeltaPlasticStrain_BCC.c &amp;amp; DeltaPlasticStrain_BCC.c===&lt;br /&gt;
*Added modifications for _BENDING.&lt;br /&gt;
&lt;br /&gt;
===ForwardEulerIntegrator.c===&lt;br /&gt;
*Passed thinfilm variables.&lt;br /&gt;
&lt;br /&gt;
===Initialize.c===&lt;br /&gt;
*Added modifications for _STACKINGFAULT.&lt;br /&gt;
*Suppressed warnings about free surfaces when using thinfilm.&lt;br /&gt;
*Added simVol calculation for thinfilm.&lt;br /&gt;
&lt;br /&gt;
===InputSanity.c===&lt;br /&gt;
*Disabled failure if there are free surfaces and not using FMM with thinfilm.&lt;br /&gt;
&lt;br /&gt;
===LocalSegForces.c===&lt;br /&gt;
*Added modifications for _STACKINGFAULT.&lt;br /&gt;
*Added modifications for _BENDING.&lt;br /&gt;
*Added Sylvie&#039;s virtual segment treatment.&lt;br /&gt;
*Passed thinfilm variables.&lt;br /&gt;
*When using FULL_N2_FORCES added thinfilm remote forces.&lt;br /&gt;
*Added remote stress contribution from the thinfilm regardless of whether FMM is enabled&lt;br /&gt;
&lt;br /&gt;
===MobilityLaw_BCC_0b.c===&lt;br /&gt;
*Constrained thinfilm surface node velocity in the z-direction to be zero.&lt;br /&gt;
&lt;br /&gt;
===MobilityLaw_BCC_0.c===&lt;br /&gt;
*Added correction to BTotal for a surface node, because it is simply linked.&lt;br /&gt;
&lt;br /&gt;
===MobilityLaw_BCC_glide.c===&lt;br /&gt;
*Added correction to BTotal for a surface node, because it is simply linked.&lt;br /&gt;
*Added correction for a thinfilm&#039;s normal constraint.&lt;br /&gt;
&lt;br /&gt;
===MobilityLaw_FCC_0.c===&lt;br /&gt;
*Constrained thinfilm surface node velocity in the z-direction to be zero.&lt;br /&gt;
*Tried to add Laboratory coordinate system rotation (may need checked)&lt;br /&gt;
&lt;br /&gt;
===MobilityLaw_Relax.c===&lt;br /&gt;
*This code was significantly changed from v2.3.5 to v2.5.1 in the src (may need checked)&lt;br /&gt;
*Constrained thinfilm surface node velocity in the z-direction to be zero.&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Thinfilm_change_log&amp;diff=5450</id>
		<title>Thinfilm change log</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Thinfilm_change_log&amp;diff=5450"/>
		<updated>2011-09-16T10:01:59Z</updated>

		<summary type="html">&lt;p&gt;Wcash: added some c files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Force.h===&lt;br /&gt;
*Used to be a part of ParadisProto.h in previous versions of the code.&lt;br /&gt;
*Added thinfilm variables to function definitions.&lt;br /&gt;
&lt;br /&gt;
===Home.h===&lt;br /&gt;
*Identical to original code. However, it is needed in the thinfilm Include directory for the code to compile correctly.&lt;br /&gt;
&lt;br /&gt;
===Node.h===&lt;br /&gt;
* Declared THINFILM_SURFACE_NODE = 6&lt;br /&gt;
&lt;br /&gt;
===Param.h===&lt;br /&gt;
*Added thinfilm variable declarations.&lt;br /&gt;
*Added _STACKINGFAULT variable.&lt;br /&gt;
&lt;br /&gt;
===ParadisProto.h===&lt;br /&gt;
*Added thinfilm variables to function definitions.&lt;br /&gt;
*Included TF.h.&lt;br /&gt;
*Added SemiInfiniteSegSegForce2 because of the differences between the SemiInfiniteSegSegForce in v2.3.5 cylinder code and the bulk code for v2.5.1&lt;br /&gt;
&lt;br /&gt;
===Topology.h===&lt;br /&gt;
*Added thinfilm variables to function definitions.&lt;br /&gt;
&lt;br /&gt;
===Util.h===&lt;br /&gt;
*Added cellIndex[3] to LocateCell() definition if _THINFILM&lt;br /&gt;
*Added WRITE_NODE_FORCE() if _THINFILM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AllSegmentStress.c===&lt;br /&gt;
*No longer contained in src in v2.5.1. &lt;br /&gt;
*The organization of FMlayer struct has changed. Code to get FMMcell should be:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 600px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cellID = EncodeFMCellIndex(layer-&amp;gt;lDim, cellIndex[0], cellIndex[1], cellIndex[2])&lt;br /&gt;
FMMcell = LookupFMCell(layer-&amp;gt;cellTable, cellID)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===AllYoffeStress.c===&lt;br /&gt;
*added Sylvie&#039;s virtual segment changes.&lt;br /&gt;
&lt;br /&gt;
===Collision.c===&lt;br /&gt;
*This code is now a calling function for PredictiveCollision.c or ProximityCollision.c&lt;br /&gt;
*Force collison to occur on surface&lt;br /&gt;
*Change SURFACE_NODE to THINFILM_SURFACE_NODE&lt;br /&gt;
&lt;br /&gt;
===CrossSlip.c===&lt;br /&gt;
*Now a handler function for CrossSlipBCC.c and CrossSlipFCC.c&lt;br /&gt;
*Passed thinfilm variables&lt;br /&gt;
&lt;br /&gt;
===CrossSlipBCC.c &amp;amp; CrossSlipFCC.c===&lt;br /&gt;
*THESE FUNCTIONS HAVE DRASTICALLY CHANGED IN v2.5.1. THE SECOND LOOP SHOULD PROBABLY BE UPDATED AT SOME POINT.&lt;br /&gt;
*Added second loop for surface nodes&lt;br /&gt;
*Declared variables burg[], glidedir[][], and fnode[] because they are no longer part of src in v2.5.1&lt;br /&gt;
*added nodepinned2()&lt;br /&gt;
*Need to be passed the thinfilm variables in order to give them to SetOneNodeForce()&lt;br /&gt;
&lt;br /&gt;
===DeltaPlasticStrain===&lt;br /&gt;
*Needs to be passed thinfilm variables to give them to DeltaPlasticStrain_BCC.c or DeltaPlasticStrain_FCC.c&lt;br /&gt;
&lt;br /&gt;
===DeltaPlasticStrain_BCC.c &amp;amp; DeltaPlasticStrain_BCC.c===&lt;br /&gt;
*Added modifications for _BENDING&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Thinfilm_change_log&amp;diff=5449</id>
		<title>Thinfilm change log</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Thinfilm_change_log&amp;diff=5449"/>
		<updated>2011-09-16T00:12:53Z</updated>

		<summary type="html">&lt;p&gt;Wcash: added header files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Force.h===&lt;br /&gt;
*Used to be a part of ParadisProto.h in previous versions of the code.&lt;br /&gt;
*Added thinfilm variables to function definitions.&lt;br /&gt;
&lt;br /&gt;
===Home.h===&lt;br /&gt;
*Identical to original code. However, it is needed in the thinfilm Include directory for the code to compile correctly.&lt;br /&gt;
&lt;br /&gt;
===Node.h===&lt;br /&gt;
* Declared THINFILM_SURFACE_NODE = 6&lt;br /&gt;
&lt;br /&gt;
===Param.h===&lt;br /&gt;
*Added thinfilm variable declarations.&lt;br /&gt;
*Added _STACKINGFAULT variable.&lt;br /&gt;
&lt;br /&gt;
===ParadisProto.h===&lt;br /&gt;
*Added thinfilm variables to function definitions.&lt;br /&gt;
*Included TF.h.&lt;br /&gt;
*Added SemiInfiniteSegSegForce2 because of the differences between the SemiInfiniteSegSegForce in v2.3.5 cylinder code and the bulk code for v2.5.1&lt;br /&gt;
&lt;br /&gt;
===Topology.h===&lt;br /&gt;
*Added thinfilm variables to function definitions.&lt;br /&gt;
&lt;br /&gt;
===Util.h===&lt;br /&gt;
*Added cellIndex[3] to LocateCell() definition if _THINFILM&lt;br /&gt;
*Added WRITE_NODE_FORCE() if _THINFILM&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=ParaDiS_ThinFilm_Code_Manuals&amp;diff=5448</id>
		<title>ParaDiS ThinFilm Code Manuals</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=ParaDiS_ThinFilm_Code_Manuals&amp;diff=5448"/>
		<updated>2011-09-15T23:48:44Z</updated>

		<summary type="html">&lt;p&gt;Wcash: added thinfilm change log&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ Structure of the thinfilm code]]&lt;br /&gt;
&lt;br /&gt;
[[ Test cases for the thinfilm code ]]&lt;br /&gt;
&lt;br /&gt;
[[ case 1: One threading dislocation in the thinfilm code ]]&lt;br /&gt;
&lt;br /&gt;
[[ case 2: Loop in the thinfilm code ]]&lt;br /&gt;
&lt;br /&gt;
[[ Algorithms in the thinfilm code ]]&lt;br /&gt;
&lt;br /&gt;
[[ Thinfilm change log ]]&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Parallel_Cluster_Guides&amp;diff=5447</id>
		<title>Parallel Cluster Guides</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Parallel_Cluster_Guides&amp;diff=5447"/>
		<updated>2011-09-15T23:38:16Z</updated>

		<summary type="html">&lt;p&gt;Wcash: Added mc2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
=su-ahpcrc=&lt;br /&gt;
The default settings for MPI will cause the code to use GCC rather than the Intel compilers. To change this:&lt;br /&gt;
*EXTREMELY IMPORTANT: Ensure that nothing related to Intel has been added to your path in .bashrc and .bash_profile&lt;br /&gt;
*Run:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mpi-selector --query&lt;br /&gt;
default:mvapich2_intel-1.2&lt;br /&gt;
level:user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*If your result is something other than the above (version number may differ), execute:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mpi-selector --set mvapich2_intel-1.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*Log out and reconnect to the cluster&lt;br /&gt;
*If everything is correct, asking &amp;lt;tt&amp;gt;which mpicc&amp;lt;/tt&amp;gt; should yield:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ which mpicc&lt;br /&gt;
/usr/mpi/intel/mvapich2-1.2/bin/mpicc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*Add the following to makefile.sys, if not present:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 550px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
#&lt;br /&gt;
#    System type:  su-ahpcrc&lt;br /&gt;
#    &lt;br /&gt;
#    Stanford ME linux system using intel compilers&lt;br /&gt;
#&lt;br /&gt;
########################################################&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
#    Define parallel and serial compilers and compiler flags&lt;br /&gt;
#    and set the default compiler based on the execution mode&lt;br /&gt;
#    (defined by user in makefile)&lt;br /&gt;
#&lt;br /&gt;
CC_PARALLEL.su-ahpcrc       = mpicc&lt;br /&gt;
CPP_PARALLEL.su-ahpcrc      = mpicxx&lt;br /&gt;
CCFLAG_PARALLEL.su-ahpcrc   = -longdouble -DLONGDOUBLE -DPARALLEL=1 &lt;br /&gt;
CPPFLAG_PARALLEL.su-ahpcrc  = &lt;br /&gt;
&lt;br /&gt;
CC_SERIAL.su-ahpcrc         = icc&lt;br /&gt;
CPP_SERIAL.su-ahpcrc        = icpc&lt;br /&gt;
CCFLAG_SERIAL.su-ahpcrc     = -DLONGDOUBLE&lt;br /&gt;
CPPFLAG_SERIAL.su-ahpcrc    = &lt;br /&gt;
&lt;br /&gt;
F90.su-ahpcrc               = ifort&lt;br /&gt;
F90_OPTS.su-ahpcrc          = &lt;br /&gt;
F90_LIB.su-ahpcrc           = -L/opt/intel/fce/10.1.015/lib -lifcore&lt;br /&gt;
&lt;br /&gt;
CC.su-ahpcrc                = $(CC_$(MODE).su-ahpcrc)&lt;br /&gt;
CPP.su-ahpcrc               = $(CPP_$(MODE).su-ahpcrc)&lt;br /&gt;
CCFLAG.su-ahpcrc            = $(CCFLAG_$(MODE).su-ahpcrc)&lt;br /&gt;
CPPFLAG.su-ahpcrc           = $(CPPFLAG_$(MODE).su-ahpcrc)&lt;br /&gt;
&lt;br /&gt;
XLIB_LIBDIR.su-ahpcrc       = /usr/X11R6/lib64&lt;br /&gt;
XLIB_LIB.su-ahpcrc          = -L$(XLIB_LIBDIR.su-ahpcrc) -lX11 -lpthread&lt;br /&gt;
XLIB_INCS.su-ahpcrc         =&lt;br /&gt;
&lt;br /&gt;
MPI_LIBDIR.su-ahpcrc        = -L/export/apps/mvapich/intel/lib&lt;br /&gt;
MPI_LIB.su-ahpcrc           = -lmpich&lt;br /&gt;
MPI_INCS.su-ahpcrc          = &lt;br /&gt;
&lt;br /&gt;
OPENMP_FLAG.su-ahpcrc       = -openmp&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
#    Identify any additional libraries and paths needed for compilation&lt;br /&gt;
#    on this system type&lt;br /&gt;
#&lt;br /&gt;
LIB_PARALLEL.su-ahpcrc      =&lt;br /&gt;
INCS_PARALLEL.su-ahpcrc     =&lt;br /&gt;
&lt;br /&gt;
LIB_SERIAL.su-ahpcrc        =-L../lib&lt;br /&gt;
INCS_SERIAL.su-ahpcrc       =&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*When compiling the code, seeing &amp;lt;tt&amp;gt;icc&amp;lt;/tt&amp;gt; and comments about vectorizing loops such as &amp;quot;&amp;lt;tt&amp;gt;StressTableGen.c(357): (col. 37) remark: LOOP WAS VECTORIZED.&amp;lt;/tt&amp;gt;&amp;quot; are signs that the Intel compilers were used.&lt;br /&gt;
*Use a PBS script similar to the following (&amp;lt;tt&amp;gt;/opt/mpiexec/bin/mpiexec --comm=pmi&amp;lt;/tt&amp;gt; is the only important difference):&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 600px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#PBS -N ParaDiS&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
#PBS -l nodes=1:ppn=8,walltime=24:00:00&lt;br /&gt;
#PBS -V&lt;br /&gt;
&lt;br /&gt;
### ---------------------------------------&lt;br /&gt;
### BEGINNING OF EXECUTION&lt;br /&gt;
### ---------------------------------------&lt;br /&gt;
&lt;br /&gt;
echo The master node of this job is `hostname`&lt;br /&gt;
echo The working directory is `echo $PBS_O_WORKDIR`&lt;br /&gt;
echo This job runs on the following nodes:&lt;br /&gt;
echo `cat $PBS_NODEFILE`&lt;br /&gt;
&lt;br /&gt;
ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
&lt;br /&gt;
### end of information preamble&lt;br /&gt;
&lt;br /&gt;
cd $PBS_O_WORKDIR&lt;br /&gt;
&lt;br /&gt;
echo $PWD&lt;br /&gt;
&lt;br /&gt;
PARADIS_O_DIR=&amp;quot;tests/fmm_8cpu_results&amp;quot;&lt;br /&gt;
mkdir -p $PARADIS_O_DIR&lt;br /&gt;
cmd=&amp;quot;/opt/mpiexec/bin/mpiexec --comm=pmi -np $ncpu bin/paradis tests/fmm_8cpu.ctrl&amp;quot;&lt;br /&gt;
$cmd &amp;gt;&amp;amp; $PARADIS_O_DIR/paradis.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*Submit the job using a command similar to:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ qsub paradis.pbs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=mc2=&lt;br /&gt;
By default, you will not have access to Intel compilers or MPI. They need to be added with the module command.&lt;br /&gt;
*EXTREMELY IMPORTANT: Ensure that nothing related to Intel has been added to your path in .bashrc and .bash_profile&lt;br /&gt;
*To see the list of available modules use: &amp;lt;tt&amp;gt;module avial&amp;lt;/tt&amp;gt;&lt;br /&gt;
*To temporarily add the modules for your current session you can use &amp;lt;tt&amp;gt;module add&amp;lt;/tt&amp;gt;&lt;br /&gt;
*To permanently add modules issue a command similar to this:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 500px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ module purge&lt;br /&gt;
$ module initrm intel/intel-11 mvapich/1.2rc1-intel-11-dell-gen2&lt;br /&gt;
$ module initadd intel/intel-12 mvapich2/1.7rc1-intel-12&lt;br /&gt;
$ module load intel/intel-12 mvapich2/1.7rc1-intel-12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Parallel_Cluster_Guides&amp;diff=5292</id>
		<title>Parallel Cluster Guides</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Parallel_Cluster_Guides&amp;diff=5292"/>
		<updated>2011-08-17T00:54:14Z</updated>

		<summary type="html">&lt;p&gt;Wcash: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
=su-ahpcrc=&lt;br /&gt;
The default settings for MPI will cause the code to use GCC rather than the Intel compilers. To change this:&lt;br /&gt;
*EXTREMELY IMPORTANT: Ensure that nothing related to Intel has been added to your path in .bashrc and .bash_profile&lt;br /&gt;
*Run:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mpi-selector --query&lt;br /&gt;
default:mvapich2_intel-1.2&lt;br /&gt;
level:user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*If your result is something other than the above (version number may differ), execute:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mpi-selector --set mvapich2_intel-1.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*Log out and reconnect to the cluster&lt;br /&gt;
*If everything is correct, asking &amp;lt;tt&amp;gt;which mpicc&amp;lt;/tt&amp;gt; should yield:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ which mpicc&lt;br /&gt;
/usr/mpi/intel/mvapich2-1.2/bin/mpicc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*Add the following to makefile.sys, if not present:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 550px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
#&lt;br /&gt;
#    System type:  su-ahpcrc&lt;br /&gt;
#    &lt;br /&gt;
#    Stanford ME linux system using intel compilers&lt;br /&gt;
#&lt;br /&gt;
########################################################&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
#    Define parallel and serial compilers and compiler flags&lt;br /&gt;
#    and set the default compiler based on the execution mode&lt;br /&gt;
#    (defined by user in makefile)&lt;br /&gt;
#&lt;br /&gt;
CC_PARALLEL.su-ahpcrc       = mpicc&lt;br /&gt;
CPP_PARALLEL.su-ahpcrc      = mpicxx&lt;br /&gt;
CCFLAG_PARALLEL.su-ahpcrc   = -longdouble -DLONGDOUBLE -DPARALLEL=1 &lt;br /&gt;
CPPFLAG_PARALLEL.su-ahpcrc  = &lt;br /&gt;
&lt;br /&gt;
CC_SERIAL.su-ahpcrc         = icc&lt;br /&gt;
CPP_SERIAL.su-ahpcrc        = icpc&lt;br /&gt;
CCFLAG_SERIAL.su-ahpcrc     = -DLONGDOUBLE&lt;br /&gt;
CPPFLAG_SERIAL.su-ahpcrc    = &lt;br /&gt;
&lt;br /&gt;
F90.su-ahpcrc               = ifort&lt;br /&gt;
F90_OPTS.su-ahpcrc          = &lt;br /&gt;
F90_LIB.su-ahpcrc           = -L/opt/intel/fce/10.1.015/lib -lifcore&lt;br /&gt;
&lt;br /&gt;
CC.su-ahpcrc                = $(CC_$(MODE).su-ahpcrc)&lt;br /&gt;
CPP.su-ahpcrc               = $(CPP_$(MODE).su-ahpcrc)&lt;br /&gt;
CCFLAG.su-ahpcrc            = $(CCFLAG_$(MODE).su-ahpcrc)&lt;br /&gt;
CPPFLAG.su-ahpcrc           = $(CPPFLAG_$(MODE).su-ahpcrc)&lt;br /&gt;
&lt;br /&gt;
XLIB_LIBDIR.su-ahpcrc       = /usr/X11R6/lib64&lt;br /&gt;
XLIB_LIB.su-ahpcrc          = -L$(XLIB_LIBDIR.su-ahpcrc) -lX11 -lpthread&lt;br /&gt;
XLIB_INCS.su-ahpcrc         =&lt;br /&gt;
&lt;br /&gt;
MPI_LIBDIR.su-ahpcrc        = -L/export/apps/mvapich/intel/lib&lt;br /&gt;
MPI_LIB.su-ahpcrc           = -lmpich&lt;br /&gt;
MPI_INCS.su-ahpcrc          = &lt;br /&gt;
&lt;br /&gt;
OPENMP_FLAG.su-ahpcrc       = -openmp&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
#    Identify any additional libraries and paths needed for compilation&lt;br /&gt;
#    on this system type&lt;br /&gt;
#&lt;br /&gt;
LIB_PARALLEL.su-ahpcrc      =&lt;br /&gt;
INCS_PARALLEL.su-ahpcrc     =&lt;br /&gt;
&lt;br /&gt;
LIB_SERIAL.su-ahpcrc        =-L../lib&lt;br /&gt;
INCS_SERIAL.su-ahpcrc       =&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*When compiling the code, seeing &amp;lt;tt&amp;gt;icc&amp;lt;/tt&amp;gt; and comments about vectorizing loops such as &amp;quot;&amp;lt;tt&amp;gt;StressTableGen.c(357): (col. 37) remark: LOOP WAS VECTORIZED.&amp;lt;/tt&amp;gt;&amp;quot; are signs that the Intel compilers were used.&lt;br /&gt;
*Use a PBS script similar to the following (&amp;lt;tt&amp;gt;/opt/mpiexec/bin/mpiexec --comm=pmi&amp;lt;/tt&amp;gt; is the only important difference):&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 600px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#PBS -N ParaDiS&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
#PBS -l nodes=1:ppn=8,walltime=24:00:00&lt;br /&gt;
#PBS -V&lt;br /&gt;
&lt;br /&gt;
### ---------------------------------------&lt;br /&gt;
### BEGINNING OF EXECUTION&lt;br /&gt;
### ---------------------------------------&lt;br /&gt;
&lt;br /&gt;
echo The master node of this job is `hostname`&lt;br /&gt;
echo The working directory is `echo $PBS_O_WORKDIR`&lt;br /&gt;
echo This job runs on the following nodes:&lt;br /&gt;
echo `cat $PBS_NODEFILE`&lt;br /&gt;
&lt;br /&gt;
ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
&lt;br /&gt;
### end of information preamble&lt;br /&gt;
&lt;br /&gt;
cd $PBS_O_WORKDIR&lt;br /&gt;
&lt;br /&gt;
echo $PWD&lt;br /&gt;
&lt;br /&gt;
PARADIS_O_DIR=&amp;quot;tests/fmm_8cpu_results&amp;quot;&lt;br /&gt;
mkdir -p $PARADIS_O_DIR&lt;br /&gt;
cmd=&amp;quot;/opt/mpiexec/bin/mpiexec --comm=pmi -np $ncpu bin/paradis tests/fmm_8cpu.ctrl&amp;quot;&lt;br /&gt;
$cmd &amp;gt;&amp;amp; $PARADIS_O_DIR/paradis.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*Submit the job using a command similar to:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ qsub paradis.pbs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Parallel_Cluster_Guides&amp;diff=5291</id>
		<title>Parallel Cluster Guides</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Parallel_Cluster_Guides&amp;diff=5291"/>
		<updated>2011-08-17T00:50:31Z</updated>

		<summary type="html">&lt;p&gt;Wcash: added more details about su-ahpcrc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
=su-ahpcrc=&lt;br /&gt;
The default settings for MPI will cause the code to use GCC rather than the Intel compilers. To change this:&lt;br /&gt;
*EXTREMELY IMPORTANT: Ensure that nothing related to Intel has been added to your path in .bashrc and .bash_profile&lt;br /&gt;
*Run:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mpi-selector --query&lt;br /&gt;
default:mvapich2_intel-1.2&lt;br /&gt;
level:user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*If your result is something other than the above (version number may different), execute:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mpi-selector --set mvapich2_intel-1.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*Log out and reconnect to the cluster&lt;br /&gt;
*If everything is correct, asking &amp;lt;tt&amp;gt;which mpicc&amp;lt;/tt&amp;gt; should yield:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ which mpicc&lt;br /&gt;
/usr/mpi/intel/mvapich2-1.2/bin/mpicc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*Add the following to makefile.sys, if not present:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 550px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
#&lt;br /&gt;
#    System type:  su-ahpcrc&lt;br /&gt;
#    &lt;br /&gt;
#    Stanford ME linux system using intel compilers&lt;br /&gt;
#&lt;br /&gt;
########################################################&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
#    Define parallel and serial compilers and compiler flags&lt;br /&gt;
#    and set the default compiler based on the execution mode&lt;br /&gt;
#    (defined by user in makefile)&lt;br /&gt;
#&lt;br /&gt;
CC_PARALLEL.su-ahpcrc       = mpicc&lt;br /&gt;
CPP_PARALLEL.su-ahpcrc      = mpicxx&lt;br /&gt;
CCFLAG_PARALLEL.su-ahpcrc   = -longdouble -DLONGDOUBLE -DPARALLEL=1 &lt;br /&gt;
CPPFLAG_PARALLEL.su-ahpcrc  = &lt;br /&gt;
&lt;br /&gt;
CC_SERIAL.su-ahpcrc         = icc&lt;br /&gt;
CPP_SERIAL.su-ahpcrc        = icpc&lt;br /&gt;
CCFLAG_SERIAL.su-ahpcrc     = -DLONGDOUBLE&lt;br /&gt;
CPPFLAG_SERIAL.su-ahpcrc    = &lt;br /&gt;
&lt;br /&gt;
F90.su-ahpcrc               = ifort&lt;br /&gt;
F90_OPTS.su-ahpcrc          = &lt;br /&gt;
F90_LIB.su-ahpcrc           = -L/opt/intel/fce/10.1.015/lib -lifcore&lt;br /&gt;
&lt;br /&gt;
CC.su-ahpcrc                = $(CC_$(MODE).su-ahpcrc)&lt;br /&gt;
CPP.su-ahpcrc               = $(CPP_$(MODE).su-ahpcrc)&lt;br /&gt;
CCFLAG.su-ahpcrc            = $(CCFLAG_$(MODE).su-ahpcrc)&lt;br /&gt;
CPPFLAG.su-ahpcrc           = $(CPPFLAG_$(MODE).su-ahpcrc)&lt;br /&gt;
&lt;br /&gt;
XLIB_LIBDIR.su-ahpcrc       = /usr/X11R6/lib64&lt;br /&gt;
XLIB_LIB.su-ahpcrc          = -L$(XLIB_LIBDIR.su-ahpcrc) -lX11 -lpthread&lt;br /&gt;
XLIB_INCS.su-ahpcrc         =&lt;br /&gt;
&lt;br /&gt;
MPI_LIBDIR.su-ahpcrc        = -L/export/apps/mvapich/intel/lib&lt;br /&gt;
MPI_LIB.su-ahpcrc           = -lmpich&lt;br /&gt;
MPI_INCS.su-ahpcrc          = &lt;br /&gt;
&lt;br /&gt;
OPENMP_FLAG.su-ahpcrc       = -openmp&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
#    Identify any additional libraries and paths needed for compilation&lt;br /&gt;
#    on this system type&lt;br /&gt;
#&lt;br /&gt;
LIB_PARALLEL.su-ahpcrc      =&lt;br /&gt;
INCS_PARALLEL.su-ahpcrc     =&lt;br /&gt;
&lt;br /&gt;
LIB_SERIAL.su-ahpcrc        =-L../lib&lt;br /&gt;
INCS_SERIAL.su-ahpcrc       =&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*When compiling the code, seeing &amp;lt;tt&amp;gt;icc&amp;lt;/tt&amp;gt; and comments about vectorizing loops such as &amp;quot;&amp;lt;tt&amp;gt;StressTableGen.c(357): (col. 37) remark: LOOP WAS VECTORIZED.&amp;lt;/tt&amp;gt;&amp;quot; are signs that the Intel compilers were used.&lt;br /&gt;
*Use a PBS script similar to the following (&amp;lt;tt&amp;gt;/opt/mpiexec/bin/mpiexec --comm=pmi&amp;lt;/tt&amp;gt; is the only important difference):&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 600px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#PBS -N ParaDiS&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
#PBS -l nodes=1:ppn=8,walltime=24:00:00&lt;br /&gt;
#PBS -V&lt;br /&gt;
&lt;br /&gt;
### ---------------------------------------&lt;br /&gt;
### BEGINNING OF EXECUTION&lt;br /&gt;
### ---------------------------------------&lt;br /&gt;
&lt;br /&gt;
echo The master node of this job is `hostname`&lt;br /&gt;
echo The working directory is `echo $PBS_O_WORKDIR`&lt;br /&gt;
echo This job runs on the following nodes:&lt;br /&gt;
echo `cat $PBS_NODEFILE`&lt;br /&gt;
&lt;br /&gt;
ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
&lt;br /&gt;
### end of information preamble&lt;br /&gt;
&lt;br /&gt;
cd $PBS_O_WORKDIR&lt;br /&gt;
&lt;br /&gt;
echo $PWD&lt;br /&gt;
&lt;br /&gt;
PARADIS_O_DIR=&amp;quot;tests/fmm_8cpu_results&amp;quot;&lt;br /&gt;
mkdir -p $PARADIS_O_DIR&lt;br /&gt;
cmd=&amp;quot;/opt/mpiexec/bin/mpiexec --comm=pmi -np $ncpu bin/paradis tests/fmm_8cpu.ctrl&amp;quot;&lt;br /&gt;
$cmd &amp;gt;&amp;amp; $PARADIS_O_DIR/paradis.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*Submit the job using a command similar to:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ qsub paradis.pbs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Parallel_Cluster_Guides&amp;diff=5290</id>
		<title>Parallel Cluster Guides</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Parallel_Cluster_Guides&amp;diff=5290"/>
		<updated>2011-08-17T00:40:30Z</updated>

		<summary type="html">&lt;p&gt;Wcash: reformatted page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
=su-ahpcrc=&lt;br /&gt;
The default settings for MPI will cause the code to use GCC rather than the Intel compilers. To change this:&lt;br /&gt;
*EXTREMELY IMPORTANT: Ensure that nothing related to Intel has been added to your path in .bashrc and .bash_profile&lt;br /&gt;
*Run:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mpi-selector --query&lt;br /&gt;
default:mvapich2_intel-1.2&lt;br /&gt;
level:user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*If your result is something other than the above (version number may different), execute:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mpi-selector --set mvapich2_intel-1.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*If not present, add the following to makefile.sys:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 550px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
#&lt;br /&gt;
#    System type:  su-ahpcrc&lt;br /&gt;
#    &lt;br /&gt;
#    Stanford ME linux system using intel compilers&lt;br /&gt;
#&lt;br /&gt;
########################################################&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
#    Define parallel and serial compilers and compiler flags&lt;br /&gt;
#    and set the default compiler based on the execution mode&lt;br /&gt;
#    (defined by user in makefile)&lt;br /&gt;
#&lt;br /&gt;
CC_PARALLEL.su-ahpcrc       = mpicc&lt;br /&gt;
CPP_PARALLEL.su-ahpcrc      = mpicxx&lt;br /&gt;
CCFLAG_PARALLEL.su-ahpcrc   = -longdouble -DLONGDOUBLE -DPARALLEL=1 &lt;br /&gt;
CPPFLAG_PARALLEL.su-ahpcrc  = &lt;br /&gt;
&lt;br /&gt;
CC_SERIAL.su-ahpcrc         = icc&lt;br /&gt;
CPP_SERIAL.su-ahpcrc        = icpc&lt;br /&gt;
CCFLAG_SERIAL.su-ahpcrc     = -DLONGDOUBLE&lt;br /&gt;
CPPFLAG_SERIAL.su-ahpcrc    = &lt;br /&gt;
&lt;br /&gt;
F90.su-ahpcrc               = ifort&lt;br /&gt;
F90_OPTS.su-ahpcrc          = &lt;br /&gt;
F90_LIB.su-ahpcrc           = -L/opt/intel/fce/10.1.015/lib -lifcore&lt;br /&gt;
&lt;br /&gt;
CC.su-ahpcrc                = $(CC_$(MODE).su-ahpcrc)&lt;br /&gt;
CPP.su-ahpcrc               = $(CPP_$(MODE).su-ahpcrc)&lt;br /&gt;
CCFLAG.su-ahpcrc            = $(CCFLAG_$(MODE).su-ahpcrc)&lt;br /&gt;
CPPFLAG.su-ahpcrc           = $(CPPFLAG_$(MODE).su-ahpcrc)&lt;br /&gt;
&lt;br /&gt;
XLIB_LIBDIR.su-ahpcrc       = /usr/X11R6/lib64&lt;br /&gt;
XLIB_LIB.su-ahpcrc          = -L$(XLIB_LIBDIR.su-ahpcrc) -lX11 -lpthread&lt;br /&gt;
XLIB_INCS.su-ahpcrc         =&lt;br /&gt;
&lt;br /&gt;
MPI_LIBDIR.su-ahpcrc        = -L/export/apps/mvapich/intel/lib&lt;br /&gt;
MPI_LIB.su-ahpcrc           = -lmpich&lt;br /&gt;
MPI_INCS.su-ahpcrc          = &lt;br /&gt;
&lt;br /&gt;
OPENMP_FLAG.su-ahpcrc       = -openmp&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
#    Identify any additional libraries and paths needed for compilation&lt;br /&gt;
#    on this system type&lt;br /&gt;
#&lt;br /&gt;
LIB_PARALLEL.su-ahpcrc      =&lt;br /&gt;
INCS_PARALLEL.su-ahpcrc     =&lt;br /&gt;
&lt;br /&gt;
LIB_SERIAL.su-ahpcrc        =-L../lib&lt;br /&gt;
INCS_SERIAL.su-ahpcrc       =&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*Use a PBS script similar to the following (&amp;lt;tt&amp;gt;/opt/mpiexec/bin/mpiexec --comm=pmi&amp;lt;/tt&amp;gt; is the only important difference):&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 600px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#PBS -N ParaDiS&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
#PBS -l nodes=1:ppn=8,walltime=24:00:00&lt;br /&gt;
#PBS -V&lt;br /&gt;
&lt;br /&gt;
### ---------------------------------------&lt;br /&gt;
### BEGINNING OF EXECUTION&lt;br /&gt;
### ---------------------------------------&lt;br /&gt;
&lt;br /&gt;
echo The master node of this job is `hostname`&lt;br /&gt;
echo The working directory is `echo $PBS_O_WORKDIR`&lt;br /&gt;
echo This job runs on the following nodes:&lt;br /&gt;
echo `cat $PBS_NODEFILE`&lt;br /&gt;
&lt;br /&gt;
ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
&lt;br /&gt;
### end of information preamble&lt;br /&gt;
&lt;br /&gt;
cd $PBS_O_WORKDIR&lt;br /&gt;
&lt;br /&gt;
echo $PWD&lt;br /&gt;
&lt;br /&gt;
PARADIS_O_DIR=&amp;quot;tests/fmm_8cpu_results&amp;quot;&lt;br /&gt;
mkdir -p $PARADIS_O_DIR&lt;br /&gt;
cmd=&amp;quot;/opt/mpiexec/bin/mpiexec --comm=pmi -np $ncpu bin/paradis tests/fmm_8cpu.ctrl&amp;quot;&lt;br /&gt;
$cmd &amp;gt;&amp;amp; $PARADIS_O_DIR/paradis.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*Submit the job using a command similar to:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ qsub paradis.pbs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Parallel_Cluster_Guides&amp;diff=5289</id>
		<title>Parallel Cluster Guides</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Parallel_Cluster_Guides&amp;diff=5289"/>
		<updated>2011-08-17T00:37:08Z</updated>

		<summary type="html">&lt;p&gt;Wcash: added guide for su-ahpcrc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Parallel Cluster Installation Guides=&lt;br /&gt;
----&lt;br /&gt;
__TOC__&lt;br /&gt;
==su-ahpcrc==&lt;br /&gt;
The default settings for MPI will cause the code to use GCC rather than the Intel compilers. To change this:&lt;br /&gt;
*Ensure that nothing related has been added to your path in .bashrc and .bash_profile&lt;br /&gt;
*Run:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mpi-selector --query&lt;br /&gt;
default:mvapich2_intel-1.2&lt;br /&gt;
level:user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*If your result is something other than the above (version number may different), execute:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mpi-selector --set mvapich2_intel-1.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*If not present, add the following to makefile.sys:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 550px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
########################################################&lt;br /&gt;
#&lt;br /&gt;
#    System type:  su-ahpcrc&lt;br /&gt;
#    &lt;br /&gt;
#    Stanford ME linux system using intel compilers&lt;br /&gt;
#&lt;br /&gt;
########################################################&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
#    Define parallel and serial compilers and compiler flags&lt;br /&gt;
#    and set the default compiler based on the execution mode&lt;br /&gt;
#    (defined by user in makefile)&lt;br /&gt;
#&lt;br /&gt;
CC_PARALLEL.su-ahpcrc       = mpicc&lt;br /&gt;
CPP_PARALLEL.su-ahpcrc      = mpicxx&lt;br /&gt;
CCFLAG_PARALLEL.su-ahpcrc   = -longdouble -DLONGDOUBLE -DPARALLEL=1 &lt;br /&gt;
CPPFLAG_PARALLEL.su-ahpcrc  = &lt;br /&gt;
&lt;br /&gt;
CC_SERIAL.su-ahpcrc         = icc&lt;br /&gt;
CPP_SERIAL.su-ahpcrc        = icpc&lt;br /&gt;
CCFLAG_SERIAL.su-ahpcrc     = -DLONGDOUBLE&lt;br /&gt;
CPPFLAG_SERIAL.su-ahpcrc    = &lt;br /&gt;
&lt;br /&gt;
F90.su-ahpcrc               = ifort&lt;br /&gt;
F90_OPTS.su-ahpcrc          = &lt;br /&gt;
F90_LIB.su-ahpcrc           = -L/opt/intel/fce/10.1.015/lib -lifcore&lt;br /&gt;
&lt;br /&gt;
CC.su-ahpcrc                = $(CC_$(MODE).su-ahpcrc)&lt;br /&gt;
CPP.su-ahpcrc               = $(CPP_$(MODE).su-ahpcrc)&lt;br /&gt;
CCFLAG.su-ahpcrc            = $(CCFLAG_$(MODE).su-ahpcrc)&lt;br /&gt;
CPPFLAG.su-ahpcrc           = $(CPPFLAG_$(MODE).su-ahpcrc)&lt;br /&gt;
&lt;br /&gt;
XLIB_LIBDIR.su-ahpcrc       = /usr/X11R6/lib64&lt;br /&gt;
XLIB_LIB.su-ahpcrc          = -L$(XLIB_LIBDIR.su-ahpcrc) -lX11 -lpthread&lt;br /&gt;
XLIB_INCS.su-ahpcrc         =&lt;br /&gt;
&lt;br /&gt;
MPI_LIBDIR.su-ahpcrc        = -L/export/apps/mvapich/intel/lib&lt;br /&gt;
MPI_LIB.su-ahpcrc           = -lmpich&lt;br /&gt;
MPI_INCS.su-ahpcrc          = &lt;br /&gt;
&lt;br /&gt;
OPENMP_FLAG.su-ahpcrc       = -openmp&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
#    Identify any additional libraries and paths needed for compilation&lt;br /&gt;
#    on this system type&lt;br /&gt;
#&lt;br /&gt;
LIB_PARALLEL.su-ahpcrc      =&lt;br /&gt;
INCS_PARALLEL.su-ahpcrc     =&lt;br /&gt;
&lt;br /&gt;
LIB_SERIAL.su-ahpcrc        =-L../lib&lt;br /&gt;
INCS_SERIAL.su-ahpcrc       =&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*Use a PBS script similar to the following (&amp;lt;tt&amp;gt;/opt/mpiexec/bin/mpiexec --comm=pmi&amp;lt;/tt&amp;gt; is the only important difference):&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 600px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#PBS -N ParaDiS&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
#PBS -l nodes=1:ppn=8,walltime=24:00:00&lt;br /&gt;
#PBS -V&lt;br /&gt;
&lt;br /&gt;
### ---------------------------------------&lt;br /&gt;
### BEGINNING OF EXECUTION&lt;br /&gt;
### ---------------------------------------&lt;br /&gt;
&lt;br /&gt;
echo The master node of this job is `hostname`&lt;br /&gt;
echo The working directory is `echo $PBS_O_WORKDIR`&lt;br /&gt;
echo This job runs on the following nodes:&lt;br /&gt;
echo `cat $PBS_NODEFILE`&lt;br /&gt;
&lt;br /&gt;
ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
&lt;br /&gt;
### end of information preamble&lt;br /&gt;
&lt;br /&gt;
cd $PBS_O_WORKDIR&lt;br /&gt;
&lt;br /&gt;
echo $PWD&lt;br /&gt;
&lt;br /&gt;
PARADIS_O_DIR=&amp;quot;tests/fmm_8cpu_results&amp;quot;&lt;br /&gt;
mkdir -p $PARADIS_O_DIR&lt;br /&gt;
cmd=&amp;quot;/opt/mpiexec/bin/mpiexec --comm=pmi -np $ncpu bin/paradis tests/fmm_8cpu.ctrl&amp;quot;&lt;br /&gt;
$cmd &amp;gt;&amp;amp; $PARADIS_O_DIR/paradis.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*Submit the job using a command similar to:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: 1em; width: 400px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ qsub paradis.pbs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=ParaDiS_Manuals&amp;diff=5288</id>
		<title>ParaDiS Manuals</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=ParaDiS_Manuals&amp;diff=5288"/>
		<updated>2011-08-17T00:19:46Z</updated>

		<summary type="html">&lt;p&gt;Wcash: added parallel cluster guides link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt; [[Overview of ParaDiS 2.2]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt; [[Before You Start: Known Bugs in ParaDiS]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt; [[M01 How to Obtain and Run ParaDiS]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt; [[M02 Straight dislocations]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt; [[M03 Frank-Read Source]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt; [[M04 Binary Junction]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt; [[Create Straight Dislocations for ParaDiS Input]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt; [[Programming tips for ParaDiS]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt; [[ParaDiS FAQs]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt; [[ Cross-slip in ParaDiS]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt; [[ParaDiS Manual Updated]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt; [[Parallel Cluster Guides]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/UL&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=How_to_compile_Qbox&amp;diff=5098</id>
		<title>How to compile Qbox</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=How_to_compile_Qbox&amp;diff=5098"/>
		<updated>2011-03-08T08:15:52Z</updated>

		<summary type="html">&lt;p&gt;Wcash: fixed links to files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(written by Alfredo Correa, with contributions of Wei Cai)&lt;br /&gt;
&lt;br /&gt;
In this document, we describe how to compile QBOX program on wcr.stanford.edu (Linux parallel cluster) and &lt;br /&gt;
other systems. &lt;br /&gt;
&lt;br /&gt;
I designed this wiki such that you could in principle copy and paste the code part in your terminal. Custom files are linked from this wiki and can be downloaded from the command line with &#039;wget&#039;. I encourage to do this to other writers of the group wiki. In any case, be aware of error messages, please report if something it is not working from this instructions or edit this wiki for other obvious typos.&lt;br /&gt;
&lt;br /&gt;
== General Remarks ==&lt;br /&gt;
&lt;br /&gt;
Based on the [http://eslab.ucdavis.edu/software/qbox/build.htm Qbox build instructions page] we will give some additional details. The difficult part of the installation is to correctly build the dependence libraries.&lt;br /&gt;
In particular &lt;br /&gt;
&lt;br /&gt;
# BLAS and Lapack http://math-atlas.sourceforge.net and http://www.netlib.org/lapack/&lt;br /&gt;
# BLACS http://www.netlib.org/blacs&lt;br /&gt;
# ScaLAPACK http://www.netlib.org/scalapack&lt;br /&gt;
# FFTW 2.1.5 http://www.fftw.org&lt;br /&gt;
# Apache Xerces-C http://xerces.apache.org/xerces-c&lt;br /&gt;
&lt;br /&gt;
these libraries will have to be installed in your user space directory. To achieve this I use to create a directory called ~/usr where libraries and header files will stay:&lt;br /&gt;
&lt;br /&gt;
  mkdir -p $HOME/usr&lt;br /&gt;
  mkdir -p $HOME/usr/local&lt;br /&gt;
&lt;br /&gt;
I also use to download software packages to ~/soft. This will make easier to establish absolute compilation paths for BLACS and Scalapack which have a non-standard installation procedure.&lt;br /&gt;
&lt;br /&gt;
  mkdir $HOME/soft&lt;br /&gt;
&lt;br /&gt;
This document does not cover the usage of Qbox but just the compilation, a manual of Qbox is provided in the [http://eslab.ucdavis.edu/software/qbox/index.htm Qbox home page].&lt;br /&gt;
&lt;br /&gt;
First step is to choose a compiler and stick to it for compiling the different libraries and the final Qbox executable. In systems where gcc-4 and gcc-3 coexist this can be challenging since different forms of invoking a compiler can switch from one compiler set to the other. For example in RedHat, f77 calls gcc-3 while f90 or gfortran calls gcc-4. The issue is worst when calling the MPI compiler wrappers. In any case run the compiler with the -v option to make sure the same version of gcc is used across all the steps.  (A common mistake is to mix g77 and gfortran.  They actually belong to different versions of gcc.)&lt;br /&gt;
&lt;br /&gt;
== Install a C++ and Fortran compiler* ==&lt;br /&gt;
&lt;br /&gt;
Most likely C++ is installed in your system, if not try to follow this. In Ubuntu just do&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install g++ gfortran&lt;br /&gt;
&lt;br /&gt;
Otherwise see this other tutorial &#039;[[Install GCC]]&#039;.&lt;br /&gt;
&lt;br /&gt;
== Install MPICH2* ==&lt;br /&gt;
&lt;br /&gt;
 cd ~/soft&lt;br /&gt;
 MPI_VER=1.3a2&lt;br /&gt;
 wget http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/$MPI_VER/mpich2-$MPI_VER.tar.gz&lt;br /&gt;
 tar -zxvf mpich2-$MPI_VER.tar.gz&lt;br /&gt;
 cd mpich2-$MPI_VER&lt;br /&gt;
 ./configure --prefix=$HOME/usr --enable-f90 --enable-sharedlibs=gcc&lt;br /&gt;
 time make --jobs=1&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
(20 minutes) If you are going to use this just installed version of MPI, make sure to specify &amp;lt;code&amp;gt;$(HOME)/usr/bin/mpicxx&amp;lt;/code&amp;gt; as your C++ compiler in the *.mk file.&lt;br /&gt;
&lt;br /&gt;
(The library can be uninstalled with the command &amp;lt;code&amp;gt;$PREFIX/sbin/mpeuninstall&amp;lt;/code&amp;gt;.)&lt;br /&gt;
(The option --enable-sharedlibs does not work in the Cygwin enviroment)&lt;br /&gt;
&lt;br /&gt;
see http://wiki.mcs.anl.gov/mpich2/index.php/Getting_And_Building_MPICH2 for compilation from SVN (rather involved).&lt;br /&gt;
&lt;br /&gt;
This instalation of MPI is not optimal in a arbitrary cluster. Most clusters will have their own super optimised implementation over special communication methods (ethernet, infiniband, etc).&lt;br /&gt;
&lt;br /&gt;
== Install Blas and Lapack* ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Most systems have Blas and Lapack installed already, so you may want to skip this section. For example, they are installed system-wide already. Note: Atlas does not compile with Fortran 77 compilers (use Fortran 95 compilers).&lt;br /&gt;
&lt;br /&gt;
(Requirement: a fortran compiler, e.g. &amp;lt;code&amp;gt;apt-get install gfortran&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=== Manual installation of tunned BLAS (ATLAS) ===&lt;br /&gt;
&lt;br /&gt;
Skip this section if you want to install the non-optimized version of BLAS that comes with Lapack.&lt;br /&gt;
&lt;br /&gt;
To get BLAS (ATLAS implementation) (http://www.netlib.org or http://math-atlas.sourceforge.net):&lt;br /&gt;
&lt;br /&gt;
 cd ~/soft&lt;br /&gt;
 ATLAS_VER=3.8.3&lt;br /&gt;
 wget http://voxel.dl.sourceforge.net/sourceforge/math-atlas/atlas$ATLAS_VER.tar.gz&lt;br /&gt;
 tar -zxvf atlas$ATLAS_VER.tar.gz&lt;br /&gt;
&lt;br /&gt;
Apparently the library doesn&#039;t do the correct tuning if the CPU clocking is enabled (usually in laptop and desktops), this line may disable the throttling&lt;br /&gt;
&lt;br /&gt;
 sudo /usr/bin/cpufreq-selector -g performance&lt;br /&gt;
&lt;br /&gt;
(If you are not root in the system you can force compilation anyway --who knows what the performance will be, it can be very bad-- by adding the &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt; option &amp;lt;code&amp;gt;-Si cputhrchk 0&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
The library must be built in a different directory than the sources.&lt;br /&gt;
&lt;br /&gt;
 mkdir ATLAS/build&lt;br /&gt;
 cd ATLAS/build&lt;br /&gt;
 ../configure --prefix=$HOME/usr -b `getconf -a | grep WORD_BIT | awk &#039;{print $2}&#039;`&lt;br /&gt;
 make --jobs=1&lt;br /&gt;
&lt;br /&gt;
The compilation takes ~15 minutes. You can copy/link the newly generated files &amp;lt;code&amp;gt;libf77blas.a libatlas.a&amp;lt;/code&amp;gt; to your desired location (for example &amp;lt;code&amp;gt;~/usr/lib&amp;lt;/code&amp;gt;) or just&lt;br /&gt;
&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
To have them in the location defined by prefix.&lt;br /&gt;
&lt;br /&gt;
=== Lapack ===&lt;br /&gt;
&lt;br /&gt;
You can then get Lapack (http://www.netlib.org/lapack) from the [http://www.netlib.org/lapack/index.html home page], download the file and untar it:&lt;br /&gt;
&lt;br /&gt;
 cd ~/soft&lt;br /&gt;
 wget http://www.netlib.org/lapack/lapack.tgz&lt;br /&gt;
 tar -zxvf lapack.tgz&lt;br /&gt;
 cd lapack-*&lt;br /&gt;
 cp make.inc.example make.inc&lt;br /&gt;
&lt;br /&gt;
There are two options here, if you installed ATLAS (above) then you have to:&lt;br /&gt;
&lt;br /&gt;
First modify make.inc to allow linking with the (just compiled) ATLAS, for example.&lt;br /&gt;
&lt;br /&gt;
 BLASLIB = $(HOME)/usr/lib/libf77blas.a $(HOME)/usr/lib/libatlas.a&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
 make --jobs=1 #~15 minutes&lt;br /&gt;
&lt;br /&gt;
Otherwise, Lapack includes a basic (non optimized) version of BLAS&lt;br /&gt;
&lt;br /&gt;
 make blaslib&lt;br /&gt;
 make --jobs=2 #~7 minutes&lt;br /&gt;
&lt;br /&gt;
Create a symlink to the newly created library (there is no &amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/usr/lib&lt;br /&gt;
 cd ~/usr/lib&lt;br /&gt;
 ln -sf ~/soft/lapack-3.2.2/lapack_LINUX.a liblapack.a&lt;br /&gt;
 ln -sf ~/soft/lapack-3.2.2/blas_LINUX.a libblas.a #if any&lt;br /&gt;
&lt;br /&gt;
== Install BLACS ==&lt;br /&gt;
&lt;br /&gt;
Download and untar BLACS from [http://www.netlib.org/blacs/BLACS/Papers.html BLACS papers page]:&lt;br /&gt;
&lt;br /&gt;
 cd ~/soft&lt;br /&gt;
 wget http://www.netlib.org/blacs/mpiblacs.tgz&lt;br /&gt;
 tar -zxvf mpiblacs.tgz&lt;br /&gt;
 cd BLACS&lt;br /&gt;
&lt;br /&gt;
We have to have our own version of a file called Bmake.inc in the ~/soft/BLACS directory. The following file will serve for [[media:BLACS_Bmake.inc.txt | BLACS/Bmake.inc]]&lt;br /&gt;
&lt;br /&gt;
 wget http://micro.stanford.edu/mediawiki/images/8/8f/BLACS_Bmake.inc.txt -O Bmake.inc&lt;br /&gt;
&lt;br /&gt;
The file is just the same as BMAKES/Bmake.MPI-LINUX with the following changes in the variables definition:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt; BTOPdir = $(HOME)/soft/BLACS&lt;br /&gt;
 &amp;lt; MPIdir = /opt/mpich/gnu&lt;br /&gt;
&lt;br /&gt;
otherwise use&lt;br /&gt;
&lt;br /&gt;
 sed &#039;s:BTOPdir = $(HOME)/BLACS:BTOPdir = $(HOME)/soft/BLACS:&#039; BMAKES/Bmake.MPI-LINUX  | sed &#039;s:MPIdir = /usr/local/mpich:MPIdir = $(HOME)/usr:&#039; &amp;gt; Bmake.inc&lt;br /&gt;
&lt;br /&gt;
If you have a local installation of MPI libraries, you need to modify that line to &amp;lt;code&amp;gt;MPIdir = $(HOME)/usr&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
In some platforms (notably Ubuntu --if you are doing a full manual installation--) you have to modify Bmake.inc to have the following line:&lt;br /&gt;
&lt;br /&gt;
 INTFACE = -DAdd_&lt;br /&gt;
&lt;br /&gt;
In some other platforms you need a different setting (I don&#039;t understand the logic of this). To know what should be used you must (compile and) run a little program. &lt;br /&gt;
&lt;br /&gt;
 make -C INSTALL xintface&lt;br /&gt;
 INSTALL/EXE/xintface&lt;br /&gt;
&lt;br /&gt;
in principle this should give the right option, although in some cases I had to use a different one.&lt;br /&gt;
&lt;br /&gt;
which will tell you what option to use. Do the modification to Bmake.inc if necessary. This is an example of [[Media:Bmake.inc.Linux.txt|Bmake.inc for a manual installation in Linux]].&lt;br /&gt;
&lt;br /&gt;
Having this setting correctly is very important, if not the compilation of this (and other libraries) will actually finish without any warnings, except that at some point when we need not compile a program we will get errors about &#039;undefined references&#039;. Also remember the option used because it will have to be consistent in the compilation of Scalapack (see below).&lt;br /&gt;
&lt;br /&gt;
Also you may need to change the compiler name&lt;br /&gt;
&lt;br /&gt;
 F77   = gfortran&lt;br /&gt;
&lt;br /&gt;
instead of g77.&lt;br /&gt;
&lt;br /&gt;
Then change to the source directory and make, then copy the compiled libraries to ~/usr/local/lib/&lt;br /&gt;
&lt;br /&gt;
 cd SRC/MPI&lt;br /&gt;
 make #&amp;lt;1 minute&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p ~/usr/lib$CLUSTER&lt;br /&gt;
 cd ~/usr/lib$CLUSTER&lt;br /&gt;
 cp ~/soft/BLACS/LIB/blacsCinit_MPI-LINUX-0.a libblacsCinit-mpi.a&lt;br /&gt;
 cp ~/soft/BLACS/LIB/blacsF77init_MPI-LINUX-0.a libblacsF77init-mpi.a                    &lt;br /&gt;
 cp ~/soft/BLACS/LIB/blacs_MPI-LINUX-0.a libblacs-mpi.a&lt;br /&gt;
&lt;br /&gt;
== Install Scalapack ==&lt;br /&gt;
&lt;br /&gt;
Now it is the turn for Scalapack, get it from the [http://www.netlib.org/scalapack/scalapack_home.html Scalapack home page], untar it:&lt;br /&gt;
&lt;br /&gt;
 cd ~/soft&lt;br /&gt;
 wget http://www.netlib.org/scalapack/scalapack-1.8.0.tgz&lt;br /&gt;
 tar -zxvf scalapack-1.8.0.tgz&lt;br /&gt;
 cd scalapack-1.8.0&lt;br /&gt;
&lt;br /&gt;
and put this compilation input file [[media:scalapack_SLmake.inc.txt | scalapack/SLmake.inc]] in the directory&lt;br /&gt;
&lt;br /&gt;
 wget http://micro.stanford.edu/mediawiki/images/8/8d/Scalapack_SLmake.inc.txt -O SLmake.inc&lt;br /&gt;
&lt;br /&gt;
which is just the same as &#039;SLmake.inc.example&#039; with the following changes:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt; home          = $(HOME)/soft/scalapack-1.8.0&lt;br /&gt;
 &amp;lt; F77           = /opt/mpich/gnu/bin/mpif77&lt;br /&gt;
 &amp;lt; CC            = /opt/mpich/gnu/bin/mpicc&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 sed &#039;s:$(HOME):$(HOME)/soft:&#039; SLmake.inc.example &amp;gt; SLmake.inc&lt;br /&gt;
&lt;br /&gt;
Again, for a local installation of MPI use $(HOME)/usr/bin instead of /opt/mpich/gnu/bin. In the line CDEF it should appear the same option as in the  INTFACE option for the compilation of BLACS, for example -DAdd_. This is an [[Media:SLmake.inc.Linux.txt|SLmake.inc example for a manual installation in Linux]].&lt;br /&gt;
&lt;br /&gt;
Then you are ready to compile:&lt;br /&gt;
 make --jobs=8&lt;br /&gt;
&lt;br /&gt;
(4 minutes) and link the resulting library to &amp;lt;code&amp;gt;~/usr/lib&amp;lt;/code&amp;gt; (there is no &amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 mkdir --parents ~/usr/lib$CLUSTER&lt;br /&gt;
 cd ~/usr/lib$CLUSTER&lt;br /&gt;
 cp ~/soft/scalapack-1.8.0/libscalapack.a .&lt;br /&gt;
&lt;br /&gt;
== Precompiled packages ==&lt;br /&gt;
&lt;br /&gt;
If you have a Linux system (or any system listed [http://www.netlib.org/scalapack/archives/ here], [http://www.netlib.org/blacs/archives/ here] or [http://www.netlib.org/blas/archives/ here]) it might be easier to just download and install a ready to use file, no compilation required:&lt;br /&gt;
&lt;br /&gt;
 mkdir --parents ~/soft/blas_LINUX&lt;br /&gt;
 cd ~/soft/blas_LINUX&lt;br /&gt;
 wget http://www.netlib.org/blas/archives/blas_linux.tgz&lt;br /&gt;
 tar -zxvf blas_linux.tgz&lt;br /&gt;
 mkdir -p ~/usr/local/blas/lib&lt;br /&gt;
 cd ~/usr/local/blas/lib&lt;br /&gt;
 ln -s ~/soft/blas_LINUX/blas_linux.a libblas.a&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/soft/atlas_LINUX&lt;br /&gt;
 cd ~/soft/atlas_LINUX&lt;br /&gt;
 wget http://www.netlib.org/atlas/archives/linux/atlas3.6.0_Linux_P4SSE2.tgz&lt;br /&gt;
 tar -zxvf atlas3.6.0_Linux_P4SSE2.tgz&lt;br /&gt;
 mkdir -p ~/usr/local/atlas/lib&lt;br /&gt;
 cd ~/usr/local/atlas/lib&lt;br /&gt;
 ln -s ~/soft/atlas_LINUX/Linux_P4SSE2/lib/*.a .&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/soft/lapack_LINUX&lt;br /&gt;
 cd ~/soft/lapack_LINUX&lt;br /&gt;
 wget http://www.netlib.org/lapack/archives/lapack_linux.tgz&lt;br /&gt;
 tar -zxvf lapack_linux.tgz&lt;br /&gt;
 mkdir -p ~/usr/local/lapack/lib&lt;br /&gt;
 cd ~/usr/local/lapack/lib&lt;br /&gt;
 ln -s ~/soft/lapack_LINUX/lapack_linux.a liblapack.a&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/soft/blacs_LINUX&lt;br /&gt;
 cd ~/soft/blacs_LINUX&lt;br /&gt;
 wget http://www.netlib.org/blacs/archives/blacs_MPI-LINUX-0.tgz&lt;br /&gt;
 tar -zxvf blacs_MPI-LINUX-0.tgz&lt;br /&gt;
 mkdir -p ~/usr/local/blacs/lib&lt;br /&gt;
 cd ~/usr/local/blacs/lib&lt;br /&gt;
 ln -s ~/soft/blacs_LINUX/blacs_MPI-LINUX-0.a libmpiblacs.a&lt;br /&gt;
 ln -s ~/soft/blacs_LINUX/blacsCinit_MPI-LINUX-0.a libmpiblacsCinit.a&lt;br /&gt;
 ln -s ~/soft/blacs_LINUX/blacsF77init_MPI-LINUX-0.a libmpiblacsF77init.a&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/soft/scalapack_LINUX&lt;br /&gt;
 cd ~/soft/scalapack_LINUX&lt;br /&gt;
 wget http://www.netlib.org/scalapack/archives/scalapack_LINUX.tgz&lt;br /&gt;
 tar -zxvf scalapack_LINUX.tgz&lt;br /&gt;
 mkdir -p ~/usr/local/scalapack/lib&lt;br /&gt;
 cd ~/usr/local/scalapack/lib&lt;br /&gt;
 ln -s ~/soft/scalapack_LINUX/scalapack_LINUX.a libscalapack.a&lt;br /&gt;
&lt;br /&gt;
== Install FFTW ==&lt;br /&gt;
&lt;br /&gt;
Among the possible FFT libraries that can be linked to Qbox, the easiest library to install is FFTW 2.1.5 (FFTW3 is available but Qbox uses only FFTW2). Simply download it from the [http://www.fftw.org/download.html FFTW download page] and decompress it:&lt;br /&gt;
&lt;br /&gt;
 cd ~/soft&lt;br /&gt;
 wget http://www.fftw.org/fftw-2.1.5.tar.gz&lt;br /&gt;
 tar -zxvf fftw-2.1.5.tar.gz&lt;br /&gt;
 cd fftw-2.1.5&lt;br /&gt;
&lt;br /&gt;
Then do the usual configure and make install procedure, indicating that we want a private installation in our ~/usr directory&lt;br /&gt;
&lt;br /&gt;
 ./configure --prefix=$HOME/usr --libdir=$HOME/usr/lib$CLUSTER --enable-shared=yes --disable-fortran --with-pic&lt;br /&gt;
 make -j 1&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This will install the FFTW2 libraries in ~/usr/include and ~/usr/lib. &lt;br /&gt;
&lt;br /&gt;
Note that it is NOT necessary to install the MPI version of fftw, Qbox does not make use of it. If for some reason you need to install the MPI version of FFTW use the option &amp;lt;code&amp;gt;--enable-mpi MPICC=$HOME/usr/bin/mpicc&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; command line.&lt;br /&gt;
&lt;br /&gt;
(see also [[Install FFTW3]])&lt;br /&gt;
&lt;br /&gt;
== Install Xerces ==&lt;br /&gt;
&lt;br /&gt;
Now the Xerces XML library, get it from the [http://xerces.apache.org/xerces-c/download.cgi Xerces download page] and untar it, also define an enviroment variable were the source of xerces is located:&lt;br /&gt;
&lt;br /&gt;
 cd ~/soft&lt;br /&gt;
 wget http://mirror.cloudera.com/apache//xerces/c/2/sources/xerces-c-src_2_8_0.tar.gz&lt;br /&gt;
 tar -zxvf xerces-c-src_2_8_0.tar.gz&lt;br /&gt;
 cd xerces-c-src_2_8_0&lt;br /&gt;
 export XERCESCROOT=$PWD&lt;br /&gt;
 cd src/xercesc&lt;br /&gt;
&lt;br /&gt;
then run this script and the usual make install&lt;br /&gt;
&lt;br /&gt;
 make clean&lt;br /&gt;
 ./runConfigure -plinux -cgcc -xg++ -minmem -nsocket -tnative -rpthread -P $HOME/usr -s -C --libdir=$HOME/usr/lib$CLUSTER&lt;br /&gt;
 time make --jobs=1&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
(5 minutes) This will make static xerces libraries installed in &amp;lt;code&amp;gt;~/usr/lib$CLUSTER&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;~/usr/include/xerces&amp;lt;/code&amp;gt;. To have both the static and shared libraries recompile again without the -s option.&lt;br /&gt;
&lt;br /&gt;
To uninstall:&lt;br /&gt;
&lt;br /&gt;
 rm -rf ~/usr/include/xercesc/* ~/usr/libhera/libxerces-*&lt;br /&gt;
&lt;br /&gt;
=== Xerces 3 ===&lt;br /&gt;
&lt;br /&gt;
Warning: I found problems (pseudopotentials not loading) using Xerces 3 with (at least) Qbox v1.45 and v1.50. Try with care.&lt;br /&gt;
&lt;br /&gt;
Xerces version 3 was released, it has much easier installation procedure (&amp;lt;code&amp;gt;./configure --prefix=$HOME/usr; make install;&amp;lt;/code&amp;gt;) which takes ~10 minutes (1 minute with make -j 8). &lt;br /&gt;
&lt;br /&gt;
 XERCES_VER=3.1.1&lt;br /&gt;
 cd ~/soft&lt;br /&gt;
 wget http://apache.imghat.com/xerces/c/3/sources/xerces-c-$XERCES_VER.tar.gz&lt;br /&gt;
 tar -zxvf xerces-c-$XERCES_VER.tar.gz&lt;br /&gt;
 cd xerces-c-$XERCES_VER&lt;br /&gt;
 ./configure --prefix=$HOME/usr --libdir=$HOME/usr/lib$CLUSTER --with-pic&lt;br /&gt;
 NUM_CORES=`cat /proc/cpuinfo | grep processor | wc -l`&lt;br /&gt;
 make --jobs=$NUM_CORES install &lt;br /&gt;
&lt;br /&gt;
in Qbox 1.50 the flag -DXERCESC_3_0_1 has to be active in your target .mk file to use this version of xerces.&lt;br /&gt;
&lt;br /&gt;
Qbox 1.45, instead, has to be slightly modified in order to run:&lt;br /&gt;
&lt;br /&gt;
In the file &amp;lt;code&amp;gt;WavefunctionHandler.C&amp;lt;/code&amp;gt; it says &amp;lt;code&amp;gt;XMLString::release(&amp;amp;b);&amp;lt;/code&amp;gt;, that should be modified to&lt;br /&gt;
&lt;br /&gt;
 XMLString::release((char**)&amp;amp;b);&lt;br /&gt;
&lt;br /&gt;
and where is says &amp;lt;code&amp;gt;XMLByte* b = Base64::decode((XMLByte*)content.c_str(), &amp;amp;length);&amp;lt;/code&amp;gt; cast to &amp;lt;code&amp;gt;(XMLSize_t*)&amp;lt;/code&amp;gt; before &amp;lt;code&amp;gt;&amp;amp;length&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also the final executable has to be linked to additional libraries, such as ICU libraries (-lsicuuc -lsicudata in Ubuntu) or -lcurl (in RedHat).&lt;br /&gt;
&lt;br /&gt;
== Ready to compile Qbox ==&lt;br /&gt;
&lt;br /&gt;
Having the previous libraries installed in our own directory &amp;lt;code&amp;gt;~/usr&amp;lt;/code&amp;gt; and the rest of them already installed by the system administrator we shouldn&#039;t have any problems compiling Qbox&lt;br /&gt;
&lt;br /&gt;
First step is to get the source code from [http://fpmd.ucdavis.edu/software/qbox/download.htm Qbox download page] and decompress it.&lt;br /&gt;
&lt;br /&gt;
 QBOX_VER=1.50.4&lt;br /&gt;
 #1.45.0 = old version&lt;br /&gt;
 cd ~/soft&lt;br /&gt;
 wget http://fpmd.ucdavis.edu/software/qbox/qbox-$QBOX_VER.tgz&lt;br /&gt;
 tar -zxvf qbox-$QBOX_VER.tgz&lt;br /&gt;
 cd qbox-$QBOX_VER/src &lt;br /&gt;
&lt;br /&gt;
We have to have a Makefile input file for our own system (wcr.stanford.edu) in the current directory; for that purpose we have created  [[media:qbox_wcr.mk.txt | qbox-1.45.0/src/wcr.mk]], we will also need to specify our target system (according to the filename wcr.mk). (Although the original tutorial was made for compilation in wcr.stanford.edu, all the steps seem to work for mc-cc.stanford.edu as well with no modification.) Note that this compilation uses MPI library that corresponds to /opt/mpich/gnu/bin/mpicxx.&lt;br /&gt;
&lt;br /&gt;
  wget http://micro.stanford.edu/mediawiki-1.11.0/images/Qbox_wcr.mk.txt -O wcr.mk&lt;br /&gt;
  export TARGET=wcr&lt;br /&gt;
&lt;br /&gt;
wcr.mk file distributed here is based on x8664_gcc.mk with the following changes:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;  MPIDIR=/opt/mpich/gnu&lt;br /&gt;
  &amp;lt;  XERCESCDIR=$(HOME)/usr&lt;br /&gt;
  &amp;lt;  FFTWDIR=$(HOME)/usr&lt;br /&gt;
  &amp;lt;  BLASDIR=$(HOME)/usr/local/lib&lt;br /&gt;
  &amp;lt;  LAPACKDIR=$(HOME)/usr/local/lib&lt;br /&gt;
  &amp;lt;  CXX=/opt/mpich/gnu/bin/mpicxx&lt;br /&gt;
  &amp;lt;          -llapack -lf77blas -latlas -lm  \&lt;br /&gt;
  &amp;lt;          -Xlinker -Bstatic \&lt;br /&gt;
  &amp;lt;           -lc -static-libgcc -lmpich  -lxerces-c \&lt;br /&gt;
  &amp;lt;  # gfortran&lt;br /&gt;
  &amp;lt;  PLAT=LINUX&lt;br /&gt;
  &amp;lt;  BLACSdir      = $(HOME)/usr/local/lib&lt;br /&gt;
  &amp;lt;  SCALAPACK_DIR = $(HOME)/usr/local/lib&lt;br /&gt;
&lt;br /&gt;
Alternatively this other [[Media:x8664_gcc.mk.txt|modified version x8664_gcc.mk]] was used to manually compile under Linux. Now we are ready to make&lt;br /&gt;
  &lt;br /&gt;
 make | tee make.log&lt;br /&gt;
&lt;br /&gt;
This can take a couple of minutes and generate an executable named &#039;qb&#039; . We can check that the qb is properly compiler by doing&lt;br /&gt;
&lt;br /&gt;
 ldd ./qb&lt;br /&gt;
&lt;br /&gt;
and see whether all necessary libraries can be found in the system. Afterwards we can try to run a small example,&lt;br /&gt;
&lt;br /&gt;
  cd ~/soft/qbox-1.45.0/examples/ch4&lt;br /&gt;
  /opt/mpich/gnu/bin/mpirun -np 2 ~/soft/qbox-1.45.0/src/qb gs.i&lt;br /&gt;
&lt;br /&gt;
If it works we can copy the executable to our bin directory. Since the qbox versions change rather often it is convenient to keep track of the executable version and make a link to the latest version available.&lt;br /&gt;
&lt;br /&gt;
  cp ~/soft/qbox-1.45.0/src ~/usr/local/bin/qbox-1.45.0&lt;br /&gt;
  ln -s ~/usr/local/bin/qbox-1.45.0 ~/usr/local/bin/qbox&lt;br /&gt;
&lt;br /&gt;
Since the libraries are statically linked &#039;qb&#039; executable does not depend in any actual file in our /usr/lib.&lt;br /&gt;
&lt;br /&gt;
=== Fast compilation ===&lt;br /&gt;
&lt;br /&gt;
Compilation of Qbox is relatively quick, few minutes at most. However if you are modifying the code frequently and compiling from scratch it can be useful to compile the code taking advantage of multi-processor computers by means of a feature of GNU make. For example you can do:&lt;br /&gt;
&lt;br /&gt;
time make -j 8&lt;br /&gt;
&lt;br /&gt;
in an 8 processor machine and expect much better compilation times than with the usual &#039;time make&#039;.&lt;br /&gt;
&lt;br /&gt;
== Quick compilation in Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
It is possible to compile Qbox using the libraries and development files provided by the Ubuntu repositories. &lt;br /&gt;
&lt;br /&gt;
In Ubuntu 9.04&lt;br /&gt;
&lt;br /&gt;
 sudo aptitude install \&lt;br /&gt;
  libblas-dev liblapack-dev \&lt;br /&gt;
  blacsgf-mpich-dev scalapack-mpich-dev \&lt;br /&gt;
  fftw-dev fftw3-dev \&lt;br /&gt;
  libxerces-c2-dev libmpich1.0dev \&lt;br /&gt;
  libboost1.37-dev&lt;br /&gt;
&lt;br /&gt;
 cd ~/soft/qbox-1.45.0&lt;br /&gt;
 wget [[Media:Qbox_ubuntu-9.04.mk.txt|http://micro.stanford.edu/mediawiki/images/3/38/Qbox_ubuntu-9.04.mk.txt]] -O ubuntu-9.04.mk&lt;br /&gt;
 export TARGET=ubuntu-9.04&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
after successful compilation run a small example&lt;br /&gt;
&lt;br /&gt;
  cd ../examples/ch4&lt;br /&gt;
  /usr/lib/mpich/bin/mpirun -np 2 ../../qb gs.i&lt;br /&gt;
&lt;br /&gt;
== Ready Makefiles-includes ==&lt;br /&gt;
&lt;br /&gt;
After compiling Qbox in many platforms, keeping track of the many Makefile-includes (*.inc) used and its combinations can be difficult. For that reason I decided to pack the different Makefile-includes used, and incrementally add them to this section:&lt;br /&gt;
&lt;br /&gt;
* [[Media:Qbox_mkincludes.tar|Red Hat Linux 2.6.18-128.1.1.el5 #1 SMP i686 i386 GNU/Linux]] &lt;br /&gt;
  export TARGET=x8664_gcc&lt;br /&gt;
* [[Media:Qbox_mkincludes_Ubuntu.tar|Ubuntu Linux 2.6.27-11-generic #1 SMP i686 GNU/Linux]] &lt;br /&gt;
  export TARGET=x8664_gcc_Ubuntu&lt;br /&gt;
&lt;br /&gt;
== Other tips ==&lt;br /&gt;
&lt;br /&gt;
===GCC 4 warnings and errors ===&lt;br /&gt;
&lt;br /&gt;
GCC 4 produces many warnings like this,&lt;br /&gt;
&lt;br /&gt;
  warning: deprecated conversion from string constant to ‘char*’&lt;br /&gt;
&lt;br /&gt;
The ideal solution would be to make the code conform with the new standard (by replacing all offending instances of &#039;char*&#039; by &#039;char const*&#039;), but that&#039;s up to the developers.&lt;br /&gt;
&lt;br /&gt;
Meanwhile we can disable that warning with the option &#039;-Wno-write-strings&#039; passed to the compiler. That can be added to the include-Makefile (*.mk) in the following way:&lt;br /&gt;
&lt;br /&gt;
  CXXFLAGS=-g -O4 -D$(PLT) $(INCLUDE) $(PLTFLAGS) $(DFLAGS) -Wno-write-strings&lt;br /&gt;
&lt;br /&gt;
another set of errors raise with gcc 4.4 (memset undefined) can be solved editing Context.h and adding&lt;br /&gt;
 #include&amp;lt;cstring&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Finding unresolved functions ===&lt;br /&gt;
&lt;br /&gt;
Quite often the source files are compiled into objective (*.o) files but the final link (ld) step is unsuccessful, with error messages such as &amp;quot;__some_function__ is unresolved&amp;quot;.  At this point, the &#039;&#039;&#039;nm&#039;&#039;&#039; command may be useful.  It allows us to see whats are implemented and what are required (from another .o file) in a given .o file.&lt;br /&gt;
&lt;br /&gt;
For example, go to the Qbox src/ directory and try&lt;br /&gt;
&lt;br /&gt;
 nm Matrix.o&lt;br /&gt;
&lt;br /&gt;
This will print out a lot of lines.  Each line tells us about a function that is either implemented in this object file, or is required by but not implemented in this object file.  For example, you will see a line&lt;br /&gt;
&lt;br /&gt;
 U  zscal_&lt;br /&gt;
&lt;br /&gt;
U means not implemented.  This means that somewhere in Matrix.o there is a function call to zscal_ but this function is not implemented in Matrix.o.  Hence Matrix.o needs to be linked to another .o (object), .a (library) or .so (dynamic library) file that implements the zscal_ function.&lt;br /&gt;
&lt;br /&gt;
We know zscal_ is a BLAS function.  So we can look into the BLAS library file, e.g.&lt;br /&gt;
&lt;br /&gt;
 nm /usr/lib64/libblas.a | grep zscal&lt;br /&gt;
&lt;br /&gt;
We will see&lt;br /&gt;
 T  zscal_&lt;br /&gt;
&lt;br /&gt;
T means implemented.  Hence the libblas.a library can provide the function needed by Matrix.o.  Of course, a computer system usually have many libraries installed that provide the same (or similar) functions.  So we need to be careful in choosing the libraries to link (e.g. by specifying library paths using the -L option).&lt;br /&gt;
&lt;br /&gt;
One thing that the &#039;&#039;&#039;nm&#039;&#039;&#039; command can show us is whether the function name in the .o file (from the source code) and that in the library file matches --- pay attention to the final underscore &amp;quot;_&amp;quot;.  In this case, it tells us that we need to turn on the -DAdd_ option in the Qbox makefile (for SU-AHPCRC).&lt;br /&gt;
&lt;br /&gt;
Once we realize that there are some undefined (U) symbol, it is our job to find which is the file we need to link to (for example with the -l option). We can Google it or search our local system for such symbol. I find this command line very useful to find where a symbol is defined:&lt;br /&gt;
&lt;br /&gt;
 for a in /usr/lib/*.a; do echo $a; nm -o $a | grep FUNCTION_NAME; done&lt;br /&gt;
&lt;br /&gt;
This allows to search in many files at once. Always look for the function name without the underscore in order to capture which is the correct function name underscoring (e.g. zscal_ vs zscal) defined in the system.&lt;br /&gt;
&lt;br /&gt;
=== Compilation in Cygwin ===&lt;br /&gt;
&lt;br /&gt;
Cygwin provides Lapack, BLAS and Xerces. These can be installed with the usual setup.exe or with [http://code.google.com/p/apt-cyg/ apt-cyg].&lt;br /&gt;
&lt;br /&gt;
BLACS, Scalapack, fftw2 can be compiled in the usual way (see above). One thing to remember (in addition to the previous instructions) is that part of the dll libraries (with the cyg* prefix, e.g. cyglapack-0.dll) are located at $HOME/usr/bin, /usr/bin and /usr/lib/lapack, so these directories must be in the PATH variable (yes, the windows PATH variable within Cygwin). For example,&lt;br /&gt;
 export PATH=/usr/lib/lapack:$HOME/usr/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(end of compilation tutorial)&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Before_You_Start:_Known_Bugs_in_ParaDiS&amp;diff=4642</id>
		<title>Before You Start: Known Bugs in ParaDiS</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Before_You_Start:_Known_Bugs_in_ParaDiS&amp;diff=4642"/>
		<updated>2010-05-11T02:46:41Z</updated>

		<summary type="html">&lt;p&gt;Wcash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bug 1 ==&lt;br /&gt;
&lt;br /&gt;
If you download the standard distribution of ParaDiS &amp;lt;tt&amp;gt;pub-dd3d.v2.0.tar.gz&amp;lt;/tt&amp;gt;, you will not be able to compile and run it in SERIAL mode.  The fix to this problem is described below.&lt;br /&gt;
&lt;br /&gt;
You need to download these three files (available on [http://paradis.stanford.edu/downloads ParaDiS download site]):&lt;br /&gt;
&lt;br /&gt;
 makefile.sys&lt;br /&gt;
 makefile.setup&lt;br /&gt;
 ReadConfig.c&lt;br /&gt;
&lt;br /&gt;
This will allow you to use &amp;lt;tt&amp;gt;SYS = i386&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;SYS = cygwin&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;MODE = SERIAL&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;makefile.setup&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;SYS = i386&amp;lt;/tt&amp;gt; option requires intel compiler &amp;lt;tt&amp;gt;icc&amp;lt;/tt&amp;gt;.  If you do not have this compiler, you can modify the &amp;lt;tt&amp;gt;makefile.sys&amp;lt;/tt&amp;gt; file to use a different compiler.&lt;br /&gt;
&lt;br /&gt;
We are working to enable the &amp;lt;tt&amp;gt;SYS = mac&amp;lt;/tt&amp;gt; option.  Please come back soon.&lt;br /&gt;
&lt;br /&gt;
If your computer does not allow opening of X-window, then you need to set &amp;lt;tt&amp;gt;enable_window = 0&amp;lt;/tt&amp;gt; in your &amp;lt;tt&amp;gt;win.script&amp;lt;/tt&amp;gt; file.  This is also necessary if you submit your job to a queue in a cluster, because you won&#039;t be able to open an interactive window there.&lt;br /&gt;
&lt;br /&gt;
== Bug 2 ==&lt;br /&gt;
As the numbers of&lt;br /&gt;
cells and numbers of processors are changed, ownership or nodes/segments can&lt;br /&gt;
alter which may result in segments changing the cells into which they&lt;br /&gt;
are accounted... and hence alter results. So for a small test case, forces may be perfectly correct in serial but slightly off in parallel using cells (option FULL_N2Forces turned off). &lt;br /&gt;
&lt;br /&gt;
On a large simulation the&lt;br /&gt;
results should be insignificant, but on small simulations with very few&lt;br /&gt;
dislocations, differences are more noticable.&lt;br /&gt;
&lt;br /&gt;
== Bug 3 ==&lt;br /&gt;
Segmentation fault occurs with v2.3.5s and v.2.3.5.1 when compiling with GCC on Ubuntu and running codes with FMM. The error when compiling using &amp;lt;tt&amp;gt;-03&amp;lt;/tt&amp;gt; optimization in serial or parallel (&amp;lt;tt&amp;gt;cc -O3&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;mpicc -03&amp;lt;/tt&amp;gt;). Appears to be specific to &amp;lt;tt&amp;gt;-03&amp;lt;/tt&amp;gt; and doesn&#039;t occur for &amp;lt;tt&amp;gt;-02&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;-g&amp;lt;/tt&amp;gt;, for example. &amp;lt;tt&amp;gt;-03&amp;lt;/tt&amp;gt; works properly when using Rijm tables. &lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t occur with the older version of ParaDiS in the subversion (~2.2.3 or 2.2.6?).&lt;br /&gt;
&lt;br /&gt;
Details of error:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Initialize: Control file parsing complete&lt;br /&gt;
Generating uniform domain decomposition.&lt;br /&gt;
&lt;br /&gt;
Program received signal SIGSEGV, Segmentation fault.&lt;br /&gt;
0x00007ffff732896d in ?? () from /lib/libc.so.6&lt;br /&gt;
(gdb) backtrace&lt;br /&gt;
#0  0x00007ffff732896d in ?? () from /lib/libc.so.6&lt;br /&gt;
#1  0x00007ffff732b424 in calloc () from /lib/libc.so.6&lt;br /&gt;
#2  0x0000000000448911 in ReadNodeDataFile ()&lt;br /&gt;
#3  0x000000000042dcd4 in Initialize ()&lt;br /&gt;
#4  0x000000000040e321 in ParadisInit ()&lt;br /&gt;
#5  0x000000000040185a in main ()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bug 4 ==&lt;br /&gt;
Not really a bug, but a suggestion. When an X-window cannot be opened sucessfully the code exits with a segmentation fault. Should be able to add a descriptive message and a break instead.&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Before_You_Start:_Known_Bugs_in_ParaDiS&amp;diff=4639</id>
		<title>Before You Start: Known Bugs in ParaDiS</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Before_You_Start:_Known_Bugs_in_ParaDiS&amp;diff=4639"/>
		<updated>2010-05-11T00:44:48Z</updated>

		<summary type="html">&lt;p&gt;Wcash: added GCC bug for 2.3.5s and 2.3.5.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bug 1 ==&lt;br /&gt;
&lt;br /&gt;
If you download the standard distribution of ParaDiS &amp;lt;tt&amp;gt;pub-dd3d.v2.0.tar.gz&amp;lt;/tt&amp;gt;, you will not be able to compile and run it in SERIAL mode.  The fix to this problem is described below.&lt;br /&gt;
&lt;br /&gt;
You need to download these three files (available on [http://paradis.stanford.edu/downloads ParaDiS download site]):&lt;br /&gt;
&lt;br /&gt;
 makefile.sys&lt;br /&gt;
 makefile.setup&lt;br /&gt;
 ReadConfig.c&lt;br /&gt;
&lt;br /&gt;
This will allow you to use &amp;lt;tt&amp;gt;SYS = i386&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;SYS = cygwin&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;MODE = SERIAL&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;makefile.setup&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;SYS = i386&amp;lt;/tt&amp;gt; option requires intel compiler &amp;lt;tt&amp;gt;icc&amp;lt;/tt&amp;gt;.  If you do not have this compiler, you can modify the &amp;lt;tt&amp;gt;makefile.sys&amp;lt;/tt&amp;gt; file to use a different compiler.&lt;br /&gt;
&lt;br /&gt;
We are working to enable the &amp;lt;tt&amp;gt;SYS = mac&amp;lt;/tt&amp;gt; option.  Please come back soon.&lt;br /&gt;
&lt;br /&gt;
If your computer does not allow opening of X-window, then you need to set &amp;lt;tt&amp;gt;enable_window = 0&amp;lt;/tt&amp;gt; in your &amp;lt;tt&amp;gt;win.script&amp;lt;/tt&amp;gt; file.  This is also necessary if you submit your job to a queue in a cluster, because you won&#039;t be able to open an interactive window there.&lt;br /&gt;
&lt;br /&gt;
== Bug 2 ==&lt;br /&gt;
As the numbers of&lt;br /&gt;
cells and numbers of processors are changed, ownership or nodes/segments can&lt;br /&gt;
alter which may result in segments changing the cells into which they&lt;br /&gt;
are accounted... and hence alter results. So for a small test case, forces may be perfectly correct in serial but slightly off in parallel using cells (option FULL_N2Forces turned off). &lt;br /&gt;
&lt;br /&gt;
On a large simulation the&lt;br /&gt;
results should be insignificant, but on small simulations with very few&lt;br /&gt;
dislocations, differences are more noticable.&lt;br /&gt;
&lt;br /&gt;
== Bug 3 ==&lt;br /&gt;
Segmentation fault occurs with v2.3.5s and v.2.3.5.1 when compiling with GCC on Ubuntu and running codes with FMM. The error when compiling using &amp;lt;tt&amp;gt;-03&amp;lt;/tt&amp;gt; optimization in serial or parallel (&amp;lt;tt&amp;gt;cc -O3&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;mpicc -03&amp;lt;/tt&amp;gt;). Appears to be specific to &amp;lt;tt&amp;gt;-03&amp;lt;/tt&amp;gt; and doesn&#039;t occur for &amp;lt;tt&amp;gt;-02&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;-g&amp;lt;/tt&amp;gt;, for example. &amp;lt;tt&amp;gt;-03&amp;lt;/tt&amp;gt; works properly when using Rijm tables. &lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t occur with the older version of ParaDiS in the subversion (~2.2.3 or 2.2.6?).&lt;br /&gt;
&lt;br /&gt;
== Bug 4 ==&lt;br /&gt;
Not really a bug, but a suggestion. When an X-window cannot be opened sucessfully the code exits with a segmentation fault. Should be able to add a descriptive message and a break instead.&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=How_to_compile_VASP&amp;diff=4367</id>
		<title>How to compile VASP</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=How_to_compile_VASP&amp;diff=4367"/>
		<updated>2010-01-28T03:43:32Z</updated>

		<summary type="html">&lt;p&gt;Wcash: fixed wget links for hashed image directories&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this document, we describe how to compile VASP program on several computer clusters in the Mechanical Engineering Department of Stanford University.  These include mc-cc, wcr, and su-ahpcrc, all of which are linux clusters.   We then give examples of how to use VASP to compute the bulk modulus of Au and ZrO2.&lt;br /&gt;
&lt;br /&gt;
=== VASP on MC-CC ===&lt;br /&gt;
In general we follow the instructions given in http://cms.mpi.univie.ac.at/vasp/vasp/node16.html&lt;br /&gt;
&lt;br /&gt;
First, go to vasp.4.lib/ directory.  Copy the [[media:vasp.4.lib_makefile.mc-cc.txt‎ | vasp.4.lib/makefile.mc-cc]] file to &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; and then compile.  This can be done by the following commands.&lt;br /&gt;
&lt;br /&gt;
 rm makefile&lt;br /&gt;
 wget http://micro.stanford.edu/mediawiki/images/4/40/Vasp.4.lib_makefile.mc-cc.txt -O Makefile&lt;br /&gt;
 make clean&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will create &amp;lt;tt&amp;gt;libdmy.a&amp;lt;/tt&amp;gt; in this directory.&lt;br /&gt;
&lt;br /&gt;
Next, go to vasp.4.6/ directory.  Copy the [[media:vasp.4.6_makefile.mc-cc.txt‎ | vasp.4.6/makefile.mc-cc]] file to &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; and then compile.  This can be done by the following commands.&lt;br /&gt;
&lt;br /&gt;
 rm makefile&lt;br /&gt;
 wget http://micro.stanford.edu/mediawiki/images/8/8f/Vasp.4.6_makefile.mc-cc.txt -O Makefile&lt;br /&gt;
 make clean&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will create executable &amp;lt;tt&amp;gt;vasp&amp;lt;/tt&amp;gt; in this directory.&lt;br /&gt;
&lt;br /&gt;
Notice that in both makefiles, we use the &amp;lt;tt&amp;gt;/opt/mpich/intel/bin/mpif90&amp;lt;/tt&amp;gt; compiler.  Different clusters have different mpi compilers and they have different speeds.  Intel compilers usually perform better than generic compilers on intel linux clusters.  Make sure in your directories, you do not have another file named &amp;lt;tt&amp;gt;makefile&amp;lt;/tt&amp;gt;, which takes precedence over &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The binary (executable) file &amp;lt;tt&amp;gt;vasp&amp;lt;/tt&amp;gt; can run in both serial mode (e.g. &amp;lt;tt&amp;gt;./vasp&amp;lt;/tt&amp;gt;) and parallel mode (e.g. &amp;lt;tt&amp;gt;mpiexec -np 4 vasp&amp;lt;/tt&amp;gt; in a PBS script).  The following table compares the time to run a simple benchmark case (one Au atom, LDA, ENCUT=400, ISMEAR=1, SIGMA=0.1, KPOINTS=21x21x21) using our executable here and the one available at &amp;lt;tt&amp;gt;/share/apps/vasp.4.6/bin/vasp&amp;lt;/tt&amp;gt;.  Our executable is about 70% faster.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number of CPUs&lt;br /&gt;
! &amp;lt;tt&amp;gt;vasp compiled here&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;/share/apps/vasp.4.6/bin/vasp&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 68  (seconds)&lt;br /&gt;
| 116 (seconds)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 50 (seconds)&lt;br /&gt;
| 86 (seconds)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 56 (seconds)&lt;br /&gt;
| (cannot run -- killed)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VASP on WCR ===&lt;br /&gt;
&lt;br /&gt;
The procecure is similar to that on MC-CC, except that different compilers need to be used.&lt;br /&gt;
&lt;br /&gt;
First, the command &amp;lt;tt&amp;gt;mpi-selector&amp;lt;/tt&amp;gt; allows us to choose among different MPI compilers installed on the cluster.&lt;br /&gt;
&lt;br /&gt;
 $ mpi-selector --list&lt;br /&gt;
 mvapich_gcc-0.9.9&lt;br /&gt;
 mvapich_gcc-1.0&lt;br /&gt;
 mvapich_intel-0.9.9&lt;br /&gt;
 mvapich_intel-1.0&lt;br /&gt;
 mvapich_pgi-0.9.9&lt;br /&gt;
 mvapich_pgi-1.0&lt;br /&gt;
 openmpi_gcc-1.2.2&lt;br /&gt;
 openmpi_intel-1.2.2&lt;br /&gt;
 openmpi_pgi-1.2.2&lt;br /&gt;
&lt;br /&gt;
This gives us a list of choices.  Next, we choose &amp;lt;tt&amp;gt;mvapich_intel-0.9.9&amp;lt;/tt&amp;gt; by&lt;br /&gt;
&lt;br /&gt;
 $ mpi-selector --set mvapich_intel-0.9.9&lt;br /&gt;
&lt;br /&gt;
You can double-check that your choice has been made by&lt;br /&gt;
&lt;br /&gt;
 $ mpi-selector --query&lt;br /&gt;
 default:mvapich_intel-0.9.9&lt;br /&gt;
 level:user&lt;br /&gt;
&lt;br /&gt;
Now you need to log-out of the cluster.  When you log-in again, all MPI library paths will be correctly set up for you, e.g.&lt;br /&gt;
&lt;br /&gt;
 $ which mpif90&lt;br /&gt;
 /usr/mpi/intel/mvapich-0.9.9/bin/mpif90&lt;br /&gt;
&lt;br /&gt;
Now we go to the vasp.4.lib/ directory and execute the following commands.  &lt;br /&gt;
&lt;br /&gt;
 rm makefile&lt;br /&gt;
 wget http://micro.stanford.edu/mediawiki/images/1/1a/Vasp.4.lib_makefile.wcr.txt -O Makefile&lt;br /&gt;
 make clean&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will create &amp;lt;tt&amp;gt;libdmy.a&amp;lt;/tt&amp;gt; in this directory.&lt;br /&gt;
&lt;br /&gt;
Next, go to vasp.4.6/ directory and execute the following commands.  &lt;br /&gt;
&lt;br /&gt;
 rm makefile&lt;br /&gt;
 wget http://micro.stanford.edu/mediawiki/images/e/e4/Vasp.4.6_makefile.wcr.txt -O Makefile&lt;br /&gt;
 make clean&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will create executable &amp;lt;tt&amp;gt;vasp&amp;lt;/tt&amp;gt; in this directory.  This time the executable &amp;lt;tt&amp;gt;vasp&amp;lt;/tt&amp;gt; can not run interactively, but can only run in the queue through a PBS script (e.g. &amp;lt;tt&amp;gt;mpiexec -np 4 vasp&amp;lt;/tt&amp;gt;).  Make sure in your directories, you do not have another file named makefile, which takes precedence over Makefile. &lt;br /&gt;
&lt;br /&gt;
There is another executable at &amp;lt;tt&amp;gt;/share/apps/vasp.4.6/vasp&amp;lt;/tt&amp;gt;, which can execute in both serial and parallel mode.  To see that this executable contains MPI functions, use command&lt;br /&gt;
&lt;br /&gt;
 nm /share/apps/vasp.4.6/vasp | grep -i &amp;quot;MPI&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following table compares the time to run the same benchmark case as above using both executables.  Our executable shows speed up with multiple CPUs. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number of CPUs&lt;br /&gt;
! &amp;lt;tt&amp;gt;vasp compiled here&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;/share/apps/vasp.4.6/vasp&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;vasp&amp;lt;/tt&amp;gt; another build (below)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 76 (seconds)&lt;br /&gt;
| 75 (seconds)&lt;br /&gt;
| 48 (seconds)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 59 (seconds)&lt;br /&gt;
| 72 (seconds)&lt;br /&gt;
| 34 (seconds)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 35 (seconds)&lt;br /&gt;
| 64 (seconds)&lt;br /&gt;
| 29 (seconds)&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| 37 (seconds)&lt;br /&gt;
| 65 (seconds)&lt;br /&gt;
| 31 (seconds)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Another way to compile vasp on WCR is the following.  First&lt;br /&gt;
&lt;br /&gt;
 $ mpi-selector --unset&lt;br /&gt;
&lt;br /&gt;
Log out WCR and log in again.  Go to &amp;lt;tt&amp;gt;vasp.4.lib/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 rm makefile&lt;br /&gt;
 wget http://micro.stanford.edu/mediawiki/images/3/3c/Vasp.4.lib_makefile.wcr-intel.txt -O Makefile&lt;br /&gt;
 make clean&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will re-create the &amp;lt;tt&amp;gt;libdmy.a&amp;lt;/tt&amp;gt; in this directory. Next, go to &amp;lt;tt&amp;gt;vasp.4.6/&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
 rm makefile&lt;br /&gt;
 wget http://micro.stanford.edu/mediawiki/images/c/c5/Vasp.4.6_makefile.wcr-intel.txt -O Makefile&lt;br /&gt;
 make clean&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will create executable &amp;lt;tt&amp;gt;vasp&amp;lt;/tt&amp;gt; in this directory.  The performance of this executable is listed in the fourth column of the table above.&lt;br /&gt;
&lt;br /&gt;
=== VASP on SU-AHPCRC ===&lt;br /&gt;
&lt;br /&gt;
The procecure is similar to that on WCR.  First, we choose the &amp;lt;tt&amp;gt;mvapich2_intel-1.2&amp;lt;/tt&amp;gt; compiler by&lt;br /&gt;
&lt;br /&gt;
 $ mpi-selector --set mvapich2_intel-1.2&lt;br /&gt;
&lt;br /&gt;
Now you need to log-out of the cluster and log-in again to have the MPI library paths correctly set up.  Next Go to the vasp.4.lib/ directory and execute the following commands.  &lt;br /&gt;
&lt;br /&gt;
 rm makefile&lt;br /&gt;
 wget http://micro.stanford.edu/mediawiki/images/9/92/Vasp.4.lib_makefile.su-ahpcrc.txt -O Makefile&lt;br /&gt;
 make clean&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will create &amp;lt;tt&amp;gt;libdmy.a&amp;lt;/tt&amp;gt; in this directory.&lt;br /&gt;
&lt;br /&gt;
Next, go to vasp.4.6/ directory and execute the following commands.  &lt;br /&gt;
&lt;br /&gt;
 rm makefile&lt;br /&gt;
 wget http://micro.stanford.edu/mediawiki/images/9/9f/Vasp.4.6_makefile.su-ahpcrc.txt -O Makefile&lt;br /&gt;
 make clean&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will create executable &amp;lt;tt&amp;gt;vasp&amp;lt;/tt&amp;gt; in this directory.  This time the executable &amp;lt;tt&amp;gt;vasp&amp;lt;/tt&amp;gt; can not run interactively, but can only run in the queue through a PBS script (e.g. &amp;lt;tt&amp;gt;mpiexec --comm=ib -np 4 vasp&amp;lt;/tt&amp;gt;).  Notice that here we need to specify the communication channel.  (For mvapich1 we need to use --comm=ib and for mvapich2 use --comm=pmi.)&lt;br /&gt;
&lt;br /&gt;
The following table provides the timing information for the same benchmark case studied above.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number of CPUs&lt;br /&gt;
! &amp;lt;tt&amp;gt;vasp compiled here&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 40 (seconds)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 28 (seconds)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 27 (seconds)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 29 (seconds)&lt;br /&gt;
|-&lt;br /&gt;
| 8 &lt;br /&gt;
| 31 (seconds)&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| 215 (seconds)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;&#039;&#039;&#039;A Word of Caution&#039;&#039;&#039;&amp;lt;/font&amp;gt;: Make sure to run a few test cases to confirm your executable not only runs but produces the correct numerical results.  For example, we have found that on su-ahpcrc, function BRMIX (broyden.f) was giving serious errors.  This was solved by changing the compilation options to &amp;quot;OFLAG=-O1 -mtune core2 -axW -unroll&amp;quot;, and by changing &amp;quot;ICHARG = 0&amp;quot;  to &amp;quot;ICHARG = 2&amp;quot; in INCAR.  (&amp;quot;ICHARG=2&amp;quot; is the default when &amp;quot;ISTART=0&amp;quot; or if there are no CHG, CHGCAR, WAVECAR files in the folder.)&lt;br /&gt;
&lt;br /&gt;
Here are several test cases of VASP:&lt;br /&gt;
&lt;br /&gt;
[[VASP Computing Bulk Modulus of Au]]&lt;br /&gt;
&lt;br /&gt;
[[VASP Computing Bulk Modulus of ZrO2]]&lt;br /&gt;
&lt;br /&gt;
=== Intel MKL instructions ===&lt;br /&gt;
&lt;br /&gt;
There are &amp;quot;official&amp;quot; instructions to compile VASP with the Intel Compiler family, named [http://www.intel.com/support/performancetools/libraries/mkl/sb/CS-028850.htm  Using Intel MKL in VASP]. Those instructions are unrelated with the present instructions but can be a good reference for future builds.&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=2D_Dislocation_Dynamics&amp;diff=3701</id>
		<title>2D Dislocation Dynamics</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=2D_Dislocation_Dynamics&amp;diff=3701"/>
		<updated>2009-11-03T23:14:52Z</updated>

		<summary type="html">&lt;p&gt;Wcash: New page: =Simulation and observation of dislocation pattern evolution in the early stages of fatigue in a copper single crystal= &amp;#039;&amp;#039;&amp;#039;J. Yang, Y. Li, S. Li, C. Ma, G. Li&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;Materials Science &amp;amp; En...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Simulation and observation of dislocation pattern evolution in the early stages of fatigue in a copper single crystal=&lt;br /&gt;
&#039;&#039;&#039;J. Yang, Y. Li, S. Li, C. Ma, G. Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Materials Science &amp;amp; Engineering A, 2001&#039;&#039;&#039;&lt;br /&gt;
*Experimental and numerical study of single-crystal copper oriented for single-slip under constant plastic strain amplitude of 2e-4 at a frequency of 0.2 Hz&lt;br /&gt;
*Only modeled parallel edge dislocations of magnitude +/- b&lt;br /&gt;
*Initially a random distribution of 20 + and 20 - dislocations&lt;br /&gt;
*Only consider multiplication; annihilation is ignored&lt;br /&gt;
*Climb and cross-slip are ignored&lt;br /&gt;
*simulation area of 3.6 x 3 &amp;lt;math&amp;gt;\mu m ^2&amp;lt;/math&amp;gt; with PBCs in x&amp;amp;y&lt;br /&gt;
*using the typical singular elastic stress fields&lt;br /&gt;
**If distance between dislocations is &amp;lt;10b, a distance of 10b is used in the stress field calculation to avoid singularity since they don&#039;t consider annihilation.&lt;br /&gt;
*Mobility: &amp;lt;math&amp;gt;v=v_o \left ( \frac{\tau}{\tau _o} \right ) ^m&amp;lt;/math&amp;gt;&lt;br /&gt;
*It appears that if they had an initial dislocation density on the order of &amp;lt;math&amp;gt;10^{10} m^2&amp;lt;/math&amp;gt; that the dislocations would randomly arrange after cycling? If they used an initial density of $10^{12} m^2&amp;lt;/math&amp;gt; the dislocation patterns would emerge - this is why they chose 40 initial dislocations.  (It&#039;s hard to tell because this section was poorly written&lt;br /&gt;
*State they use triangular waveform, but appear to indicate it&#039;s the applied shear stress. (confusing)&lt;br /&gt;
*During cyclic deformation the maximum stress increases until saturation at about 28 MPa.&lt;br /&gt;
*Only consider 5 values of resolved shear stress (10, 15, 20, 25, 28 MPa) to speed up calculations?&lt;br /&gt;
*If strain rate is &amp;lt;2e-4 when the resolved shear stress is 28 MPa, then dislocation multiplication occurs&lt;br /&gt;
**20 to 200 dislocations with an equal distribution of +/- b are added based on the how far below the predicted strain rate the simulation was. &lt;br /&gt;
**Makes no mention of where these new dislocations are located&lt;br /&gt;
*Dislocations initially pattern themselves into &amp;quot;matrix walls&amp;quot; (not the same as PSB walls), which become veins with continued cycling.&lt;br /&gt;
**vertical walls are comprised of dislocations with the same Burgers vector&lt;br /&gt;
**Dislcations of opposite sign form walls oriented at 45 degrees.&lt;br /&gt;
**Says this is an equilibrium distribution according to classical dislocation theory, but cites a Chinese book I can&#039;t find.&lt;br /&gt;
*claim that cross-slip of screw dislocations is unimportant in the early stages of fatigue prior to PSB emergence.  &lt;br /&gt;
*claim that screw dislocations spanning the matrix walls cause them to fragment and form into veins.&lt;br /&gt;
**In the simulation they select 6-8 cutting positions randomly, but I can&#039;t understand what they were doing because it is poorly written.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Evolution of persistent slip bands and simulation of its stress field in a fatigued copper single crystal=&lt;br /&gt;
&#039;&#039;&#039;J. Yang, Y. Li, Z. Cai, S. Li, C. Ma, E. Han, W. Ke&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Materials Science &amp;amp; Engineering A, 2003&#039;&#039;&#039;&lt;br /&gt;
*claims to be a 3D &amp;quot;discrete dislocation method&amp;quot;, but the edge and screw dislocations are treated as perfectly straight&lt;br /&gt;
**Never clearly explained if they are using dynamics at all&lt;br /&gt;
**No mention of how their structures are generated and if they&#039;re even stable&lt;br /&gt;
*constant plastic strain amplitude of 1e-3&lt;br /&gt;
*only edge dislocations of +/-b in the matrix veins and PSB walls; only screw dislocations in the channels&lt;br /&gt;
*equal distribution of left/right screw and +/- edge&lt;br /&gt;
*Simulate a volume of 6 x 5 x 4 &amp;lt;math&amp;gt;\mu m^3&amp;lt;/math&amp;gt; with PBCs&lt;br /&gt;
*edge dislocations are distributed randomly in the veins/walls and screw dislocations were distributed randomly in the channels, &amp;quot;according to an actual experimental photograph&amp;quot;&lt;br /&gt;
*Edge dislocation density of ~3e14 and screw dislocation density on the order of &amp;lt;math&amp;gt;10^12&amp;lt;/math&amp;gt; &lt;br /&gt;
*again using the singular elastic stress fields, but with a critical distance of 3b this time&lt;br /&gt;
*DD is used to calculate the internal stress distributions and FEM is used to calculate the external stress distributions&lt;br /&gt;
**In the FEM mesh the veins and walls has a yield stress of 100 MPa and a Young&#039;s modulus of 110 GPa, while the matrix between veins has 60 MPa and a modulus of 108 GPa and the matrix between PSB walls is only 56 MPa and a modulus of 106 GPa.&lt;br /&gt;
**Claim PSB channels are softer due to vacancies&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=William_Cash&amp;diff=1000</id>
		<title>William Cash</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=William_Cash&amp;diff=1000"/>
		<updated>2009-10-22T10:06:53Z</updated>

		<summary type="html">&lt;p&gt;Wcash: updated personal info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[image:Billy_cover.jpg|thumb|330px|Modeling on the cover of Sound &amp;amp; Vibration.  I&#039;m kind of a big deal. ;-)]]&lt;br /&gt;
&lt;br /&gt;
=William Cash=&lt;br /&gt;
Billy is a Ph.D. candidate in mechanical engineering studying dislocations. &lt;br /&gt;
&lt;br /&gt;
Someday he&#039;ll get around to filling out this page...&lt;br /&gt;
&lt;br /&gt;
===Education===&lt;br /&gt;
*06/2009 - present: Ph.D. Mechanical Engineering. Stanford University&amp;lt;br/&amp;gt;&lt;br /&gt;
*09/2007 - 06/2009: M.S. Mechanical Engineering.  Stanford University&amp;lt;br/&amp;gt;&lt;br /&gt;
*09/2003 - 06/2007: B.S. Mechanical Engineering &#039;&#039;Summa Cum Laude&#039;&#039;.  The Ohio State University&lt;br /&gt;
&lt;br /&gt;
===Awards===&lt;br /&gt;
*2007 - 2010 Benchmark Stanford Graduate Fellowship&lt;br /&gt;
&lt;br /&gt;
===Contact Information===&lt;br /&gt;
Office: Durand 204 &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Address: &amp;lt;td/&amp;gt;&amp;lt;td&amp;gt;William Cash&amp;lt;td/&amp;gt;&amp;lt;tr/&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;td/&amp;gt;&amp;lt;td&amp;gt;Mechanics and Computation Group&amp;lt;td/&amp;gt;&amp;lt;tr/&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;td/&amp;gt;&amp;lt;td&amp;gt;Durand Bldg. Rm. 204&amp;lt;td/&amp;gt;&amp;lt;tr/&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;td/&amp;gt;&amp;lt;td&amp;gt;496 Lomita Mall&amp;lt;td/&amp;gt;&amp;lt;tr/&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;td/&amp;gt;&amp;lt;td&amp;gt;Stanford, CA 94305&amp;lt;td/&amp;gt;&amp;lt;tr/&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
Email: &amp;lt;math&amp;gt;\mathrm{wcash\;at\;stanford\;dot\;edu}&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Group_Members&amp;diff=1076</id>
		<title>Group Members</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Group_Members&amp;diff=1076"/>
		<updated>2009-10-22T09:59:09Z</updated>

		<summary type="html">&lt;p&gt;Wcash: Fixed alphabetical order of grad student names&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
===Professor===&lt;br /&gt;
:[[Wei Cai]]&lt;br /&gt;
&lt;br /&gt;
===Research Associate===&lt;br /&gt;
:[[Sylvie Aubry]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graduate Students===&lt;br /&gt;
:[[William Cash]]&lt;br /&gt;
:[[Keonwook Kang]]&lt;br /&gt;
:[[Haneesh Kesari]]&lt;br /&gt;
:[[Hark Lee]]&lt;br /&gt;
:[[Eunseok Lee]]&lt;br /&gt;
:[[Seokwoo Lee]]&lt;br /&gt;
:[[Seunghwa Ryu]]&lt;br /&gt;
:[[Ill Ryu]]&lt;br /&gt;
:[[Jie Yin]]&lt;br /&gt;
&lt;br /&gt;
===Former Members===&lt;br /&gt;
:[[Chris Weinberger | Chris Weinberger (former PhD student)]]&lt;br /&gt;
:[[William Fong | William Fong (guest)]]&lt;br /&gt;
:[[Alfredo Correa | Alfredo Correa (former postdoc)]]&lt;br /&gt;
&lt;br /&gt;
===Collaborator===&lt;br /&gt;
:[[Alfonso Garcia]]&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=How_to_install_and_configure_the_Cisco_VPN_client_on_a_Linux_computer&amp;diff=1524</id>
		<title>How to install and configure the Cisco VPN client on a Linux computer</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=How_to_install_and_configure_the_Cisco_VPN_client_on_a_Linux_computer&amp;diff=1524"/>
		<updated>2009-04-30T08:55:26Z</updated>

		<summary type="html">&lt;p&gt;Wcash: uploaded photos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=How to set up the Cisco VPN client on a Linux computer=&lt;br /&gt;
[[William Cash]] and [[Keonwook Kang]]&lt;br /&gt;
----&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Updates==&lt;br /&gt;
4/28/09 - This guide has been around in different forms for nearly two years and has generated a good deal of interest.  The basic steps are still exactly the same, but many of the compilation errors listed in the subsections have been resolved in newer versions of the Cisco VPN client (v4.8.02.0030) and Linux kernel (2.6.28).  I&#039;m still actively updating this site for my own sake, so please contact me ([[William Cash]]) with any mistakes or suggestions.  &lt;br /&gt;
&lt;br /&gt;
4/29/09 - Added a section on &amp;lt;tt&amp;gt;vpnc&amp;lt;/tt&amp;gt; in Ubuntu, because I now feel that it&#039;s integrated into the OS well-enough to be superior to the Cisco VPN client.  &lt;br /&gt;
==Introduction==&lt;br /&gt;
Cisco VPN is required to connect to many of Stanford&#039;s computer resources because of some past security lapses.  Unlike the Windows and Mac OS clients, Cisco&#039;s Linux VPN requires use of the terminal and comparatively little documentation from the company.  This guide will show you how to install and use the Linux client. In addition, it addresses some of the most common problems encountered during this problem.&lt;br /&gt;
&lt;br /&gt;
As an alternative to using the Cisco VPN client, &amp;lt;tt&amp;gt;vpnc&amp;lt;/tt&amp;gt; is an open-source program available on many *NIX systems that is compatible with Cisco VPNs.  A general guide for &amp;lt;tt&amp;gt;vpnc&amp;lt;/tt&amp;gt; is not included here.  However, instructions for using it with Ubuntu&#039;s Network Manager are discussed at the end of this document.  This is a more elegant and useful way to connect to Cisco VPNs, and I encourage Ubuntu users to try this before they install the Cisco VPN client.  &lt;br /&gt;
&lt;br /&gt;
==Installing the VPN client==&lt;br /&gt;
&#039;&#039;Note: most of the following steps require superuser access&#039;&#039;.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Download the v4.8 VPN client from [http://vpn.stanford.edu http://vpn.stanford.edu].&lt;br /&gt;
 &amp;lt;li&amp;gt;Extract the downloaded file.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# mv vpnclient-linux-4.8.tar.gz /usr/local/src&lt;br /&gt;
# cd /usr/local/src&lt;br /&gt;
# tar -zxvf vpnclient-linux-4.8.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the VPN client&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd vpnclient&lt;br /&gt;
# ./vpn_install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Answer the following questions during the installation (the defaults should be fine)&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./vpn_install &lt;br /&gt;
Cisco Systems VPN Client Version 4.8.00 (0490) Linux Installer&lt;br /&gt;
Copyright (C) 1998-2005 Cisco Systems, Inc. All Rights Reserved.&lt;br /&gt;
&lt;br /&gt;
By installing this product you agree that you have read the&lt;br /&gt;
license.txt file (The VPN Client license) and will comply with&lt;br /&gt;
its terms. &lt;br /&gt;
&lt;br /&gt;
Directory where binaries will be installed [/usr/local/bin]&lt;br /&gt;
&lt;br /&gt;
Automatically start the VPN service at boot time [yes]yes&lt;br /&gt;
&lt;br /&gt;
In order to build the VPN kernel module, you must have the&lt;br /&gt;
kernel headers for the version of the kernel you are running.&lt;br /&gt;
&lt;br /&gt;
Directory containing linux kernel source code &lt;br /&gt;
                      [/lib/modules/2.6.18-8.1.8.el5/build]&lt;br /&gt;
&lt;br /&gt;
* Binaries will be installed in &amp;quot;/usr/local/bin&amp;quot;.&lt;br /&gt;
* Modules will be installed in &amp;quot;/lib/modules/2.6.18-8.1.8.el5/CiscoVPN&amp;quot;.&lt;br /&gt;
* The VPN service will be started AUTOMATICALLY at boot time.&lt;br /&gt;
* Kernel source from &amp;quot;/lib/modules/2.6.18-8.1.8.el5/build&amp;quot; &lt;br /&gt;
  will be used to build the module.&lt;br /&gt;
&lt;br /&gt;
Is the above correct [y]y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Note that you need to reinstall the VPN client whenever your kernel is upgraded. Before reinstalling it, first run:&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./vpn_uninstall&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
to clean files and directories previously installed.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===If you&#039;re receiving errors during installation===&lt;br /&gt;
====Most common error====&lt;br /&gt;
With the newer Linux kernels that are incompatible with the Cisco VPN you may receive an errors similiar to these:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
* Binaries will be installed in &amp;quot;/usr/local/bin&amp;quot;.&lt;br /&gt;
* Modules will be installed in &amp;quot;/lib/modules/2.6.24-19-generic/CiscoVPN&amp;quot;.&lt;br /&gt;
* The VPN service will be started AUTOMATICALLY at boot time.&lt;br /&gt;
* Kernel source from &amp;quot;/lib/modules/2.6.24-19-generic/build&amp;quot;&lt;br /&gt;
 will be used to build the module.&lt;br /&gt;
&lt;br /&gt;
Is the above correct [y]y&lt;br /&gt;
&lt;br /&gt;
Making module&lt;br /&gt;
make -C /lib/modules/2.6.24-19-generic/build SUBDIRS=/usr/local/src/vpnclient modules&lt;br /&gt;
make[1]: Entering directory `/usr/src/linux-headers-2.6.24-19-generic&#039;&lt;br /&gt;
  CC [M]  /usr/local/src/vpnclient/linuxcniapi.o&lt;br /&gt;
In file included from /usr/local/src/vpnclient/Cniapi.h:15,&lt;br /&gt;
                 from /usr/local/src/vpnclient/linuxcniapi.c:31:&lt;br /&gt;
/usr/local/src/vpnclient/GenDefs.h:113: error: conflicting types for ‘uintptr_t’&lt;br /&gt;
include/linux/types.h:40: error: previous declaration of ‘uintptr_t’ was here&lt;br /&gt;
make[2]: *** [/usr/local/src/vpnclient/linuxcniapi.o] Error 1&lt;br /&gt;
make[1]: *** [_module_/usr/local/src/vpnclient] Error 2&lt;br /&gt;
make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-19-generic&#039;&lt;br /&gt;
make: *** [default] Error 2&lt;br /&gt;
Failed to make module &amp;quot;cisco_ipsec.ko&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
This is a fairly well known problem with numerous websites and forum postings on the topic.  The website [http://projects.tuxx-home.at/?id=cisco_vpn_client http://projects.tuxx-home.at] has been releasing patches for the installation files of the Cisco VPN client for all the latest Linux kernels.&lt;br /&gt;
&lt;br /&gt;
Instead of using the VPN client provided by Stanford, download the latest one from there (currently v4.8.02.0030) and the patch file for the linux kernel you are running. &amp;lt;font color=red&amp;gt;Update: Stanford has finally decided to upgrade its download to v4.8.02.0030 , as well.&amp;lt;/font&amp;gt;  If you aren&#039;t sure which you have run:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# uname -a&lt;br /&gt;
Linux cmoney 2.6.24-19-generic #1 SMP Fri Jul 11 23:41:49 UTC 2008 i686 GNU/Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Assuming you&#039;ve already performed steps 1-2 of installation procedure for the new client, you will now place your patch file in the &amp;lt;tt&amp;gt;vpnclient&amp;lt;/tt&amp;gt; directory and patch the installation:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# patch &amp;lt; vpnclient-linux-2.6.24-final.diff &lt;br /&gt;
patching file GenDefs.h&lt;br /&gt;
patching file interceptor.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Then follow steps 3 and 4 as before.&lt;br /&gt;
&lt;br /&gt;
====64-bit operating system errors====&lt;br /&gt;
If you are still receiving errors after using the previous patch and are using a 64-bit OS, you should also patch the installer with &amp;lt;tt&amp;gt;cisco_skbuff_offset.patch&amp;lt;/tt&amp;gt; from [http://projects.tuxx-home.at/?id=cisco_vpn_client http://projects.tuxx-home.at].&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# patch &amp;lt; cisco_skbuff_offset.patch &lt;br /&gt;
patching file frag.c&lt;br /&gt;
patching file interceptor.c&lt;br /&gt;
Hunk #1 succeeded at 684 (offset 54 lines).&lt;br /&gt;
Hunk #2 succeeded at 723 (offset 54 lines).&lt;br /&gt;
Hunk #3 succeeded at 845 (offset 54 lines).&lt;br /&gt;
patching file linuxcniapi.c&lt;br /&gt;
patching file linuxkernelapi.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Then follow steps 3 and 4 as before.&lt;br /&gt;
&lt;br /&gt;
====CFLAGS / EXTRA_CFLAGS error====&lt;br /&gt;
Finally, if you&#039;ve tried the last two patches and are receiving the following error when compiling:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Making module&lt;br /&gt;
make -C /lib/modules/2.6.24-19-generic/build SUBDIRS=/usr/local/src/vpnclient modules&lt;br /&gt;
make[1]: Entering directory `/usr/src/linux-headers-2.6.24-19-generic&#039;&lt;br /&gt;
scripts/Makefile.build:46: *** CFLAGS was changed in &amp;quot;/usr/local/src/vpnclient/Makefile&amp;quot;. Fix it to use EXTRA_CFLAGS.  Stop.&lt;br /&gt;
make[1]: *** [_module_/usr/local/src/vpnclient] Error 2&lt;br /&gt;
make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-19-generic&#039;&lt;br /&gt;
make: *** [default] Error 2&lt;br /&gt;
Failed to make module &amp;quot;cisco_ipsec.ko&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
you need to do exactly what the compiler error is telling you and change CFLAGS to EXTRA_CFLAGS in the makefile.  First, open the file &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; in the installer directory with your preferred text editor.&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# nano Makefile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Then, change CFLAGS to EXTRA_CFLAGS in line 15.  The line should read:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
EXTRA_CFLAGS += -mcmodel=kernel -mno-red-zone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;  &lt;br /&gt;
Now try compiling once more.&lt;br /&gt;
==Configuring the VPN Client==&lt;br /&gt;
Note: As an alternative to the steps below, Stanford now provides a working configuration file that can simply be placed in the Profile directory (&amp;lt;tt&amp;gt;/etc/opt/cisco-vpnclient/Profiles&amp;lt;/tt&amp;gt;).  A line to store your user name can be added to the profile (see Step 2).  This profile is not included in the supplied VPN client and must be downloaded separately from [http://vpn.stanford.edu http://vpn.stanford.edu].&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A sample configuration file is: &amp;lt;tt&amp;gt;/etc/opt/cisco-vpnclient/Profiles/sample.pcf&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /etc/opt/cisco-vpnclient/Profiles&lt;br /&gt;
# ls -l sample.pcf&lt;br /&gt;
-rw-rw-rw- 1 root bin  560 Sep 18 08:34 sample.pcf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy and edit the configuration file.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp -p sample.pcf stanford.pcf&lt;br /&gt;
# vi stanford.pcf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
The edited configuration file should look similar to this:&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
[main]&lt;br /&gt;
Description=sample user profile&lt;br /&gt;
Host=su-vpn.stanford.edu&lt;br /&gt;
AuthType=1&lt;br /&gt;
GroupName=Stanford_Public_VPN&lt;br /&gt;
GroupPwd=&lt;br /&gt;
enc_GroupPwd=&lt;br /&gt;
Username=john.doe&lt;br /&gt;
SaveUserPassword=0&lt;br /&gt;
EnableISPConnect=0&lt;br /&gt;
ISPConnectType=0&lt;br /&gt;
ISPConnect=&lt;br /&gt;
ISPCommand=&lt;br /&gt;
EnableBackup=0&lt;br /&gt;
BackupServer=&lt;br /&gt;
EnableNat=1&lt;br /&gt;
CertStore=0&lt;br /&gt;
CertName=&lt;br /&gt;
CertPath=&lt;br /&gt;
CertSubjectName=&lt;br /&gt;
CertSerialHash=00000000000000000000000000000000&lt;br /&gt;
DHGroup=2&lt;br /&gt;
ForceKeepAlives=0&lt;br /&gt;
UserPassword=&lt;br /&gt;
enc_UserPassword=&lt;br /&gt;
ISPPhonebook=&lt;br /&gt;
NTDomain=&lt;br /&gt;
EnableMSLogon=1&lt;br /&gt;
MSLogonType=0&lt;br /&gt;
TunnelingMode=0&lt;br /&gt;
TcpTunnelingPort=10000&lt;br /&gt;
SendCertChain=0&lt;br /&gt;
PeerTimeout=90&lt;br /&gt;
EnableLocalLAN=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start VPN service.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# /etc/init.d/vpnclient_init start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Note that VPN service will be started automatically at boot time. If you want to stop VPN service, use the option &amp;lt;tt&amp;gt;stop&amp;lt;/tt&amp;gt; instead. Also, You may use &amp;lt;tt&amp;gt;status&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;restart&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;reload&amp;lt;/tt&amp;gt; in addition to &amp;lt;tt&amp;gt;start&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;stop&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;For a detailed description of each keyword in configuration file, refer to [http://www.cisco.com/en/US/docs/security/vpn_client/cisco_vpn_client/vpn_client46/linux_solaris/user/guide/vcugls3.html Cisco&#039;s guide].&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
===VPN service still does not start automatically after rebooting===&lt;br /&gt;
If you issued the previously mentioned command to start the VPN service at boot but are receiving the error message:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Could not attach to driver. Is kernel module loaded?&lt;br /&gt;
The application was unable to communicate with the VPN sub-system.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
after rebooting, your operating system is not actually starting the service.  A temporary, but somewhat annoying fix, is to continue issuing the command:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# /etc/init.d/vpnclient_init start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
each time you reboot the system.  To actually remedy the problem, you need to create symbolic links for the VPN client at different run-levels. The Cisco VPN client, only creates one in runlevel 4, but many Linux OS&#039;s don&#039;t run at this level. For example, Ubuntu commonly uses runlevel 2.  To have the client start at boot for runlevel 2, issue the command:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/init.d/vpnclient_init /etc/rc2.d/S85vpnclient_init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
To have the client run at a different runlevel boot simply replace &amp;lt;tt&amp;gt;rc2&amp;lt;/tt&amp;gt; in the previous command with the appropriate number.  If you are unsure which runlevel to choose, you could place links in all seven.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the VPN Host==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Once the VPN client service starts, you are ready to connect to the VPN Concentrator. Enter the group password and your SUNet ID/Pass to activate the connection. The group password is given in the file &amp;lt;tt&amp;gt;REAME-Stanford&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note: If you don&#039;t want to keep entering that terrible group password, you can store it under &amp;lt;tt&amp;gt;GroupPwd=&amp;lt;/tt&amp;gt; in the configuration file.  The first time the client connects with the host it will remove the plain-text password and replace it with an encrypted one under &amp;lt;tt&amp;gt;enc_GroupPwd=&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# vpnclient connect stanford&lt;br /&gt;
Cisco Systems VPN Client Version 4.8.00 (0490)&lt;br /&gt;
Copyright (C) 1998-2005 Cisco Systems, Inc. All Rights Reserved.&lt;br /&gt;
Client Type(s): Linux&lt;br /&gt;
Running on: Linux 2.6.18-8.1.8.el5 #1 SMP Tue Jul 10 06:50:22 EDT 2007 i686&lt;br /&gt;
Config file directory: /etc/opt/cisco-vpnclient&lt;br /&gt;
&lt;br /&gt;
Enter a group password:&lt;br /&gt;
Initializing the VPN connection.&lt;br /&gt;
Contacting the gateway at XXX.XX.X.XXX&lt;br /&gt;
User Authentication for stanford...&lt;br /&gt;
&lt;br /&gt;
Enter Username and Password.&lt;br /&gt;
&lt;br /&gt;
Username [john.doe]:      &lt;br /&gt;
Password []: &lt;br /&gt;
Authenticating user.&lt;br /&gt;
Negotiating security policies.&lt;br /&gt;
Securing communication channel.&lt;br /&gt;
&lt;br /&gt;
Welcome to the Stanford public VPN Service.&lt;br /&gt;
&lt;br /&gt;
Unauthorized use is prohibited.&lt;br /&gt;
Do you wish to continue? (y/n): y&lt;br /&gt;
&lt;br /&gt;
Your VPN connection is secure.&lt;br /&gt;
&lt;br /&gt;
VPN tunnel information.&lt;br /&gt;
Client address: XXX.XX.XX.XX&lt;br /&gt;
Server address: XXX.XX.X.XXX&lt;br /&gt;
Encryption: 168-bit 3-DES&lt;br /&gt;
Authentication: HMAC-MD5&lt;br /&gt;
IP Compression: None&lt;br /&gt;
NAT passthrough is active on port UDP 10000&lt;br /&gt;
Local LAN Access is disabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Press &amp;lt;tt&amp;gt;ctrl + z&amp;lt;/tt&amp;gt; and type &amp;lt;tt&amp;gt;bg&amp;lt;/tt&amp;gt; to run vpnclient in the background. Now you can do ssh or scp to other machines.&lt;br /&gt;
&amp;lt;li&amp;gt;To disconnect, type:&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# vpnclient disconnect&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===If you are unable to connect without superuser privileges===&lt;br /&gt;
When trying to connect to the VPN host as a regular user you may encounter the following error:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
vpnclient connect stanford&lt;br /&gt;
Cisco Systems VPN Client Version 4.8.01 (0640)&lt;br /&gt;
Copyright (C) 1998-2007 Cisco Systems, Inc. All Rights Reserved.&lt;br /&gt;
Client Type(s): Linux&lt;br /&gt;
Running on: Linux 2.6.24-19-generic #1 SMP Fri Jul 11 23:41:49 UTC 2008 i686&lt;br /&gt;
Config file directory: /etc/opt/cisco-vpnclient&lt;br /&gt;
&lt;br /&gt;
The profile specified could not be read.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
This is because you don&#039;t have the correct privileges to read the profile file.&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /etc/opt/cisco-vpnclient/Profiles/&lt;br /&gt;
# ls -l&lt;br /&gt;
-rwx------ 1 root root 722 2008-07-26 15:32 stanford.pcf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
To change its permissions run:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# chmod 755 stanford.pcf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
as the superuser.&lt;br /&gt;
If you are still not able to use the VPN without being root, type:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# chmod 4111 /opt/cisco-vpnclient/bin/cvpnd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===If you are unable to browse the internet, check email, etc. after connecting to the VPN===&lt;br /&gt;
Another common problem with the Cisco VPN client for linux is that it disables your local LAN access once you connect to the host, even if the host is not set to disable local LAN access.  This can be remedied with the &amp;lt;tt&amp;gt;override-local-lan-access.diff&amp;lt;/tt&amp;gt; patch from [http://projects.tuxx-home.at/?id=cisco_vpn_client projects.tuxx-home.at]. You will first have to uninstall your VPN client and move the patch to &amp;lt;tt&amp;gt;vpnclient&amp;lt;/tt&amp;gt; source code directory. If you had to use the aforementioned kernel patch, apply that first.  Then apply the LAN access patch and install as usual.&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# patch &amp;lt; override-local-lan-access.diff &lt;br /&gt;
patching file interceptor.c&lt;br /&gt;
Hunk #1 succeeded at 727 (offset 16 lines).&lt;br /&gt;
Hunk #2 succeeded at 859 (offset 16 lines).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
====Additional LAN access issues due to Firestarter firewall====&lt;br /&gt;
Firestarter is a popular desktop firewall tool used by many Linux users.  However, it can also restrict internet access when the Cisco VPN is active.  A quick temporary fix is to open the Firestarter utility and simply stop the firewall.  A safer and permanent fix is to add the following code to &amp;lt;tt&amp;gt;/etc/firestarter/user-pre&amp;lt;/tt&amp;gt; (for many users this file will be empty beforehand):&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 640px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -A INPUT -j ACCEPT -s xxx.xxx.xxx.xxx -p esp&lt;br /&gt;
iptables -A INPUT -j ACCEPT -s xxx.xxx.xxx.xxx -p udp -m multiport –sports isakmp,10000&lt;br /&gt;
iptables -A INPUT -j ACCEPT -i cipsec0&lt;br /&gt;
iptables -A OUTPUT -j ACCEPT -d xxx.xxx.xxx.xxx -p esp&lt;br /&gt;
iptables -A OUTPUT -j ACCEPT -d xxx.xxx.xxx.xxx -p udp -m multiport –dports isakmp,10000&lt;br /&gt;
iptables -A OUTPUT -j ACCEPT -o cipsec0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Where &amp;lt;tt&amp;gt;xxx.xxx.xxx.xxx&amp;lt;/tt&amp;gt; is the IP address of the VPN server (you can find this from the Server Address given when starting the VPN), and &amp;lt;tt&amp;gt;cipsec0&amp;lt;/tt&amp;gt; is the common name for the VPN network device on your computer.  You can verify if &amp;lt;tt&amp;gt;cipsec0&amp;lt;/tt&amp;gt; is the correct name by running:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# ifconfig&lt;br /&gt;
cipsec0   Link encap:Ethernet  HWaddr ff:ff:ff:ff:ff:ff  &lt;br /&gt;
          inet addr:XXX.XXX.XXX.XXX  Mask:XXX.XXX.XXX.XXX&lt;br /&gt;
          inet6 addr: blah:blah::blah:blah Scope:Link&lt;br /&gt;
          UP RUNNING NOARP  MTU:1356  Metric:1&lt;br /&gt;
          RX packets:34 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:32 errors:0 dropped:6 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000 &lt;br /&gt;
          RX bytes:17531 (17.1 KB)  TX bytes:3848 (3.7 KB)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;ifconfig&amp;lt;/tt&amp;gt; will also display the names of your network and/or wireless cards.  &lt;br /&gt;
&lt;br /&gt;
For the changes to take effect, you will need to restart the firewall by running:&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 0; padding: rem; width: 625px;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# /etc/init.d/firestarter restart&lt;br /&gt;
 * Stopping the Firestarter firewall...                  [ OK ] &lt;br /&gt;
 * Starting the Firestarter firewall...                  [ OK ]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;tt&amp;gt;vpnc&amp;lt;/tt&amp;gt; Integration with Network Manager in Ubuntu 9.04==&lt;br /&gt;
Ubuntu&#039;s Network Manager is the way Ubuntu organizes all your wired and wireless networks.  It&#039;s the icon in the task bar you&#039;re always clicking to view all the available wifi signals, because it always seems to connect to the wrong network.  It used to suck (e.g. 7.04), but it has improved greatly in recent releases.  In version 9.04, I finally feel that it is reliable enough to warrant a section in this guide - especially since more of us at Stanford seem to be using Ubuntu these days.  &lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; To allow Network Manager to manage your Cisco VPN connection you will first need to install the &amp;lt;tt&amp;gt;vpnc&amp;lt;/tt&amp;gt; plugin.  You will need to get the packages &amp;lt;tt&amp;gt;network-manager-vpnc&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vpnc&amp;lt;/tt&amp;gt; from the Ubuntu repositories using either the Synaptic Package Manager or &amp;lt;tt&amp;gt;apt-get&amp;lt;/tt&amp;gt;.  If this is over your head, you can also find it in Add/Remove Programs if you search for &#039;vpnc&#039; in all available applications. &lt;br /&gt;
&amp;lt;li&amp;gt;Click the Network Manager icon in your task bar and there should now be an option labeled &amp;quot;VPN Connections&amp;quot;.  Expand this option and select Configure VPN, as shown below (my desktop and task bar probably look different than yours because I was on my netbook).&lt;br /&gt;
&lt;br /&gt;
[[image:vpnc_1.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The Network Connections window should open with the VPN tab selected.  Choose the &amp;quot;Add&amp;quot; option to create a new VPN connection, or you can import an existing .pcf configuration file using the &amp;quot;Import&amp;quot; button.  A window like the one below will open. Gateway is the URL or IP address of the VPN host (this is called &amp;quot;Host&amp;quot; in the  Cisco .pcf configuration file).  Group name, user name, and their passwords are all self-explanatory and can be permanently stored if you prefer.  These should be the only options most users should have to change.&lt;br /&gt;
&lt;br /&gt;
[[image:vpnc_2.png|325px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Apply the changes and now try to connect to the VPN by returning to Network Manager in the task bar and selecting your newly created VPN.&lt;br /&gt;
&lt;br /&gt;
[[image:vpnc_3.png|450px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;It may ask you for access to your network security key ring. You should select &amp;quot;Always Allow&amp;quot; unless you want the window to continually pop up.  &lt;br /&gt;
&amp;lt;li&amp;gt;If it successfully finds the server it will either ask or verify your passwords.  Assuming these are correct you should receive a confirmation message such as the one below.  I&#039;m not sure if this message is specific to the Stanford VPN, but it asks you to click the &amp;quot;Continue Button&amp;quot;.  I have no idea where this so-called button is, but the VPN works fine anyway.  You will know your VPN connection is active if there is a gold padlock on top of your Network Manager icon.  &lt;br /&gt;
&lt;br /&gt;
[[image:vpnc_4.png|400px|thumb|center]]&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
#[https://www.stanford.edu/group/hpcc/support/linux.html https://www.stanford.edu/group/hpcc/support/linux.html]&lt;br /&gt;
#[http://www.cisco.com/en/US/products/hw/vpndevc/ps2284/products_configuration_example09186a0080094673.shtml http://www.cisco.com/en/US/products/hw/vpndevc/ps2284/products_configuration_example09186a0080094673.shtml]&lt;br /&gt;
#[http://www.cisco.com/en/US/docs/security/vpn_client/cisco_vpn_client/vpn_client46/linux_solaris/user/guide/vcugls3.html http://www.cisco.com/en/US/docs/security/vpn_client/cisco_vpn_client/vpn_client46/linux_solaris/user/guide/vcugls3.html]&lt;br /&gt;
#[http://www.linuxforums.org/forum/linux-security/60089-vpnclient-suid.html http://www.linuxforums.org/forum/linux-security/60089-vpnclient-suid.html]&lt;br /&gt;
#[http://projects.tuxx-home.at/?id=cisco_vpn_client http://projects.tuxx-home.at/?id=cisco_vpn_client]&lt;br /&gt;
#[http://ubuntuforums.org/archive/index.php/t-77035.html http://ubuntuforums.org/archive/index.php/t-77035.html]&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=File:Vpnc_4.png&amp;diff=3404</id>
		<title>File:Vpnc 4.png</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=File:Vpnc_4.png&amp;diff=3404"/>
		<updated>2009-04-30T08:52:10Z</updated>

		<summary type="html">&lt;p&gt;Wcash: vpnc Ubuntu guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;vpnc Ubuntu guide&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=File:Vpnc_3.png&amp;diff=3403</id>
		<title>File:Vpnc 3.png</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=File:Vpnc_3.png&amp;diff=3403"/>
		<updated>2009-04-30T08:51:22Z</updated>

		<summary type="html">&lt;p&gt;Wcash: vpnc Ubuntu guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;vpnc Ubuntu guide&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=File:Vpnc_2.png&amp;diff=3402</id>
		<title>File:Vpnc 2.png</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=File:Vpnc_2.png&amp;diff=3402"/>
		<updated>2009-04-30T08:47:37Z</updated>

		<summary type="html">&lt;p&gt;Wcash: vpnc Ubuntu guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;vpnc Ubuntu guide&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=File:Vpnc_1.png&amp;diff=3401</id>
		<title>File:Vpnc 1.png</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=File:Vpnc_1.png&amp;diff=3401"/>
		<updated>2009-04-30T08:43:52Z</updated>

		<summary type="html">&lt;p&gt;Wcash: vpnc Ubuntu guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;vpnc Ubuntu guide&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=File:Howto_config_VPNclient_v03.pdf&amp;diff=278</id>
		<title>File:Howto config VPNclient v03.pdf</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=File:Howto_config_VPNclient_v03.pdf&amp;diff=278"/>
		<updated>2009-04-30T07:41:01Z</updated>

		<summary type="html">&lt;p&gt;Wcash: uploaded a new version of &amp;quot;Image:Howto config VPNclient v03.pdf&amp;quot;: getting rid of this outdated pdf file, since we know have a newer and much more extensive wiki page.  For some reason Google keeps listing this and people are visiting it.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Upload a pdf file, How to configure VPN client&lt;/div&gt;</summary>
		<author><name>Wcash</name></author>
	</entry>
</feed>