User Tools

Site Tools


exercises:2018_ethz_mmm:lennard_jones_cluster_2018

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
exercises:2018_ethz_mmm:lennard_jones_cluster_2018 [2018/02/22 14:18] dpasseroneexercises:2018_ethz_mmm:lennard_jones_cluster_2018 [2018/02/23 08:48] dpasserone
Line 6: Line 6:
  
  
 +<note tip>
 +All files of this exercise be downloaded directly from the wiki: {{exercise_1.1.zip|}} 
 +</note>
  
-<code> +Download the 1.1 exercise into your **EXERCISES** folder and unzip it
-max@qmobile:~$ cp2k.ssmp -i file.inp -o file.out +
-</code>  +
- +
  
 <code> <code>
-================================================================== +max@qmobile:~$ cd ; cd EXERCISES 
-m_addcolumn +max@qmobile:~$ wget http://www.cp2k.org/_media/exercises:2018_ethz_mmm:exercise_1.1.zip 
-Description+max@qmobile:~$ unzip exercises:2018_ethz_mmm:exercise_1.1.zip 
-        add a column at the left of a file, the same string in every line. +max@qmobile:~$ cd exercise_1.1
-Usage: +
-        m_addcolumn string < file > file.out +
-================================================================== +
- +
- +
-================================================================== +
-m_cutlines +
-Description: +
-        Cuts lines l1..l2, l3..l4, l5..l6 away from a file +
-Usage: +
-        m_cutlines l1 l2 l3 l4 l5 l6 ...  < file > modified_file +
-================================================================== +
- +
- +
-================================================================== +
-m_domyslab +
-Description: +
-        starting from a unit cell file with Element x y z columns, generate a nx ny nz cellThe parameter d is the nearest neighbor distance, and the cell lengths Lx, Ly, Lz are in the same units as in the unit cell file. Since d is used to multiply all coordinates, the unit cell coordinates are meant to be in nearest neighbor units. +
-Usage: +
-        m_domyslab Lx Ly Lz d nx ny nz < unitcell > slab.xyz +
-================================================================== +
- +
- +
-================================================================== +
-m_interpolate +
-Description: +
-        Returns a list of real numbers that interpolates two given extremes A and B with n+points (from A=0 to B=n) +
-Usage: +
-        m_interpolate xa xb n +
-================================================================== +
- +
- +
-================================================================== +
-m_multiply +
-Description: +
-        Returns the product of two numbers +
-Usage: +
-        m_multiply num1 num2 +
-================================================================== +
- +
- +
-================================================================== +
-m_overlayer +
-Description: +
-        Replaces the 4th column (z coordinate) of a file with a user-given new z coordinate+
-Usage: +
-        m_overlayer newz < overlayer.xyz > newoverlayer.xyz +
-================================================================== +
- +
- +
-================================================================== +
-m_replace +
-Description: +
-        Replaces all occurrencies of an "oldstring" in a file with a "newstring" string +
-Usage: +
-        m_replace "oldstring" "newstring" < oldfile > newfile +
-================================================================== +
- +
- +
-================================================================== +
-m_trimlines +
-Description: +
-        trims around lines l1..l2, l3..l4, l5..l6 of +
-Usage: +
-        m_trimlines l1 l2 l3 l4 l5 l6 ...  < file > modified_file +
-================================================================== +
- +
- +
-================================================================== +
-m_xyzcenter +
- +
- +
-Description: +
-        Centers a sample in the directions specified by a 1, and not in those specified by a 0 +
-Usage: +
-        m_xyzcenter flagx flagy flagz < cell.xyz > cell_center.xyz +
-================================================================== +
- +
- +
-================================================================== +
-m_xyzminmax +
-Description: +
-        This function returns the maximum and minimum X (or Y, or Z) value from a XYZ file +
-Usage: +
-        m_xyzminmax x|y|z < file.xyz +
-================================================================== +
- +
- +
-================================================================== +
-m_xyzrefold +
- +
-Description: +
-        Refolds a sample according to periodic boundary conditions in all directions marked by 1 +
-        The cell is defined by a,b,c in the second line of the xyz file +
-Usage: +
-        m_xyzrefold markx marky markz < filein.xyz > fileout.xyz +
-================================================================== +
- +
- +
-================================================================== +
-m_xyztranslate +
- +
-Description: +
-        Translates all coordinates of a xyz file by a given vector. +
-Usage: +
-        m_xyztranslate tx ty tz < filein.xyz > fileout.xyz +
-================================================================== +
- +
- +
-================================================================== +
-m_atan2 +
-Description: +
-        Returns the angle in degrees between the positive X-axis of a plane and the point given by the coordinates (x,y) on it: +
- +
-+
- \ +
-  * (x,y) +
-   \ +
-    \ +
-     \_______ +
-      \      | +
-       \angle| +
-      --\----------------------> +
-                             X +
- +
-Usage: +
-        m_atan2 x y +
-================================================================== +
- +
- +
-================================================================== +
-m_distance +
-Description: +
-        Computes the distance between two points +
-Usage: +
-        m_distance x1 y1 z1 x2 y2 z2 +
-================================================================== +
- +
- +
-================================================================== +
-m_functions.bash +
-================================================================== +
- +
- +
-================================================================== +
-m_lattice +
- +
-Description: +
-        Replicates a cell in 3 directions and generates a sample with the cell lengths a b c in the second line +
-        IT ONLY READS THE LINES WITH EXACTLY 4 COLUMNS (atomic index, x, y, z) +
-Usage: +
-        m_lattice [Atom] cellx celly cellz nx ny nz < cell > sample.xyz +
-================================================================== +
- +
- +
-================================================================== +
-m_norm +
-Please specify three arguments +
-Description: +
-        Returns the norm of a vector +
-Usage: +
-        m_norm x y z +
- +
-================================================================== +
- +
- +
-================================================================== +
-m_pdbtorsion +
-Description: +
-        Returns torsion defined by 4 atoms in a pdb file +
-                           Atom4 +
-                            / +
-             <-.           / +
-           angle\         / +
-     Atom2-------|-----Atom3 +
-      /      \__/ +
-     / +
-    / +
- Atom1 +
- +
-Usage: +
-        m_pdbtorsion n1 n2 n3 n4 file +
-================================================================== +
- +
- +
-================================================================== +
-m_scalar +
-Description: +
-        Returns scalar product of two vectos +
-Usage: +
-        m_scalar x1 y1 z1 x2 y2 z2 +
-================================================================== +
- +
- +
-================================================================== +
-m_unitvec +
-Description: +
-        Returns a normalized input vector +
-Usage: +
-        m_unitvec x y z +
-================================================================== +
- +
- +
-================================================================== +
-m_xyzcountframes +
-Description: +
-        This function counts the number of frames in a trajectory +
-Usage: +
-        m_xyzcountframes file.xyz +
-================================================================== +
- +
- +
-================================================================== +
-m_xyznatoms +
-Description: +
-        This function returns the number of atoms in a given XYZ file +
-Usage: +
-        m_xyznatoms < file.xyz +
-================================================================== +
- +
- +
-================================================================== +
-m_xyzrescale +
- +
-Description: +
-        Rescales all coordinates of a xyz file by a given factor. If the cell is given in the second line it is multiplied by the same factor +
-Usage: +
-        m_xyzrescale factor < filein.xyz > fileout.xyz +
-================================================================== +
- +
- +
-================================================================== +
-m_xyzzhistogram +
-Description: +
-        This function makes a z histogram of a trajectory +
-Usage: +
-        m_xyzzhistogram n_intervals n_atoms z_min z_max +
-================================================================== +
- +
- +
-================================================================== +
-m_change +
-Please specify three arguments +
-Description: +
-        Adds a delta times an integer to a central value +
-Usage: +
-        m_change x0 n delta +
-================================================================== +
- +
- +
-================================================================== +
-m_divide +
-Description: +
-        Returns the ratio of two numbers +
-Usage: +
-        m_ratio num1 num2 +
-================================================================== +
- +
- +
-================================================================== +
-m_getcolumn +
-Description: +
-        Greps a string from a file and gets the last instance; then takes the nth column +
-Usage: +
-        m_getcolumn "STRING" column < file +
-================================================================== +
- +
- +
-================================================================== +
-m_list +
-Please specify two arguments +
-Description: +
-        Creates an ordered list of numbers between two integers +
-Usage: +
-        m_list nmin nmax +
-================================================================== +
- +
- +
-================================================================== +
-m_onecolumn +
-Description: +
-        parse a file and write all words as a single column +
-Usage: +
-        m_onecolumn < file +
-================================================================== +
- +
- +
-================================================================== +
-m_pdbvecjoin +
-Description: +
-        Returns a vector joining  two atoms in a pdb file +
-Usage: +
-        m_pdbvecjoin at1 at2 pdbfile +
-================================================================== +
- +
- +
-================================================================== +
-m_sum +
-Description: +
-        Returns the sum of two numbers +
-Usage: +
-        m_sum num1 num2 +
-================================================================== +
- +
- +
-================================================================== +
-m_vecprod +
-Description: +
-        Returns vector product of two vectors +
-Usage: +
-        m_vecprod x1 y1 z1 x2 y2 z2 +
-================================================================== +
- +
- +
-================================================================== +
-m_xyzframes +
-Description: +
-        This function takes frames from a xyz file +
-Usage: +
-        m_takeslides first_frame last_frame file.xyz  (with last_frame=all, until the end) +
-================================================================== +
- +
- +
-================================================================== +
-m_xyzrand +
- +
-Description: +
-        Randomizes a file xyz from -delta/2 to delta/2 +
-Usage: +
-        m_xyzrand delta < file.xyz +
-================================================================== +
- +
- +
-================================================================== +
-m_xyzsort +
- +
-Description: +
-        Sorts a xyz file according to z, y, x coordinates (z is inverted) +
-Usage: +
-        m_xyzsort < file.xyz > filesorted.xyz +
-================================================================== +
- +
- +
 </code> </code>
  
  
-Download the 1.1 exercise into your $HOME folder and unzip it.  
- 
-<code> 
-you@eulerX ~$ wget http://www.cp2k.org/_media/exercises:2017_ethz_mmm:exercise_1.1.zip 
-you@eulerX ~$ unzip exercises:2017_ethz_mmm:exercise_1.1.zip 
-</code> 
-<!-- 
-<note tip> 
-All files of this exercise be downloaded from the wiki: {{exercise_1.1.zip|}}  
-</note> 
  
 In this exercise you will test the Lennard-Jones potential. In particular, we will focus on the system described in the following paper about the energy landscape of the 38 atom Lennard-Jones cluster: In this exercise you will test the Lennard-Jones potential. In particular, we will focus on the system described in the following paper about the energy landscape of the 38 atom Lennard-Jones cluster:
 <note tip>{{ :exercises:2017_ethz_mmm:1999_the_double-funnel_energy_landscape_of_the_38-atom_lennard-jones_cluster.pdf |}} <note tip>{{ :exercises:2017_ethz_mmm:1999_the_double-funnel_energy_landscape_of_the_38-atom_lennard-jones_cluster.pdf |}}
 </note> </note>
-Login to euler using your nethz credentials. + 
-Then go to the directory "exercise_1.1"+The command to run cp2k is the following (with a generic **file.inp** input file): 
 <code> <code>
-you@eulerX ~$ cd exercise_1.1+max@qmobile:~$ cp2k.ssmp -i file.inp -o file.out 
 +</code> 
  
- 
-</code> 
  
 ===== Geometry optimization  ===== ===== Geometry optimization  =====
Line 501: Line 146:
 <note important>NOTE ON THE UNITS: CP2K USES SO CALLED "atomic units". Meaning that the resulting energies are expressed in Hartree,  <note important>NOTE ON THE UNITS: CP2K USES SO CALLED "atomic units". Meaning that the resulting energies are expressed in Hartree, 
 **1 Hartree=27.2114 eV**.  **1 Hartree=27.2114 eV**. 
-In the input file, the epsilon value (depth of the well) is expressed in KT units, namely, in "temperature" units (there is a Boltzmann constant to make units work...). **The sigma value is in Angstrom.**+In the input file, the epsilon value (depth of the well) is expressed in KT units, namely, in "temperature" units (there is a Boltzmann constant K_b to make units work...). <code>1 Kelvin*K_b=3.2E-6 Hartree</code>. Using this conversion factor you can transform the epsilon value into Hartree, and the total energy can be expressed in units of epsilon.  **The sigma value is in Angstrom.**
 </note> </note>
 <note tip> <note tip>
-  - load the module with the special m_* bash functions and initialize the module: <code>module load courses mmm ; mmm-init </code> +  - randomize the coordinate files **fcc.xyz** (which represents the "cubic" structure) <code>m_xyzrand 1.0 < fcc.xyz > fcc_rand.xyz</code>Do the same with **ico.xyz** which represents the icosahedral structure. You can look at all files with **vmd**. 
-  - randomize the coordinate files **fcc.xyz**  <code>m_xyzrand 1.0 < fcc.xyz > fcc_rand.xyz</code> Do the same with ico.xyz +  - extract the q4 order parameter from **fcc.xyz** and from **fcc_rand.xyz** and compare the values. 
-  - extract the q4 order parameter from **fcc.xyz** and from **fcc_rand.xyz** and compare the values.<code>module load new gcc/4.8.2 python/2.7.12   +  - <code> python stein.py file.xyz </code>You will be asked the cutoff radius for the neighbors, it is **1.391** in sigma units. **You should input it in Angstrom**. You will also be asked **"value of l"** This means the symmetry of the order parameter, which is **l=4** in this case.
-python stein.py file.xyz </code>You will be asked the cutoff radius for the neighbors, it is **1.391** in sigma units. **You should input it in Angstrom**. +
   - before running the simulation, copy the input coordinate file into in.xyz <code>cp fcc_rand.xyz in.xyz</code>   - before running the simulation, copy the input coordinate file into in.xyz <code>cp fcc_rand.xyz in.xyz</code>
-  - run cp2k <code>module load cp2k</code>(this has only to be done once)<code>cp2k.popt -i geo_opt.inp -o geo_opt.out </code>  +  - Before running cp2k, check if the file **OPT-pos-1.xyz** is already present from a previous run. In that case remove or delete it accordingly. It contains the trajectory of the optimization. 
-  - in the output file, note the final energy, **transform it in the unit of the paper (epsilon units)** +  - run cp2k  <code>cp2k.ssmp -i geo_opt.inp | tee geo_opt.out </code> (to see the output on the screen as well), or **AS AN ALTERNATIVE** <code>cp2k.ssmp -i geo_opt.inp geo_opt.out </code> (to retain the output in the geo_opt.out file only)  
-  - load vmd module and play with the optimization trajectory <code>vmd OPT-pos-1.xyz</code> (ask the teacher)+  - in the output file, grep the final energy <code>grep "ENERGY|“ geo_opt.out</code> and transform it in the unit of the paper (epsilon units) 
 +  - Open vmd and play with the optimization trajectory <code>vmd OPT-pos-1.xyz</code> (ask the teacher)
   - apply the script **myq4** to the optimization trajectory: this generates a list of q4 and energies for the whole trajectory. <code>./myq4 OPT-pos-1.xyz > fcc.ene.q4</code>    - apply the script **myq4** to the optimization trajectory: this generates a list of q4 and energies for the whole trajectory. <code>./myq4 OPT-pos-1.xyz > fcc.ene.q4</code> 
   - plot q4 and energies with **gnuplot** (ask the teacher)   - plot q4 and energies with **gnuplot** (ask the teacher)
   - have a look at the myq4 script <code>nano myq4</code>   - have a look at the myq4 script <code>nano myq4</code>
   - repeat for the ico.xyz starting point, don't forget to first copy/remove the files appropriately. For example: <code>mkdir FCC ; mv OPT* FCC ; mv geo_opt.out FCC</code>   - repeat for the ico.xyz starting point, don't forget to first copy/remove the files appropriately. For example: <code>mkdir FCC ; mv OPT* FCC ; mv geo_opt.out FCC</code>
-  - finally, run the bash script <code>./curve</code>Look inside, and try to understand what you get. +  - Run the bash script <code>./curve</code>Look inside, and try to understand what you get.  
 +  - create a FCC_OUT subdirectory (**mkdir FCC_OUT ; cd FCC_OUT**) and copy there the files you want to keep; then go back one dir (**cd ..**), delete all the OPT* files (**rm OPT* **) and repeat the exercise with ico.xyz
  
 </note> </note>
 +
 +
 +
 +
 +
 +
 +
 +
  
  
Line 526: Line 180:
 <note tip>Assignment:  <note tip>Assignment: 
   - Report the energy of the minima, compare it with the ones of the initial configurations.    - Report the energy of the minima, compare it with the ones of the initial configurations. 
 +  - After converting the energy into "epsilon" units, estimate the number of bonds in the cluster, assuming a pairwise interaction.
   - Plot q4 vs. energy and q4 vs. optimization steps, for the two cases. Discuss the results. Are the minima in two separate basins?   - Plot q4 vs. energy and q4 vs. optimization steps, for the two cases. Discuss the results. Are the minima in two separate basins?
   - Report the value of the order parameter of the minumum, and discuss what you see   - Report the value of the order parameter of the minumum, and discuss what you see
   - Use "gnuplot" to make the output of "./curve" understandable, discuss the results.   - Use "gnuplot" to make the output of "./curve" understandable, discuss the results.
 </note> </note>
--->+
exercises/2018_ethz_mmm/lennard_jones_cluster_2018.txt · Last modified: 2020/08/21 10:15 by 127.0.0.1