User Tools

Site Tools


exercises:2018_ethz_mmm:index

This is an old revision of the document!


Exercises

The following exercises are part of the the course Molecular and Materials Modelling held at ETH Zürich during the spring semester 2018.

Lecture 1

Lecture 2

Lecture 3

Lecture 4

Lecture 5

Lecture 6

Lecture 6

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
==================================================================


exercises/2018_ethz_mmm/index.1524220073.txt.gz · Last modified: 2020/08/21 10:15 (external edit)