====== Exercises ======
The following exercises are part of the the course [[http://www.vvz.ethz.ch/Vorlesungsverzeichnis/lerneinheitPre.do?lerneinheitId=113150&semkez=2017S | Molecular and Materials Modelling]] held at ETH Zürich during the spring semester 2018.
===== Lecture 1 =====
- [[lennard_jones_cluster_2018| 3D 38 Atom Lennard-Jones cluster - optimization ]]
- [[c2h2_bond_energy_2018|Bond Strength in a molecule]]
===== Lecture 2 =====
- [[H2O_MD| Molecular dynamics of water ]]
===== Lecture 3 =====
- [[MC2018| Monte Carlo simulations for the estimation of pair interactions ]]
- [[KMC2018| Kinetic Monte Carlo simulations for the diffusion of molecules @Ag(111) ]]
===== Lecture 4 =====
- [[BF3| BF3 Hartree Fock calculation and orbitals ]]
===== Lecture 5 =====
- [[Ethanol_2018| Dehydration of ethanol ]]
===== Lecture 6 =====
- [[Adsorption_2018| Adsoprtion of acetylene on PdGa ]]
===== Lecture 7 =====
- [[Infrared_2018| Infrared spectroscopy with cp2k ]]
===== Lecture 8 =====
- [[Bands_I_2018| Crystallographic point groups, free electron model ]]
===== Lecture 9 =====
- [[Bands_II_2018| Bandstructure calculations ]]
===== Lecture 10 =====
- [[STM_2018| STM and AFM simulations ]]
===== Lecture 11 =====
- [[RE_2018| Replica Exchange molecular dynamics ]]
- [[QMMM_2018| QM/MM for a slab ]]
===== Lecture 12 =====
- [[PMF| Potential of mean force ]]
===== note on the Quantum Mobile =====
Remember that the Quantum Mobile VM is a Linux environment. As such, copy/paste operations are sometimes application-dependent.
* In a browser or other graphical programs: use CTRL+C/CTRL+V
* In a terminal: use SHIFT+CTRL+C/SHIFT+CTRL+V
===== m_ bash functions =====
We have programmed in the virtual machine some useful bash functions. They all start with **m_** and can be called from the command line. To see the usage of one of them, use the -h flag.
Here the list and usage of all of them:
==================================================================
m_addcolumn
Description:
add a column at the left of a file, the same string in every line.
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 cell. The 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+1 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_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
==================================================================