<?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=Lihuajin</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=Lihuajin"/>
	<link rel="alternate" type="text/html" href="http://micro.stanford.edu/wiki/Special:Contributions/Lihuajin"/>
	<updated>2026-07-06T00:35:26Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6446</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6446"/>
		<updated>2016-05-09T06:55:56Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Run Matlab on a cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
::::::Lihua Jin&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes. &#039;&#039;&#039;sleep 2&#039;&#039;&#039; makes the code run after 2 s so that the random number by time could be generated differently for each case.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
Since we run the job non-interactively, we need to comment out the interactive commands in the MD++ script, for example, openwindow(). Otherwise, the job will stop will errors.&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found &lt;br /&gt;
&lt;br /&gt;
https://rcc.its.psu.edu/user_guides/system_utilities/pbs/&lt;br /&gt;
&lt;br /&gt;
https://hpcc-intranet.stanford.edu/how-do-i/completely-new-to-cluster-computing/&lt;br /&gt;
&lt;br /&gt;
https://hpcc-intranet.stanford.edu/resources/using-the-hpc-clusters-101/&lt;br /&gt;
&lt;br /&gt;
==Run Matlab on a cluster==&lt;br /&gt;
We can run Mablab without interaction:&lt;br /&gt;
 matlab  -nodisplay -r &amp;quot;run(&#039;hello.m&#039;); exit;&amp;quot; &amp;amp;&lt;br /&gt;
&lt;br /&gt;
matlab.o# (#=job id) is the output file; matlab.e# (#=job id) is the error file.&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
1. Define the simulation cell, and then use the command &#039;&#039;&#039;makelipids&#039;&#039;&#039;  to initiate chains with certain number of beads.&lt;br /&gt;
&lt;br /&gt;
2. Redefine the location of beads according to random walk, and replace the original ones. The structure is then allowed to relax by minimizing the potential energy.&lt;br /&gt;
&lt;br /&gt;
3. Stretch the polymer melt by the command &#039;&#039;&#039;changeH_keepS&#039;&#039;&#039;. &lt;br /&gt;
 input = [1 1 0.1] changeH_keepS&lt;br /&gt;
 input = [2 2 -0.05] changeH_keepS&lt;br /&gt;
 input = [3 3 -0.05] changeH_keepS&lt;br /&gt;
Line 1 changes the (1,1) component H&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; to 1.1H&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt;, and line 2 and 3 change H&amp;lt;sub&amp;gt;22&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;33&amp;lt;/sub&amp;gt; to 0.95H&amp;lt;sub&amp;gt;22&amp;lt;/sub&amp;gt; and 0.95H&amp;lt;sub&amp;gt;33&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Miscellanies==&lt;br /&gt;
1. A.log files contain codes about font colors. If you open them as plane txt files, they cannot be well showed. Can open them using the command&lt;br /&gt;
 $more A.log&lt;br /&gt;
&lt;br /&gt;
2. Stress outputs, TSTRESS_xx and TSTRESSinMPa_xx et al, define the compressive ones as positive.&lt;br /&gt;
&lt;br /&gt;
3. To run MD++ scripts written by Python or TCL languages, we need to compile different executable files for the same potential. &lt;br /&gt;
 $ make ljbond build=R SYS=mc2&lt;br /&gt;
The default is for TCL language. For Python&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
After compile files for Python, you need to &#039;&#039;&#039;make clean&#039;&#039;&#039; before you compile files for TCL, and vice versa.&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
&lt;br /&gt;
2. Add a comment to clear the variable &#039;&#039;&#039;input&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6445</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6445"/>
		<updated>2016-05-09T06:55:25Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
::::::Lihua Jin&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes. &#039;&#039;&#039;sleep 2&#039;&#039;&#039; makes the code run after 2 s so that the random number by time could be generated differently for each case.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
Since we run the job non-interactively, we need to comment out the interactive commands in the MD++ script, for example, openwindow(). Otherwise, the job will stop will errors.&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found &lt;br /&gt;
&lt;br /&gt;
https://rcc.its.psu.edu/user_guides/system_utilities/pbs/&lt;br /&gt;
&lt;br /&gt;
https://hpcc-intranet.stanford.edu/how-do-i/completely-new-to-cluster-computing/&lt;br /&gt;
&lt;br /&gt;
https://hpcc-intranet.stanford.edu/resources/using-the-hpc-clusters-101/&lt;br /&gt;
&lt;br /&gt;
==Run Matlab on a cluster==&lt;br /&gt;
We can run Mablab without interaction:&lt;br /&gt;
 matlab  -nodisplay -r &amp;quot;run(&#039;hello.m&#039;); exit;&amp;quot; &amp;amp;&lt;br /&gt;
&lt;br /&gt;
matlab.o# (#=job id) is the output file&lt;br /&gt;
matlab.e# (#=job id) is the error file&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
1. Define the simulation cell, and then use the command &#039;&#039;&#039;makelipids&#039;&#039;&#039;  to initiate chains with certain number of beads.&lt;br /&gt;
&lt;br /&gt;
2. Redefine the location of beads according to random walk, and replace the original ones. The structure is then allowed to relax by minimizing the potential energy.&lt;br /&gt;
&lt;br /&gt;
3. Stretch the polymer melt by the command &#039;&#039;&#039;changeH_keepS&#039;&#039;&#039;. &lt;br /&gt;
 input = [1 1 0.1] changeH_keepS&lt;br /&gt;
 input = [2 2 -0.05] changeH_keepS&lt;br /&gt;
 input = [3 3 -0.05] changeH_keepS&lt;br /&gt;
Line 1 changes the (1,1) component H&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; to 1.1H&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt;, and line 2 and 3 change H&amp;lt;sub&amp;gt;22&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;33&amp;lt;/sub&amp;gt; to 0.95H&amp;lt;sub&amp;gt;22&amp;lt;/sub&amp;gt; and 0.95H&amp;lt;sub&amp;gt;33&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Miscellanies==&lt;br /&gt;
1. A.log files contain codes about font colors. If you open them as plane txt files, they cannot be well showed. Can open them using the command&lt;br /&gt;
 $more A.log&lt;br /&gt;
&lt;br /&gt;
2. Stress outputs, TSTRESS_xx and TSTRESSinMPa_xx et al, define the compressive ones as positive.&lt;br /&gt;
&lt;br /&gt;
3. To run MD++ scripts written by Python or TCL languages, we need to compile different executable files for the same potential. &lt;br /&gt;
 $ make ljbond build=R SYS=mc2&lt;br /&gt;
The default is for TCL language. For Python&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
After compile files for Python, you need to &#039;&#039;&#039;make clean&#039;&#039;&#039; before you compile files for TCL, and vice versa.&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
&lt;br /&gt;
2. Add a comment to clear the variable &#039;&#039;&#039;input&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6444</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6444"/>
		<updated>2016-05-06T01:42:36Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Submit MD++ to a cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
::::::Lihua Jin&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes. &#039;&#039;&#039;sleep 2&#039;&#039;&#039; makes the code run after 2 s so that the random number by time could be generated differently for each case.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
Since we run the job non-interactively, we need to comment out the interactive commands in the MD++ script, for example, openwindow(). Otherwise, the job will stop will errors.&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found &lt;br /&gt;
&lt;br /&gt;
https://rcc.its.psu.edu/user_guides/system_utilities/pbs/&lt;br /&gt;
&lt;br /&gt;
https://hpcc-intranet.stanford.edu/how-do-i/completely-new-to-cluster-computing/&lt;br /&gt;
&lt;br /&gt;
https://hpcc-intranet.stanford.edu/resources/using-the-hpc-clusters-101/&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
1. Define the simulation cell, and then use the command &#039;&#039;&#039;makelipids&#039;&#039;&#039;  to initiate chains with certain number of beads.&lt;br /&gt;
&lt;br /&gt;
2. Redefine the location of beads according to random walk, and replace the original ones. The structure is then allowed to relax by minimizing the potential energy.&lt;br /&gt;
&lt;br /&gt;
3. Stretch the polymer melt by the command &#039;&#039;&#039;changeH_keepS&#039;&#039;&#039;. &lt;br /&gt;
 input = [1 1 0.1] changeH_keepS&lt;br /&gt;
 input = [2 2 -0.05] changeH_keepS&lt;br /&gt;
 input = [3 3 -0.05] changeH_keepS&lt;br /&gt;
Line 1 changes the (1,1) component H&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; to 1.1H&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt;, and line 2 and 3 change H&amp;lt;sub&amp;gt;22&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;33&amp;lt;/sub&amp;gt; to 0.95H&amp;lt;sub&amp;gt;22&amp;lt;/sub&amp;gt; and 0.95H&amp;lt;sub&amp;gt;33&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Miscellanies==&lt;br /&gt;
1. A.log files contain codes about font colors. If you open them as plane txt files, they cannot be well showed. Can open them using the command&lt;br /&gt;
 $more A.log&lt;br /&gt;
&lt;br /&gt;
2. Stress outputs, TSTRESS_xx and TSTRESSinMPa_xx et al, define the compressive ones as positive.&lt;br /&gt;
&lt;br /&gt;
3. To run MD++ scripts written by Python or TCL languages, we need to compile different executable files for the same potential. &lt;br /&gt;
 $ make ljbond build=R SYS=mc2&lt;br /&gt;
The default is for TCL language. For Python&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
After compile files for Python, you need to &#039;&#039;&#039;make clean&#039;&#039;&#039; before you compile files for TCL, and vice versa.&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
&lt;br /&gt;
2. Add a comment to clear the variable &#039;&#039;&#039;input&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Lihua_Jin&amp;diff=6442</id>
		<title>Lihua Jin</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Lihua_Jin&amp;diff=6442"/>
		<updated>2016-03-23T23:13:31Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Lihua Jin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Lihua Jin=&lt;br /&gt;
&lt;br /&gt;
Lihua Jin is currently a postdoctoral scholar at Stanford University co-advised by Professor Wei Cai in Mechanical Engineering, Christian Linder in Civil Engineering and Zhenan Bao in Chemical Engineering. In 2014, she obtained her PhD degree in Engineering Sciences from Harvard University under the supervision of Professor Zhigang Suo. Lihua studies mechanics of soft materials, instability, stimuli-responsive materials, and soft robotics. Her current work focuses on mechanics of stretchable electronics. &lt;br /&gt;
&lt;br /&gt;
==Education background==&lt;br /&gt;
&lt;br /&gt;
Ph.D. in Engineering Sciences, Harvard University, 2014&amp;lt;br /&amp;gt;&lt;br /&gt;
M.S. in General Mechanics and Mechanical Foundation, Fudan University, 2009&amp;lt;br /&amp;gt;&lt;br /&gt;
B.S. in Theoretical and Applied Mechanics, Fudan University, 2006&lt;br /&gt;
&lt;br /&gt;
==Contact information==&lt;br /&gt;
Email address: lihuajin@stanford.edu&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Lihua_Jin&amp;diff=6441</id>
		<title>Lihua Jin</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Lihua_Jin&amp;diff=6441"/>
		<updated>2016-03-23T22:58:37Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Education background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Lihua Jin=&lt;br /&gt;
&lt;br /&gt;
Lihua Jin is currently a postdoctoral scholar at Stanford University co-advised by Professor Wei Cai in Mechanical Engineering, Christian Linder in Civil Engineering and Zhenan Bao in Chemical Engineering. In 2014, she obtained her PhD degree in Engineering Sciences from Harvard University under the supervision of Professor Zhigang Suo. Lihua studies mechanics of soft materials, mechanical instabilities, stimuli-responsive materials, and soft robotics. Her current work focuses on mechanics of stretchable electronics. &lt;br /&gt;
&lt;br /&gt;
==Education background==&lt;br /&gt;
&lt;br /&gt;
Ph.D. in Engineering Sciences, Harvard University, 2014&amp;lt;br /&amp;gt;&lt;br /&gt;
M.S. in General Mechanics and Mechanical Foundation, Fudan University, 2009&amp;lt;br /&amp;gt;&lt;br /&gt;
B.S. in Theoretical and Applied Mechanics, Fudan University, 2006&lt;br /&gt;
&lt;br /&gt;
==Contact information==&lt;br /&gt;
Email address: lihuajin@stanford.edu&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Lihua_Jin&amp;diff=6440</id>
		<title>Lihua Jin</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Lihua_Jin&amp;diff=6440"/>
		<updated>2016-03-23T22:56:36Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Contact information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Lihua Jin=&lt;br /&gt;
&lt;br /&gt;
Lihua Jin is currently a postdoctoral scholar at Stanford University co-advised by Professor Wei Cai in Mechanical Engineering, Christian Linder in Civil Engineering and Zhenan Bao in Chemical Engineering. In 2014, she obtained her PhD degree in Engineering Sciences from Harvard University under the supervision of Professor Zhigang Suo. Lihua studies mechanics of soft materials, mechanical instabilities, stimuli-responsive materials, and soft robotics. Her current work focuses on mechanics of stretchable electronics. &lt;br /&gt;
&lt;br /&gt;
==Education background==&lt;br /&gt;
&lt;br /&gt;
Ph.D.   Engineering Sciences, Harvard University, 2014&amp;lt;br /&amp;gt;&lt;br /&gt;
M.S.    General Mechanics and Mechanical Foundation, Fudan University, 2009&amp;lt;br /&amp;gt;&lt;br /&gt;
B.S.    Theoretical and Applied Mechanics, Fudan University, 2006&lt;br /&gt;
&lt;br /&gt;
==Contact information==&lt;br /&gt;
Email address: lihuajin@stanford.edu&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Lihua_Jin&amp;diff=6439</id>
		<title>Lihua Jin</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Lihua_Jin&amp;diff=6439"/>
		<updated>2016-03-23T22:56:23Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Contact information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Lihua Jin=&lt;br /&gt;
&lt;br /&gt;
Lihua Jin is currently a postdoctoral scholar at Stanford University co-advised by Professor Wei Cai in Mechanical Engineering, Christian Linder in Civil Engineering and Zhenan Bao in Chemical Engineering. In 2014, she obtained her PhD degree in Engineering Sciences from Harvard University under the supervision of Professor Zhigang Suo. Lihua studies mechanics of soft materials, mechanical instabilities, stimuli-responsive materials, and soft robotics. Her current work focuses on mechanics of stretchable electronics. &lt;br /&gt;
&lt;br /&gt;
==Education background==&lt;br /&gt;
&lt;br /&gt;
Ph.D.   Engineering Sciences, Harvard University, 2014&amp;lt;br /&amp;gt;&lt;br /&gt;
M.S.    General Mechanics and Mechanical Foundation, Fudan University, 2009&amp;lt;br /&amp;gt;&lt;br /&gt;
B.S.    Theoretical and Applied Mechanics, Fudan University, 2006&lt;br /&gt;
&lt;br /&gt;
==Contact information==&lt;br /&gt;
Office: Y2E2 279&amp;lt;br /&amp;gt;&lt;br /&gt;
Email address: lihuajin@stanford.edu&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Lihua_Jin&amp;diff=6438</id>
		<title>Lihua Jin</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Lihua_Jin&amp;diff=6438"/>
		<updated>2016-03-23T22:56:11Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Education background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Lihua Jin=&lt;br /&gt;
&lt;br /&gt;
Lihua Jin is currently a postdoctoral scholar at Stanford University co-advised by Professor Wei Cai in Mechanical Engineering, Christian Linder in Civil Engineering and Zhenan Bao in Chemical Engineering. In 2014, she obtained her PhD degree in Engineering Sciences from Harvard University under the supervision of Professor Zhigang Suo. Lihua studies mechanics of soft materials, mechanical instabilities, stimuli-responsive materials, and soft robotics. Her current work focuses on mechanics of stretchable electronics. &lt;br /&gt;
&lt;br /&gt;
==Education background==&lt;br /&gt;
&lt;br /&gt;
Ph.D.   Engineering Sciences, Harvard University, 2014&amp;lt;br /&amp;gt;&lt;br /&gt;
M.S.    General Mechanics and Mechanical Foundation, Fudan University, 2009&amp;lt;br /&amp;gt;&lt;br /&gt;
B.S.    Theoretical and Applied Mechanics, Fudan University, 2006&lt;br /&gt;
&lt;br /&gt;
==Contact information==&lt;br /&gt;
Office: Y2E2 279&lt;br /&gt;
&lt;br /&gt;
Email address: lihuajin@stanford.edu&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Lihua_Jin&amp;diff=6437</id>
		<title>Lihua Jin</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Lihua_Jin&amp;diff=6437"/>
		<updated>2016-03-23T22:54:35Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Contact information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Lihua Jin=&lt;br /&gt;
&lt;br /&gt;
Lihua Jin is currently a postdoctoral scholar at Stanford University co-advised by Professor Wei Cai in Mechanical Engineering, Christian Linder in Civil Engineering and Zhenan Bao in Chemical Engineering. In 2014, she obtained her PhD degree in Engineering Sciences from Harvard University under the supervision of Professor Zhigang Suo. Lihua studies mechanics of soft materials, mechanical instabilities, stimuli-responsive materials, and soft robotics. Her current work focuses on mechanics of stretchable electronics. &lt;br /&gt;
&lt;br /&gt;
==Education background==&lt;br /&gt;
&lt;br /&gt;
*Ph.D.   Engineering Sciences, Harvard University, 2014&lt;br /&gt;
*M.S.    General Mechanics and Mechanical Foundation, Fudan University, 2009&lt;br /&gt;
*B.S.    Theoretical and Applied Mechanics, Fudan University, 2006&lt;br /&gt;
&lt;br /&gt;
==Contact information==&lt;br /&gt;
Office: Y2E2 279&lt;br /&gt;
&lt;br /&gt;
Email address: lihuajin@stanford.edu&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Lihua_Jin&amp;diff=6436</id>
		<title>Lihua Jin</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Lihua_Jin&amp;diff=6436"/>
		<updated>2016-03-23T22:54:13Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Education background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Lihua Jin=&lt;br /&gt;
&lt;br /&gt;
Lihua Jin is currently a postdoctoral scholar at Stanford University co-advised by Professor Wei Cai in Mechanical Engineering, Christian Linder in Civil Engineering and Zhenan Bao in Chemical Engineering. In 2014, she obtained her PhD degree in Engineering Sciences from Harvard University under the supervision of Professor Zhigang Suo. Lihua studies mechanics of soft materials, mechanical instabilities, stimuli-responsive materials, and soft robotics. Her current work focuses on mechanics of stretchable electronics. &lt;br /&gt;
&lt;br /&gt;
==Education background==&lt;br /&gt;
&lt;br /&gt;
*Ph.D.   Engineering Sciences, Harvard University, 2014&lt;br /&gt;
*M.S.    General Mechanics and Mechanical Foundation, Fudan University, 2009&lt;br /&gt;
*B.S.    Theoretical and Applied Mechanics, Fudan University, 2006&lt;br /&gt;
&lt;br /&gt;
==Contact information==&lt;br /&gt;
Office: Y2E2 279&lt;br /&gt;
Email address: lihuajin@stanford.edu&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Lihua_Jin&amp;diff=6435</id>
		<title>Lihua Jin</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Lihua_Jin&amp;diff=6435"/>
		<updated>2016-03-23T22:53:50Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: Created page with &amp;quot;=Lihua Jin=  Lihua Jin is currently a postdoctoral scholar at Stanford University co-advised by Professor Wei Cai in Mechanical Engineering, Christian Linder in Civil Engineer...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Lihua Jin=&lt;br /&gt;
&lt;br /&gt;
Lihua Jin is currently a postdoctoral scholar at Stanford University co-advised by Professor Wei Cai in Mechanical Engineering, Christian Linder in Civil Engineering and Zhenan Bao in Chemical Engineering. In 2014, she obtained her PhD degree in Engineering Sciences from Harvard University under the supervision of Professor Zhigang Suo. Lihua studies mechanics of soft materials, mechanical instabilities, stimuli-responsive materials, and soft robotics. Her current work focuses on mechanics of stretchable electronics. &lt;br /&gt;
&lt;br /&gt;
==Education background==&lt;br /&gt;
&lt;br /&gt;
Ph.D.   Engineering Sciences, Harvard University, 2014&lt;br /&gt;
M.S.    General Mechanics and Mechanical Foundation, Fudan University, 2009&lt;br /&gt;
B.S.    Theoretical and Applied Mechanics, Fudan University, 2006&lt;br /&gt;
&lt;br /&gt;
==Contact information==&lt;br /&gt;
Office: Y2E2 279&lt;br /&gt;
Email address: lihuajin@stanford.edu&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Group_Members&amp;diff=6434</id>
		<title>Group Members</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Group_Members&amp;diff=6434"/>
		<updated>2016-03-23T22:41:49Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: &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;
===Graduate Students===&lt;br /&gt;
:[[Yanming Wang]]&lt;br /&gt;
:[[Ryan Sills]]&lt;br /&gt;
&lt;br /&gt;
===Postocs===&lt;br /&gt;
:[[Nicolas Bertin]]&lt;br /&gt;
:[[Xiaohan Zhang]]&lt;br /&gt;
:[[Lihua Jin]]&lt;br /&gt;
&lt;br /&gt;
===Former Members===&lt;br /&gt;
:[[Amin Aghaei | Amin Aghaei (former postdoc)]]&lt;br /&gt;
:[[William Kuykendall | William Kuykendall (former PhD student)]]&lt;br /&gt;
:[[William Cash | William Cash (former PhD student)]]&lt;br /&gt;
:[[Hark Lee | Hark Lee (former PhD student)]]&lt;br /&gt;
:[[Ill Ryu | Ill Ryu (former PhD student)]]&lt;br /&gt;
:[[Jie Yin | Jie Yin (former PhD student)]]&lt;br /&gt;
:[[Seunghwa Ryu | Seunghwa Ryu (former PhD student) ]]&lt;br /&gt;
:[[Seokwoo Lee | Seokwoo Lee (former PhD student) ]]&lt;br /&gt;
:[[Haneesh Kesari | Haneesh Kesari (former PhD student)]]&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;
:[[Keonwook Kang | Keonwook Kang (former PhD student)]]&lt;br /&gt;
:[[Eunseok Lee | Eunseok Lee (former PhD student)]]&lt;br /&gt;
:[[Sylvie Aubry | Sylvie Aubry (former Research Associate)]]&lt;br /&gt;
&lt;br /&gt;
===Outreach Collaborator===&lt;br /&gt;
:[[Alfonso Garcia | Alfonso Garcia (high school teacher)]]&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6389</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6389"/>
		<updated>2015-11-11T19:38:15Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Stretch a polymer melt with MD++ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
::::::Lihua Jin&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
Since we run the job non-interactively, we need to comment out the interactive commands in the MD++ script, for example, openwindow(). Otherwise, the job will stop will errors.&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found &lt;br /&gt;
&lt;br /&gt;
https://rcc.its.psu.edu/user_guides/system_utilities/pbs/&lt;br /&gt;
&lt;br /&gt;
https://hpcc-intranet.stanford.edu/how-do-i/completely-new-to-cluster-computing/&lt;br /&gt;
&lt;br /&gt;
https://hpcc-intranet.stanford.edu/resources/using-the-hpc-clusters-101/&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
1. Define the simulation cell, and then use the command &#039;&#039;&#039;makelipids&#039;&#039;&#039;  to initiate chains with certain number of beads.&lt;br /&gt;
&lt;br /&gt;
2. Redefine the location of beads according to random walk, and replace the original ones. The structure is then allowed to relax by minimizing the potential energy.&lt;br /&gt;
&lt;br /&gt;
3. Stretch the polymer melt by the command &#039;&#039;&#039;changeH_keepS&#039;&#039;&#039;. &lt;br /&gt;
 input = [1 1 0.1] changeH_keepS&lt;br /&gt;
 input = [2 2 -0.05] changeH_keepS&lt;br /&gt;
 input = [3 3 -0.05] changeH_keepS&lt;br /&gt;
Line 1 changes the (1,1) component H&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; to 1.1H&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt;, and line 2 and 3 change H&amp;lt;sub&amp;gt;22&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;33&amp;lt;/sub&amp;gt; to 0.95H&amp;lt;sub&amp;gt;22&amp;lt;/sub&amp;gt; and 0.95H&amp;lt;sub&amp;gt;33&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Miscellanies==&lt;br /&gt;
1. A.log files contain codes about font colors. If you open them as plane txt files, they cannot be well showed. Can open them using the command&lt;br /&gt;
 $more A.log&lt;br /&gt;
&lt;br /&gt;
2. Stress outputs, TSTRESS_xx and TSTRESSinMPa_xx et al, define the compressive ones as positive.&lt;br /&gt;
&lt;br /&gt;
3. To run MD++ scripts written by Python or TCL languages, we need to compile different executable files for the same potential. &lt;br /&gt;
 $ make ljbond build=R SYS=mc2&lt;br /&gt;
The default is for TCL language. For Python&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
After compile files for Python, you need to &#039;&#039;&#039;make clean&#039;&#039;&#039; before you compile files for TCL, and vice versa.&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
&lt;br /&gt;
2. Add a comment to clear the variable &#039;&#039;&#039;input&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6388</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6388"/>
		<updated>2015-11-11T19:36:21Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Stretch a polymer melt with MD++ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
::::::Lihua Jin&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
Since we run the job non-interactively, we need to comment out the interactive commands in the MD++ script, for example, openwindow(). Otherwise, the job will stop will errors.&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found &lt;br /&gt;
&lt;br /&gt;
https://rcc.its.psu.edu/user_guides/system_utilities/pbs/&lt;br /&gt;
&lt;br /&gt;
https://hpcc-intranet.stanford.edu/how-do-i/completely-new-to-cluster-computing/&lt;br /&gt;
&lt;br /&gt;
https://hpcc-intranet.stanford.edu/resources/using-the-hpc-clusters-101/&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
1. Define the simulation cell, and then use the command &#039;&#039;&#039;makelipids&#039;&#039;&#039;  to initiate chains with certain number of beads.&lt;br /&gt;
&lt;br /&gt;
2. Redefine the location of beads according to random walk, and replace the original ones. The structure is then allowed to relax by minimizing the potential energy.&lt;br /&gt;
&lt;br /&gt;
3. Stretch the polymer melt by the command &#039;&#039;&#039;changeH_keepS&#039;&#039;&#039;. &lt;br /&gt;
 input = [1 1 0.1] changeH_keepS&lt;br /&gt;
 input = [2 2 -0.05] changeH_keepS&lt;br /&gt;
 input = [3 3 -0.05] changeH_keepS&lt;br /&gt;
Line 1 changes the (1,1) component H&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; to &amp;lt;math&amp;gt;1.1H_1_1&amp;lt;/math&amp;gt;, and line 2 and 3 change &amp;lt;math&amp;gt;H_2_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;H_3_3&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;0.95H_2_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;0.95H_3_3&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Miscellanies==&lt;br /&gt;
1. A.log files contain codes about font colors. If you open them as plane txt files, they cannot be well showed. Can open them using the command&lt;br /&gt;
 $more A.log&lt;br /&gt;
&lt;br /&gt;
2. Stress outputs, TSTRESS_xx and TSTRESSinMPa_xx et al, define the compressive ones as positive.&lt;br /&gt;
&lt;br /&gt;
3. To run MD++ scripts written by Python or TCL languages, we need to compile different executable files for the same potential. &lt;br /&gt;
 $ make ljbond build=R SYS=mc2&lt;br /&gt;
The default is for TCL language. For Python&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
After compile files for Python, you need to &#039;&#039;&#039;make clean&#039;&#039;&#039; before you compile files for TCL, and vice versa.&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
&lt;br /&gt;
2. Add a comment to clear the variable &#039;&#039;&#039;input&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6387</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6387"/>
		<updated>2015-11-11T19:29:40Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Submit MD++ to a cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
::::::Lihua Jin&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
Since we run the job non-interactively, we need to comment out the interactive commands in the MD++ script, for example, openwindow(). Otherwise, the job will stop will errors.&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found &lt;br /&gt;
&lt;br /&gt;
https://rcc.its.psu.edu/user_guides/system_utilities/pbs/&lt;br /&gt;
&lt;br /&gt;
https://hpcc-intranet.stanford.edu/how-do-i/completely-new-to-cluster-computing/&lt;br /&gt;
&lt;br /&gt;
https://hpcc-intranet.stanford.edu/resources/using-the-hpc-clusters-101/&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
1. Define the simulation cell, and then use the command &#039;&#039;&#039;makelipids&#039;&#039;&#039;  to initiate chains with certain number of beads.&lt;br /&gt;
&lt;br /&gt;
2. Redefine the location of beads according to random walk, and replace the original ones. The structure is then allowed to relax by minimizing the potential energy.&lt;br /&gt;
&lt;br /&gt;
3. Stretch the polymer melt by the command &#039;&#039;&#039;changeH_keepS&#039;&#039;&#039;. &lt;br /&gt;
 input = [1 1 0.1] changeH_keepS&lt;br /&gt;
 input = [2 2 -0.05] changeH_keepS&lt;br /&gt;
 input = [3 3 -0.05] changeH_keepS&lt;br /&gt;
Line 1 changes the (1,1) component &amp;lt;math&amp;gt;H_1_1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;1.1H_1_1&amp;lt;/math&amp;gt;, and line 2 and 3 change &amp;lt;math&amp;gt;H_2_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;H_3_3&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;0.95H_2_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;0.95H_3_3&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Miscellanies==&lt;br /&gt;
1. A.log files contain codes about font colors. If you open them as plane txt files, they cannot be well showed. Can open them using the command&lt;br /&gt;
 $more A.log&lt;br /&gt;
&lt;br /&gt;
2. Stress outputs, TSTRESS_xx and TSTRESSinMPa_xx et al, define the compressive ones as positive.&lt;br /&gt;
&lt;br /&gt;
3. To run MD++ scripts written by Python or TCL languages, we need to compile different executable files for the same potential. &lt;br /&gt;
 $ make ljbond build=R SYS=mc2&lt;br /&gt;
The default is for TCL language. For Python&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
After compile files for Python, you need to &#039;&#039;&#039;make clean&#039;&#039;&#039; before you compile files for TCL, and vice versa.&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
&lt;br /&gt;
2. Add a comment to clear the variable &#039;&#039;&#039;input&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6085</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6085"/>
		<updated>2015-03-18T19:33:11Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Submit MD++ to a cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
Since we run the job non-interactively, we need to comment out the interactive commands in the MD++ script, for example, openwindow(). Otherwise, the job will stop will errors.&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found &lt;br /&gt;
&lt;br /&gt;
https://rcc.its.psu.edu/user_guides/system_utilities/pbs/&lt;br /&gt;
&lt;br /&gt;
https://hpcc-intranet.stanford.edu/how-do-i/completely-new-to-cluster-computing/&lt;br /&gt;
&lt;br /&gt;
https://hpcc-intranet.stanford.edu/resources/using-the-hpc-clusters-101/&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
1. Define the simulation cell, and then use the command &#039;&#039;&#039;makelipids&#039;&#039;&#039;  to initiate chains with certain number of beads.&lt;br /&gt;
&lt;br /&gt;
2. Redefine the location of beads according to random walk, and replace the original ones. The structure is then allowed to relax by minimizing the potential energy.&lt;br /&gt;
&lt;br /&gt;
3. Stretch the polymer melt by the command &#039;&#039;&#039;changeH_keepS&#039;&#039;&#039;. &lt;br /&gt;
 input = [1 1 0.1] changeH_keepS&lt;br /&gt;
 input = [2 2 -0.05] changeH_keepS&lt;br /&gt;
 input = [3 3 -0.05] changeH_keepS&lt;br /&gt;
Line 1 changes the (1,1) component &amp;lt;math&amp;gt;H_1_1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;1.1H_1_1&amp;lt;/math&amp;gt;, and line 2 and 3 change &amp;lt;math&amp;gt;H_2_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;H_3_3&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;0.95H_2_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;0.95H_3_3&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Miscellanies==&lt;br /&gt;
1. A.log files contain codes about font colors. If you open them as plane txt files, they cannot be well showed. Can open them using the command&lt;br /&gt;
 $more A.log&lt;br /&gt;
&lt;br /&gt;
2. Stress outputs, TSTRESS_xx and TSTRESSinMPa_xx et al, define the compressive ones as positive.&lt;br /&gt;
&lt;br /&gt;
3. To run MD++ scripts written by Python or TCL languages, we need to compile different executable files for the same potential. &lt;br /&gt;
 $ make ljbond build=R SYS=mc2&lt;br /&gt;
The default is for TCL language. For Python&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
After compile files for Python, you need to &#039;&#039;&#039;make clean&#039;&#039;&#039; before you compile files for TCL, and vice versa.&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
&lt;br /&gt;
2. Add a comment to clear the variable &#039;&#039;&#039;input&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6084</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6084"/>
		<updated>2015-03-18T19:32:47Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Submit MD++ to a cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
Since we run the job non-interactively, we need to comment out the interactive commands in the MD++ script, for example, openwindow(). Otherwise, the job will stop will errors.&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found &lt;br /&gt;
https://rcc.its.psu.edu/user_guides/system_utilities/pbs/&lt;br /&gt;
&lt;br /&gt;
https://hpcc-intranet.stanford.edu/how-do-i/completely-new-to-cluster-computing/&lt;br /&gt;
&lt;br /&gt;
https://hpcc-intranet.stanford.edu/resources/using-the-hpc-clusters-101/&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
1. Define the simulation cell, and then use the command &#039;&#039;&#039;makelipids&#039;&#039;&#039;  to initiate chains with certain number of beads.&lt;br /&gt;
&lt;br /&gt;
2. Redefine the location of beads according to random walk, and replace the original ones. The structure is then allowed to relax by minimizing the potential energy.&lt;br /&gt;
&lt;br /&gt;
3. Stretch the polymer melt by the command &#039;&#039;&#039;changeH_keepS&#039;&#039;&#039;. &lt;br /&gt;
 input = [1 1 0.1] changeH_keepS&lt;br /&gt;
 input = [2 2 -0.05] changeH_keepS&lt;br /&gt;
 input = [3 3 -0.05] changeH_keepS&lt;br /&gt;
Line 1 changes the (1,1) component &amp;lt;math&amp;gt;H_1_1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;1.1H_1_1&amp;lt;/math&amp;gt;, and line 2 and 3 change &amp;lt;math&amp;gt;H_2_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;H_3_3&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;0.95H_2_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;0.95H_3_3&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Miscellanies==&lt;br /&gt;
1. A.log files contain codes about font colors. If you open them as plane txt files, they cannot be well showed. Can open them using the command&lt;br /&gt;
 $more A.log&lt;br /&gt;
&lt;br /&gt;
2. Stress outputs, TSTRESS_xx and TSTRESSinMPa_xx et al, define the compressive ones as positive.&lt;br /&gt;
&lt;br /&gt;
3. To run MD++ scripts written by Python or TCL languages, we need to compile different executable files for the same potential. &lt;br /&gt;
 $ make ljbond build=R SYS=mc2&lt;br /&gt;
The default is for TCL language. For Python&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
After compile files for Python, you need to &#039;&#039;&#039;make clean&#039;&#039;&#039; before you compile files for TCL, and vice versa.&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
&lt;br /&gt;
2. Add a comment to clear the variable &#039;&#039;&#039;input&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6083</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6083"/>
		<updated>2015-03-18T19:32:23Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Submit MD++ to a cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
Since we run the job non-interactively, we need to comment out the interactive commands in the MD++ script, for example, openwindow(). Otherwise, the job will stop will errors.&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found &lt;br /&gt;
https://rcc.its.psu.edu/user_guides/system_utilities/pbs/.&lt;br /&gt;
https://hpcc-intranet.stanford.edu/how-do-i/completely-new-to-cluster-computing/&lt;br /&gt;
https://hpcc-intranet.stanford.edu/resources/using-the-hpc-clusters-101/&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
1. Define the simulation cell, and then use the command &#039;&#039;&#039;makelipids&#039;&#039;&#039;  to initiate chains with certain number of beads.&lt;br /&gt;
&lt;br /&gt;
2. Redefine the location of beads according to random walk, and replace the original ones. The structure is then allowed to relax by minimizing the potential energy.&lt;br /&gt;
&lt;br /&gt;
3. Stretch the polymer melt by the command &#039;&#039;&#039;changeH_keepS&#039;&#039;&#039;. &lt;br /&gt;
 input = [1 1 0.1] changeH_keepS&lt;br /&gt;
 input = [2 2 -0.05] changeH_keepS&lt;br /&gt;
 input = [3 3 -0.05] changeH_keepS&lt;br /&gt;
Line 1 changes the (1,1) component &amp;lt;math&amp;gt;H_1_1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;1.1H_1_1&amp;lt;/math&amp;gt;, and line 2 and 3 change &amp;lt;math&amp;gt;H_2_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;H_3_3&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;0.95H_2_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;0.95H_3_3&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Miscellanies==&lt;br /&gt;
1. A.log files contain codes about font colors. If you open them as plane txt files, they cannot be well showed. Can open them using the command&lt;br /&gt;
 $more A.log&lt;br /&gt;
&lt;br /&gt;
2. Stress outputs, TSTRESS_xx and TSTRESSinMPa_xx et al, define the compressive ones as positive.&lt;br /&gt;
&lt;br /&gt;
3. To run MD++ scripts written by Python or TCL languages, we need to compile different executable files for the same potential. &lt;br /&gt;
 $ make ljbond build=R SYS=mc2&lt;br /&gt;
The default is for TCL language. For Python&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
After compile files for Python, you need to &#039;&#039;&#039;make clean&#039;&#039;&#039; before you compile files for TCL, and vice versa.&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
&lt;br /&gt;
2. Add a comment to clear the variable &#039;&#039;&#039;input&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6082</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6082"/>
		<updated>2015-03-18T07:18:30Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Stretch a polymer melt with MD++ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
Since we run the job non-interactively, we need to comment out the interactive commands in the MD++ script, for example, openwindow(). Otherwise, the job will stop will errors.&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found https://rcc.its.psu.edu/user_guides/system_utilities/pbs/.&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
1. Define the simulation cell, and then use the command &#039;&#039;&#039;makelipids&#039;&#039;&#039;  to initiate chains with certain number of beads.&lt;br /&gt;
&lt;br /&gt;
2. Redefine the location of beads according to random walk, and replace the original ones. The structure is then allowed to relax by minimizing the potential energy.&lt;br /&gt;
&lt;br /&gt;
3. Stretch the polymer melt by the command &#039;&#039;&#039;changeH_keepS&#039;&#039;&#039;. &lt;br /&gt;
 input = [1 1 0.1] changeH_keepS&lt;br /&gt;
 input = [2 2 -0.05] changeH_keepS&lt;br /&gt;
 input = [3 3 -0.05] changeH_keepS&lt;br /&gt;
Line 1 changes the (1,1) component &amp;lt;math&amp;gt;H_1_1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;1.1H_1_1&amp;lt;/math&amp;gt;, and line 2 and 3 change &amp;lt;math&amp;gt;H_2_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;H_3_3&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;0.95H_2_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;0.95H_3_3&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Miscellanies==&lt;br /&gt;
1. A.log files contain codes about font colors. If you open them as plane txt files, they cannot be well showed. Can open them using the command&lt;br /&gt;
 $more A.log&lt;br /&gt;
&lt;br /&gt;
2. Stress outputs, TSTRESS_xx and TSTRESSinMPa_xx et al, define the compressive ones as positive.&lt;br /&gt;
&lt;br /&gt;
3. To run MD++ scripts written by Python or TCL languages, we need to compile different executable files for the same potential. &lt;br /&gt;
 $ make ljbond build=R SYS=mc2&lt;br /&gt;
The default is for TCL language. For Python&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
After compile files for Python, you need to &#039;&#039;&#039;make clean&#039;&#039;&#039; before you compile files for TCL, and vice versa.&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
&lt;br /&gt;
2. Add a comment to clear the variable &#039;&#039;&#039;input&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6081</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6081"/>
		<updated>2015-03-18T04:55:08Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Stretch a polymer melt with MD++ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
Since we run the job non-interactively, we need to comment out the interactive commands in the MD++ script, for example, openwindow(). Otherwise, the job will stop will errors.&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found https://rcc.its.psu.edu/user_guides/system_utilities/pbs/.&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
1. Define the simulation cell, and then use the command &#039;&#039;&#039;makelipids&#039;&#039;&#039;  to initiate chains with certain number of beads.&lt;br /&gt;
&lt;br /&gt;
2. Redefine the location of beads according to random walk, and replace the original ones.&lt;br /&gt;
&lt;br /&gt;
3. Stretch the polymer melt by the command &#039;&#039;&#039;changeH_keepS&#039;&#039;&#039;. &lt;br /&gt;
 input = [1 1 0.1] changeH_keepS&lt;br /&gt;
 input = [2 2 -0.05] changeH_keepS&lt;br /&gt;
 input = [3 3 -0.05] changeH_keepS&lt;br /&gt;
Line 1 changes the (1,1) component &amp;lt;math&amp;gt;H_1_1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;1.1H_1_1&amp;lt;/math&amp;gt;, and line 2 and 3 change &amp;lt;math&amp;gt;H_2_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;H_3_3&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;0.95H_2_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;0.95H_3_3&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Miscellanies==&lt;br /&gt;
1. A.log files contain codes about font colors. If you open them as plane txt files, they cannot be well showed. Can open them using the command&lt;br /&gt;
 $more A.log&lt;br /&gt;
&lt;br /&gt;
2. Stress outputs, TSTRESS_xx and TSTRESSinMPa_xx et al, define the compressive ones as positive.&lt;br /&gt;
&lt;br /&gt;
3. To run MD++ scripts written by Python or TCL languages, we need to compile different executable files for the same potential. &lt;br /&gt;
 $ make ljbond build=R SYS=mc2&lt;br /&gt;
The default is for TCL language. For Python&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
After compile files for Python, you need to &#039;&#039;&#039;make clean&#039;&#039;&#039; before you compile files for TCL, and vice versa.&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
&lt;br /&gt;
2. Add a comment to clear the variable &#039;&#039;&#039;input&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6080</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6080"/>
		<updated>2015-03-18T04:52:32Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
Since we run the job non-interactively, we need to comment out the interactive commands in the MD++ script, for example, openwindow(). Otherwise, the job will stop will errors.&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found https://rcc.its.psu.edu/user_guides/system_utilities/pbs/.&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
1. Define the simulation cell, and then use the command &#039;&#039;&#039;makelipids&#039;&#039;&#039;  to initiate chains with certain number of beads.&lt;br /&gt;
&lt;br /&gt;
2. Redefine the location of beads according to random walk, and replace the original ones.&lt;br /&gt;
&lt;br /&gt;
3. Stretch the polymer melt by the command &#039;&#039;&#039;changeH_keepS&#039;&#039;&#039;. &lt;br /&gt;
 input = [1 1 0.1] changeH_keepS&lt;br /&gt;
 input = [2 2 -0.05] changeH_keepS&lt;br /&gt;
 input = [3 3 -0.05] changeH_keepS&lt;br /&gt;
Line 1 changes the (1,1) component H_1_1 to 1.1H_1_1, and line 2 and 3 change H_2_2 and H_3_3 to 0.95H_2_2 and 0.95H_3_3.&lt;br /&gt;
 &lt;br /&gt;
==Miscellanies==&lt;br /&gt;
1. A.log files contain codes about font colors. If you open them as plane txt files, they cannot be well showed. Can open them using the command&lt;br /&gt;
 $more A.log&lt;br /&gt;
&lt;br /&gt;
2. Stress outputs, TSTRESS_xx and TSTRESSinMPa_xx et al, define the compressive ones as positive.&lt;br /&gt;
&lt;br /&gt;
3. To run MD++ scripts written by Python or TCL languages, we need to compile different executable files for the same potential. &lt;br /&gt;
 $ make ljbond build=R SYS=mc2&lt;br /&gt;
The default is for TCL language. For Python&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
After compile files for Python, you need to &#039;&#039;&#039;make clean&#039;&#039;&#039; before you compile files for TCL, and vice versa.&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
&lt;br /&gt;
2. Add a comment to clear the variable &#039;&#039;&#039;input&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6079</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6079"/>
		<updated>2015-03-18T01:31:09Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Suggestions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
Since we run the job non-interactively, we need to comment out the interactive commands in the MD++ script, for example, openwindow(). Otherwise, the job will stop will errors.&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found https://rcc.its.psu.edu/user_guides/system_utilities/pbs/.&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
&lt;br /&gt;
==Miscellany==&lt;br /&gt;
1. A.log files contain codes about font colors. If you open them as plane txt files, they cannot be well showed. Can open them using the command&lt;br /&gt;
 $more A.log&lt;br /&gt;
&lt;br /&gt;
2. Stress outputs, TSTRESS_xx and TSTRESSinMPa_xx et al, define the compressive ones as positive.&lt;br /&gt;
&lt;br /&gt;
3. To run MD++ scripts written by Python or TCL languages, we need to compile different executable files for the same potential. &lt;br /&gt;
 $ make ljbond build=R SYS=mc2&lt;br /&gt;
The default is for TCL language. For Python&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
After compile files for Python, you need to &#039;&#039;&#039;make clean&#039;&#039;&#039; before you compile files for TCL, and vice versa.&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
&lt;br /&gt;
2. Add a comment to clear the variable &#039;&#039;&#039;input&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6078</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6078"/>
		<updated>2015-03-18T01:30:45Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Suggestions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
Since we run the job non-interactively, we need to comment out the interactive commands in the MD++ script, for example, openwindow(). Otherwise, the job will stop will errors.&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found https://rcc.its.psu.edu/user_guides/system_utilities/pbs/.&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
&lt;br /&gt;
==Miscellany==&lt;br /&gt;
1. A.log files contain codes about font colors. If you open them as plane txt files, they cannot be well showed. Can open them using the command&lt;br /&gt;
 $more A.log&lt;br /&gt;
&lt;br /&gt;
2. Stress outputs, TSTRESS_xx and TSTRESSinMPa_xx et al, define the compressive ones as positive.&lt;br /&gt;
&lt;br /&gt;
3. To run MD++ scripts written by Python or TCL languages, we need to compile different executable files for the same potential. &lt;br /&gt;
 $ make ljbond build=R SYS=mc2&lt;br /&gt;
The default is for TCL language. For Python&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
After compile files for Python, you need to &#039;&#039;&#039;make clean&#039;&#039;&#039; before you compile files for TCL, and vice versa.&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
&lt;br /&gt;
2. Add a comment to clear the variable input.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6077</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6077"/>
		<updated>2015-03-18T01:29:40Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
Since we run the job non-interactively, we need to comment out the interactive commands in the MD++ script, for example, openwindow(). Otherwise, the job will stop will errors.&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found https://rcc.its.psu.edu/user_guides/system_utilities/pbs/.&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
&lt;br /&gt;
==Miscellany==&lt;br /&gt;
1. A.log files contain codes about font colors. If you open them as plane txt files, they cannot be well showed. Can open them using the command&lt;br /&gt;
 $more A.log&lt;br /&gt;
&lt;br /&gt;
2. Stress outputs, TSTRESS_xx and TSTRESSinMPa_xx et al, define the compressive ones as positive.&lt;br /&gt;
&lt;br /&gt;
3. To run MD++ scripts written by Python or TCL languages, we need to compile different executable files for the same potential. &lt;br /&gt;
 $ make ljbond build=R SYS=mc2&lt;br /&gt;
The default is for TCL language. For Python&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
After compile files for Python, you need to &#039;&#039;&#039;make clean&#039;&#039;&#039; before you compile files for TCL, and vice versa.&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
2. Add a comment to clear the variable input.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6076</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6076"/>
		<updated>2015-03-18T01:10:51Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Submit MD++ to a cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
Since we run the job non-interactively, we need to comment out the interactive commands in the MD++ script, for example, openwindow(). Otherwise, the job will stop will errors.&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found https://rcc.its.psu.edu/user_guides/system_utilities/pbs/.&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
2. Add a comment to clear the variable input.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6075</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6075"/>
		<updated>2015-03-18T01:03:03Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Submit MD++ to a cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found https://rcc.its.psu.edu/user_guides/system_utilities/pbs/.&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
2. Add a comment to clear the variable input.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6074</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6074"/>
		<updated>2015-03-18T01:02:34Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Submit MD++ to a cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &amp;amp; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found https://rcc.its.psu.edu/user_guides/system_utilities/pbs/.&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
2. Add a comment to clear the variable input.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6073</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6073"/>
		<updated>2015-03-18T01:01:58Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Submit MD++ to a cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is &#039;&#039;&#039;Q&#039;&#039;&#039;, the job is queued and waiting to start. If the state is &#039;&#039;&#039;R&#039;&#039;&#039;, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found https://rcc.its.psu.edu/user_guides/system_utilities/pbs/.&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
2. Add a comment to clear the variable input.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6072</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6072"/>
		<updated>2015-03-18T00:56:53Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Submit MD++ to a cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ jobs to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is Q, the job is queued and waiting to start. If the state is R, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found https://rcc.its.psu.edu/user_guides/system_utilities/pbs/.&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
2. Add a comment to clear the variable input.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6071</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6071"/>
		<updated>2015-03-18T00:52:28Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Submit MD++ to a cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ job to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following .pbs script.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is Q, the job is queued and waiting to start. If the state is R, the job is running. We can delete the job by&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
where Job_ID is the job&#039;s unique identifier and will be given when you submit the job.&lt;br /&gt;
&lt;br /&gt;
More information about PBS can be found https://rcc.its.psu.edu/user_guides/system_utilities/pbs/.&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
2. Add a comment to clear the variable input.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6070</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6070"/>
		<updated>2015-03-18T00:50:36Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Submit MD++ to a cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ job to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following .pbs script.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts by adding the following lines at the beginning of the main code of the MD++ script&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
Then in one pbs script, we can ask to run several jobs&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 40 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 50 50  &amp;amp;&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py 0 60 50  &amp;amp;&lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
At the end of each command, &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; asks to continue to run the other commands. &#039;&#039;&#039;Wait&#039;&#039;&#039; asks to keep occupying the nodes and processes.&lt;br /&gt;
&lt;br /&gt;
Saving the pbs file as &#039;scripts/ex_polymer/md++.pbs&#039;, we can submit the job by&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 qsub scripts/ex_polymer/md++.pbs&lt;br /&gt;
&lt;br /&gt;
We can check the status of the job by&lt;br /&gt;
 qstat&lt;br /&gt;
If the state is Q, the job is queued and waiting to start. If the state is R, the job is running. We can delete the job by&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 qdel Job_ID&lt;br /&gt;
More information about PBS can be found https://rcc.its.psu.edu/user_guides/system_utilities/pbs/.&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
2. Add a comment to clear the variable input.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6069</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6069"/>
		<updated>2015-03-18T00:35:33Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Submit MD++ to a cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ job to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following .pbs script.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Wait&#039;&#039;&#039; asks to hold the &lt;br /&gt;
More information about PBS can be found https://rcc.its.psu.edu/user_guides/system_utilities/pbs/.&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
2. Add a comment to clear the variable input.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6068</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6068"/>
		<updated>2015-03-18T00:34:46Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: /* Submit MD++ to a cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ job to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following .pbs file.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24, walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24, walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 import sys&lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Wait&#039;&#039;&#039; asks to hold the &lt;br /&gt;
More information about PBS can be found https://rcc.its.psu.edu/user_guides/system_utilities/pbs/.&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
2. Add a comment to clear the variable input.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6067</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6067"/>
		<updated>2015-03-18T00:32:27Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ job to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following .pbs file.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
 #PBS -j oe&lt;br /&gt;
 #PBS -l nodes=1:ppn=24,walltime=96:00:00&lt;br /&gt;
 #PBS -V&lt;br /&gt;
 ### ---------------------------------------&lt;br /&gt;
 ### BEGINNING OF EXECUTION&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;
 ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
 echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
 ### end of information preamble&lt;br /&gt;
 cd $PBS_O_WORKDIR&lt;br /&gt;
 echo $PWD&lt;br /&gt;
 sleep 2&lt;br /&gt;
 bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&lt;br /&gt;
&lt;br /&gt;
PBS is a job resource manager, and it gives queuing and execution services in a batch cluster environment. In a pbs script, &#039;&#039;&#039;#PBS -N polymer_equil&#039;&#039;&#039; specifies the name of the job. &#039;&#039;&#039;#PBS -j oe&#039;&#039;&#039; tells PBS to put both normal output and error output into the same output file. &#039;&#039;&#039; #PBS -l nodes=1:ppn=24,walltime=96:00:00&#039;&#039;&#039; requests 1 node, 24 processes for 96 hours running time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;cd $PBS_O_WORKDIR&#039;&#039;&#039; asks to open the work directory. &#039;&#039;&#039;bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion.py&#039;&#039;&#039; is the command to run the job. &lt;br /&gt;
&lt;br /&gt;
When we use one process of a node, the whole node is occupied. Therefore, if we have more than one job, we can put them in the same pbs script. Moreover, We can add arguments to the MD++ scripts&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 import sys&lt;br /&gt;
&lt;br /&gt;
 if len(sys.argv) == 1 :&lt;br /&gt;
     status = 0&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 1 :&lt;br /&gt;
     status = int(sys.argv[1])&lt;br /&gt;
 print(status)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 2 :&lt;br /&gt;
     arg2 = 50&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 2 :&lt;br /&gt;
     arg2 = int(sys.argv[2])&lt;br /&gt;
 print(arg2)&lt;br /&gt;
 &lt;br /&gt;
 if len(sys.argv) &amp;lt;= 3 :&lt;br /&gt;
     arg3 = 80&lt;br /&gt;
 elif len(sys.argv) &amp;gt; 3 :&lt;br /&gt;
     arg3 = int(sys.argv[3])&lt;br /&gt;
 print(arg3)&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Wait&#039;&#039;&#039; asks to hold the &lt;br /&gt;
More information about PBS can be found https://rcc.its.psu.edu/user_guides/system_utilities/pbs/.&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
2. Add a comment to clear the variable input.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6066</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6066"/>
		<updated>2015-03-18T00:05:38Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ job to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following .pbs file.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #PBS -N polymer_equil&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
#PBS -l nodes=1:ppn=24,walltime=96:00:00&lt;br /&gt;
#PBS -V&lt;br /&gt;
### ---------------------------------------&lt;br /&gt;
### BEGINNING OF EXECUTION&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;
ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
### end of information preamble&lt;br /&gt;
cd $PBS_O_WORKDIR&lt;br /&gt;
echo $PWD&lt;br /&gt;
sleep 2&lt;br /&gt;
py_bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion_press.py &amp;amp;&lt;br /&gt;
wait&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
2. Add a comment to clear the variable input.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6065</id>
		<title>Submit MD++ Jobs to a Cluster</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=Submit_MD%2B%2B_Jobs_to_a_Cluster&amp;diff=6065"/>
		<updated>2015-03-18T00:05:08Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: Created page with &amp;quot;==Submit MD++ to a cluster==  Besides running MD++ on your own computers, we can also submit MD++ job to clusters. Here take cluster mc2 as an example. Make a sub-directory &amp;#039;&amp;#039;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Submit MD++ to a cluster==&lt;br /&gt;
&lt;br /&gt;
Besides running MD++ on your own computers, we can also submit MD++ job to clusters. Here take cluster mc2 as an example. Make a sub-directory &#039;&#039;&#039;Codes&#039;&#039;&#039; in the home directory, and extract the downloaded MD++ files there.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 $ mkdir Codes &lt;br /&gt;
 $ cd Codes &lt;br /&gt;
 $ tar -zxvf md++-2015-01-14.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then we compile the potential energy we need, for example, &#039;ljbond&#039;, for Python files &lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
 $ cd MD++&lt;br /&gt;
 $ make ljbond build=R SYS=mc2 PY=yes&lt;br /&gt;
&lt;br /&gt;
Now we want to submit a job &#039;scripts/ex_polymer/polymer_expansion.py&#039; with the potential energy &#039;ljbond_mc2&#039; to the mc2 cluster. We need to prepare the following .pbs file.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#PBS -N polymer_equil&lt;br /&gt;
#PBS -j oe&lt;br /&gt;
#PBS -l nodes=1:ppn=24,walltime=96:00:00&lt;br /&gt;
#PBS -V&lt;br /&gt;
### ---------------------------------------&lt;br /&gt;
### BEGINNING OF EXECUTION&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;
ncpu=`cat $PBS_NODEFILE | wc -w`&lt;br /&gt;
echo &amp;quot;Number of processors = $ncpu &amp;quot;&lt;br /&gt;
### end of information preamble&lt;br /&gt;
cd $PBS_O_WORKDIR&lt;br /&gt;
echo $PWD&lt;br /&gt;
sleep 2&lt;br /&gt;
py_bin/ljbond_mc2 scripts/ex_polymer/polymer_expansion_press.py &amp;amp;&lt;br /&gt;
wait&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stretch a polymer melt with MD++==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggestions==&lt;br /&gt;
&lt;br /&gt;
1. Add searching function in the manual website. &lt;br /&gt;
2. Add a comment to clear the variable input.&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
	<entry>
		<id>http://micro.stanford.edu/mediawiki/index.php?title=MD%2B%2B_Manuals&amp;diff=6063</id>
		<title>MD++ Manuals</title>
		<link rel="alternate" type="text/html" href="http://micro.stanford.edu/mediawiki/index.php?title=MD%2B%2B_Manuals&amp;diff=6063"/>
		<updated>2015-03-12T17:44:45Z</updated>

		<summary type="html">&lt;p&gt;Lihuajin: Add a new page &amp;quot;Submit MD++ Jobs to a Cluster&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;H4&amp;gt;Manuals&amp;lt;/H4&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt; [http://micro.stanford.edu/MDpp/docs/list MD++ Documentation]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[M01 Introduction to MD++]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[M02 Making a Perfect Crystal]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[M03 Equilibrium Lattice Constant and Bulk Modulus]] &lt;br /&gt;
&amp;lt;LI&amp;gt;[[M04 Energy Minimization of Vacancy]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[M05 Finite Temperature Simulation]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[M06 Visualization ]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[M07 Computing Elastic Constants | M07 Computing Elastic Constants at &#039;&#039;T&#039;&#039; = 0]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[M08 MD++ Powered by Tcl Language]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[M09 Computing Ideal Strength]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[M10 DisregistryAnalysis | M10 Visualize Disregistry vector]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[M11 MD++ Powered by Python]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[http://micro.stanford.edu/~caiwei/me346/  Molecular Simulations Lecture Notes]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[Comprehensive Nuclear Materials MD Case Studies | Case Studies of Crystals and Dislocations]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[MD++ An Example Script File | An Example Script File]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[MD++ An Example Tcl File | An Example Tcl File]]&lt;br /&gt;
&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H4&amp;gt;Technical details&amp;lt;/H4&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;[[ MD++ QnA | MD++ FAQs]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[MD Potential Files]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[Making Amimations Using a MD++ Script File | Making Movies in MD++]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[Output File Formats in MD++]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[Running MD++ on Mac OS]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[Submit MD++ Jobs to a Cluster]]&lt;br /&gt;
&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;H4&amp;gt;Advanced topics&amp;lt;/H4&amp;gt;&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;[[media:ewald_notes.pdf | Notes on Ewald Summation]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[Computing Melting Point by Free Energy Method]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[M04A Conjugate Gradient Method in MD++ | Conjugate Gradient Methods in MD++]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[Computing Elastic Constants 2 | Computing Elastic Constants at Finite Temperature]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[M10 Angular momentum is conserved or not | Conservation of Angular Momentum]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[Use MEAM in MD++]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[media:Day1_Ising_Demo.pdf | Monte Carlo Simulation of 2D Ising Model]]&lt;br /&gt;
&amp;lt;LI&amp;gt;[[Phonon dispersion relation | Phonon Dispersion Relation of Graphene]]&lt;br /&gt;
&amp;lt;/UL&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lihuajin</name></author>
	</entry>
</feed>