Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# BiCrystal
``BiCrystal`` is a Python program that builds commensurate and incommensurate crystal structures of layered materials. The current version reads CIF files and writes the new structure to a QUANTUM ESPRESSO input file. The program also provides additional information such as the bond distance between atoms, lattice vectors in Bohr and Angstrom, and a simple 3D plot of each layer.
``BiCrystal`` is a Python program that builds incommensurate crystal structures of layered materials. The current version reads CIF files and writes the new structure to a QUANTUM ESPRESSO input file. The program also provides additional information such as the bond distance between atoms, lattice vectors in Bohr and Angstrom, and a simple 3D plot of each layer.

Contents
==========
Expand All @@ -20,12 +20,13 @@ Building unit cells of arbitrary size is often an inevitable task when studying
# Download
The latest version of ``BiCrystal`` can be found on github:

https://github.com/tilaskabengele/BiCrystal
https://github.com/tilaskabengele/BiCrystal/tree/stable


**Contact**: Tilas Kabengele tilas.kabengele@dal.ca

# Packages
`BiCrystal` is a python-based program that uses Scipy and Shapely libraries. Additionally, the Crystal package, which is not part of the standard Python packages, should be installed. i.e Install via pip or conda:
`BiCrystal` is a python-based program that uses Scipy and Shapely libraries. Additionally, the Crystal and shapely packages, which is not part of the standard Python packages, should be installed. i.e Install via pip or conda:

pip install crystals
or
Expand All @@ -38,7 +39,6 @@ and
For more information on crystals and shapely, visit: https://pypi.org/project/crystals/ and https://pypi.org/project/Shapely/ respectively.

# Files

**bicrystal** - Bash script which runs the python program \
**cifs/** - Directory with sample cif files \
**examples/** - Directory with 33 examples of QUANTUM ESPRESSO input files generated by BiCrystal \
Expand All @@ -48,7 +48,7 @@ For more information on crystals and shapely, visit: https://pypi.org/project/cr
# Installation
After downloading the files from the github repository to the directory of your choice (_recommended: /usr/bin/_), make `bicrystal` and `program.py` into executables:

chmod u+x bicrystal program.py
chmod r+x bicrystal program.py

Next, add this directory to your $PATH variable. In Bash, adding the following lines to your `.bashrc file`:

Expand All @@ -75,13 +75,11 @@ The first thing you will be required to do is input your cif file, e.g. graphite
***Input cif file***
graphite.cif

Next, enter input parameters m and n, and rotation angle in degrees (_zero if you want both layers unperturbed_).
Parameter m and n correspond to the scale of the lattice vectors along the x and y directions, respectively. As an example, let's take m = 2, n = 1 and rotation angle 21.79 degrees.
Next, input scaling parameters m and n, which correspond to the scale of the lattice vectors along the x and y directions, respectively. As an example, let's take m = 2, n = 1. Bicrystal caculates the relative rotation angle for the given m and n. In this case, the rotation angle will be 21.79 degrees.

***Rotation parameters***
Enter m 2
Enter n 1
Enter rotation_angle 0

After that, you will be required to pick a zeroeth atom from the top and bottom layer. If we were picking the atoms by hand using a visualization software such as Xcrysden, this would be the atom we start from when creating the new cell vectors.

Expand Down Expand Up @@ -110,7 +108,10 @@ After that, you will be required to pick a zeroeth atom from the top and bottom
Finally, you can save your output as a QUANTUM ESPRESSO file and visualize with Xcrysden for a more sophisticated look.

********************* SUMMARY REPORT ***********************


Rotation angle (deg) = 19.107
Relative Rotation (deg) = 21.787

Top atoms(rotated) = 14
Bottom atoms = 14

Expand All @@ -122,7 +123,6 @@ After that, you will be required to pick a zeroeth atom from the top and bottom
Would you like to write Espresso file?[Y/n]

# Examples

Let's say we saved our output in the example given above as graphite28.scf.in, we can visualize this with Xcrysden.

xcrysden --pwi graphite28.scf.in
Expand All @@ -134,17 +134,17 @@ Looking from the top view, we can see that for this rotation, a Moire pattern wa
The **examples/** folder has over 30 examples of Moire patterns graphite, Molebdenum Disulfide and blue Phosphorene generated from `bicrystal`. Below are some examples.

# Graphite 364-atom unit cell
The unit cell of graphite with 364 atoms can be generated by using parameters: m = 6, n = 5, and rotation angle of 6.01 degrees. Shown below is the top view.
The unit cell of graphite with 364 atoms can be generated by using parameters: m = 6, n = 5. Shown below is the top view.

![cc364](https://user-images.githubusercontent.com/62076249/87933970-98f5b000-ca64-11ea-906b-15a1036989a1.PNG)

# Blue phosphorene 172-atom unit cell
The unit cell of blue phosphorene with 172 atoms can be generated by using parameters: m = 6, n = 1, and rotation angle of 44.82 degrees. Shown below is the top view.
The unit cell of blue phosphorene with 172 atoms can be generated by using parameters: m = 6, n = 1. Shown below is the top view.

![bluep172](https://user-images.githubusercontent.com/62076249/87934152-e245ff80-ca64-11ea-8f36-b69b5799e3fa.PNG)

# Molybdenun Disulfide 546-atom unit cell
The unit cell of MoS<sub>2</sub> with 546 atoms atoms can be generated by using parameters: m = 6, n = 5, and rotation angle of 6.01 degrees. Shown below is the top view.
The unit cell of MoS<sub>2</sub> with 546 atoms atoms can be generated by using parameters: m = 6, n = 5. Shown below is the top view.

![mos546](https://user-images.githubusercontent.com/62076249/87934312-2fc26c80-ca65-11ea-97a2-c9cdb3068a9d.PNG)

Expand Down
1 change: 0 additions & 1 deletion _config.yml

This file was deleted.

23 changes: 11 additions & 12 deletions bicrystal/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# BiCrystal
``BiCrystal`` is a Python program that builds commensurate and incommensurate crystal structures of layered materials. The current version reads CIF files and writes the new structure to a QUANTUM ESPRESSO input file. The program also provides additional information such as the bond distance between atoms, lattice vectors in Bohr and Angstrom, and a simple 3D plot of each layer.
``BiCrystal`` is a Python program that builds incommensurate crystal structures of layered materials. The current version reads CIF files and writes the new structure to a QUANTUM ESPRESSO input file. The program also provides additional information such as the bond distance between atoms, lattice vectors in Bohr and Angstrom, and a simple 3D plot of each layer.

Contents
==========
Expand All @@ -26,7 +26,7 @@ https://github.com/tilaskabengele/BiCrystal/
**Contact**: Tilas Kabengele tilas.kabengele@dal.ca

# Packages
`BiCrystal` is a python-based program that uses Scipy and Shapely libraries. Additionally, the Crystal package, which is not part of the standard Python packages, should be installed. i.e Install via pip or conda:
`BiCrystal` is a python-based program that uses Scipy and Shapely libraries. Additionally, the Crystal and shapely packages, which is not part of the standard Python packages, should be installed. i.e Install via pip or conda:

pip install crystals
or
Expand All @@ -39,7 +39,6 @@ and
For more information on crystals and shapely, visit: https://pypi.org/project/crystals/ and https://pypi.org/project/Shapely/ respectively.

# Files

**bicrystal** - Bash script which runs the python program \
**cifs/** - Directory with sample cif files \
**examples/** - Directory with 33 examples of QUANTUM ESPRESSO input files generated by BiCrystal \
Expand All @@ -49,7 +48,7 @@ For more information on crystals and shapely, visit: https://pypi.org/project/cr
# Installation
After downloading the files from the github repository to the directory of your choice (_recommended: /usr/bin/_), make `bicrystal` and `program.py` into executables:

chmod u+x bicrystal program.py
chmod r+x bicrystal program.py

Next, add this directory to your $PATH variable. In Bash, adding the following lines to your `.bashrc file`:

Expand All @@ -76,13 +75,11 @@ The first thing you will be required to do is input your cif file, e.g. graphite
***Input cif file***
graphite.cif

Next, enter input parameters m and n, and rotation angle in degrees (_zero if you want both layers unperturbed_).
Parameter m and n correspond to the scale of the lattice vectors along the x and y directions, respectively. As an example, let's take m = 2, n = 1 and rotation angle 21.79 degrees.
Next, input scaling parameters m and n, which correspond to the scale of the lattice vectors along the x and y directions, respectively. As an example, let's take m = 2, n = 1. Bicrystal caculates the relative rotation angle for the given m and n. In this case, the rotation angle will be 21.79 degrees.

***Rotation parameters***
Enter m 2
Enter n 1
Enter rotation_angle 0

After that, you will be required to pick a zeroeth atom from the top and bottom layer. If we were picking the atoms by hand using a visualization software such as Xcrysden, this would be the atom we start from when creating the new cell vectors.

Expand Down Expand Up @@ -111,7 +108,10 @@ After that, you will be required to pick a zeroeth atom from the top and bottom
Finally, you can save your output as a QUANTUM ESPRESSO file and visualize with Xcrysden for a more sophisticated look.

********************* SUMMARY REPORT ***********************


Rotation angle (deg) = 19.107
Relative Rotation (deg) = 21.787

Top atoms(rotated) = 14
Bottom atoms = 14

Expand All @@ -123,7 +123,6 @@ After that, you will be required to pick a zeroeth atom from the top and bottom
Would you like to write Espresso file?[Y/n]

# Examples

Let's say we saved our output in the example given above as graphite28.scf.in, we can visualize this with Xcrysden.

xcrysden --pwi graphite28.scf.in
Expand All @@ -135,17 +134,17 @@ Looking from the top view, we can see that for this rotation, a Moire pattern wa
The **examples/** folder has over 30 examples of Moire patterns graphite, Molebdenum Disulfide and blue Phosphorene generated from `bicrystal`. Below are some examples.

# Graphite 364-atom unit cell
The unit cell of graphite with 364 atoms can be generated by using parameters: m = 6, n = 5, and rotation angle of 6.01 degrees. Shown below is the top view.
The unit cell of graphite with 364 atoms can be generated by using parameters: m = 6, n = 5. Shown below is the top view.

![cc364](https://user-images.githubusercontent.com/62076249/87933970-98f5b000-ca64-11ea-906b-15a1036989a1.PNG)

# Blue phosphorene 172-atom unit cell
The unit cell of blue phosphorene with 172 atoms can be generated by using parameters: m = 6, n = 1, and rotation angle of 44.82 degrees. Shown below is the top view.
The unit cell of blue phosphorene with 172 atoms can be generated by using parameters: m = 6, n = 1. Shown below is the top view.

![bluep172](https://user-images.githubusercontent.com/62076249/87934152-e245ff80-ca64-11ea-8f36-b69b5799e3fa.PNG)

# Molybdenun Disulfide 546-atom unit cell
The unit cell of MoS<sub>2</sub> with 546 atoms atoms can be generated by using parameters: m = 6, n = 5, and rotation angle of 6.01 degrees. Shown below is the top view.
The unit cell of MoS<sub>2</sub> with 546 atoms atoms can be generated by using parameters: m = 6, n = 5. Shown below is the top view.

![mos546](https://user-images.githubusercontent.com/62076249/87934312-2fc26c80-ca65-11ea-97a2-c9cdb3068a9d.PNG)

Expand Down
Loading