Login Logout Register Discuss Discuss Edit Edit
Jump to: navigation, search

Electronic band structure of AlAs using ELK

In this project we demonstrate use of Elk to calculate the electronic band structure of AlAs. AlAs is a popular III-V semiconducting material with direct bandgap. AlAs bandgap is wider than the GaAs bandgap but their lattice dimensions are almost exactly same. This means one can easily deposit them in layers without inducing any lattice strain. For this reason, AlAs is very common material in optoelectronic semiconductor devices.

AlAs crystal structure is what is called the zincblende structure. Zincblende structure is exactly same as the diamond lattice of Si except that zincblende has two atomic species. Diamond lattice can be visualized as a FCC cubic lattice with 4 additional atoms quarter way along the 4 body diagonals. In zincblende lattice, these 4 additional atoms are of difference species. These 4 additional atoms can actually be seen as part of another FCC cubic lattice. Therefore, both diamond lattice as well as zincblende lattice can also be visualized as two interpenetrating FCC lattices.

JobT24-GEOMETRY2.png


Software Used

Elk FP-LAPW

Elk-Logo.png

Elk is an all-electron full-potential linearized augmented-plane-wave (FP-LAPW) code for determining the properties of crystalline solids. It was developed originally at the Karl-Franzens-Universit¨at Graz as part of the EXCITING EU Research and Training Network project. The guiding philosophy during the implementation of the code was to keep it as simple as possible for both users and developers without compromising on its capabilities.



Using Elk on Kogence

In order to use Elk on Kogence free supercomputing platform, you can either fork and modify an existing Elk public project or alternatively you can also start from scratch and create a new Elk project. In either case you will generate a single input file elk.in in text format. See detailed instructions below.

Fork and Modify an Existing Elk Project

Step 1:

Kogence hosts 30+ public Elk projects. See the list at the bottom of this page or click here. Click on any of the projects you like to open the project dashboard. In the project dashboard, look for a Section titled "Model File Tree".

In the project dashboard, look for a Section titled "Model File Tree".

Step 2:

If you click on the top most link labeled as "model" in this Section, you will be taken to project code listing page. Here you will see a toolbar that provides all the functionality to fork, modify and execute the project on supercomputing cloud with your choices of hardware and software choices. You will also be able to control privacy and collaboration settings.

If you click on the top most link labeled as "model" in this Section, you will be taken to project code listing page.

Step 3:

Second last button on the top right toolbar is used to "fork" the project to make a personal copy for yourself.

Second last button on the top right toolbar is used to "fork" the project to make a personal copy for yourself.

Step 4:

If you click on the folder icon on the top far-left corner, you will see the list of all files in the project. If you click on any text formatted file in the list, that file will open on a syntax highlighted code editor in your browser window itself.

File Editor.png

You can modify the code as you want. This approach can be used to modify projects that are based on software that have a text based input file to define and execute problems.

Kogence also natively supports software that are based on a Graphical User Interface (GUI) such as Comsol, Ansys, Abaqus etc. If your project is based on a GUI based software then you will edit and modify your project after starting the Kogence Interactive Remote Display in Step 10 below.

Step 5:

Third last button (the "wrench") on the top right toolbar is used to select hardware, software, privacy and collaborators. You will see 3 sub-tabs. The first sub-tab allows you to choose the type of cloud hardware/machine on which you want to execute your project.

Machine Settings.png

Step 6:

The second sub-tab allows you to choose privacy settings, add collaborators and assign rights/permissions to them. You can choose to make some collaborators "admin" for this project. Those collaborators will now be able to add/delete collaborators and assign them permissions. They would also be able to further fork the project and potentially change the privacy settings to make it a public project. To prevent these actions you should make the collaborators "user" and not "admin".

Collaboration Settings.png

Step 7:

The third sub-tab allows you to select the set of software you want to execute on the cloud.

Software Settings.png

In the snapshot shown, we have elected to have an xterm available so we can do some miscellaneous post-processing. We put the & in the textbox to run the xterm in the background. Simultaneously, we have chosen to execute our Elk project. Once Elk project execution is done, we have chosen to start Octave software so we can postprocess and chart the simulation results.

Step 8:

Then press the last button (the "play" button) on the top right toolbar to execute the project on free cloud supercomputing platform.
If you click on the top most link labeled as "model" in this Section, you will be taken to project code listing page.

Step 9:

Then press the last button (the "play" button) on the top right toolbar to execute the project on free cloud supercomputing platform.

Step 10:

Look at the messages in the log panel and the bottom of your browser window.

Log Window.png
Once it says that visualizer is ready, you can then click on the second button on the top right toolbar (the "display" button) to connect to the Kogence Interactive Remote Display on the browser itself. You can then post-process /chart your data as you would like.
If you click on the top most link labeled as "model" in this Section, you will be taken to project code listing page.

Step 11:

Any graphical outputs that you save in formats such as jpg, png, bmp etc. would be automatically pushed to the project dashboard page which a accessible by pressing the third button (the "W" button) on the top right toolbar. Dashboard pages are WYSIWYG editable. You can modify the text, define the project/problem and rearrange the results as you like. Project dashboards have same permissions as those defined by you for the whole project. For example, a private project dashboard will only show up in the search queries of your collaborators only.


Create a New Elk Project from Scratch Step 1:

Log into Kogence. You will a list of your own projects (empty list to begin with). Click on the "+" button on top left corner to create a new project.

Create New Project.png

Add a title, a brief description and choose if you want to make the project public or private.

Step 2:

You will now see a screen like one shown below.

Add File.png

Click on the "+" button on top left corner again to add or upload new file. If you upload a zip file, Kogence will automatically unzip it. You can now follow Step 4 onward as described in previous Section.

For more details see Elk FP-LAPW .

Octave

Octave.png

GNU Octave is software featuring a high-level programming language, primarily intended for numerical computations. Octave helps in solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab. It may also be used as a batch-oriented language. Since it is part of the GNU Project, it is free software under the terms of the GNU General Public License.



For more details see Octave .

VESTA

Vesta-logo.png

VESTA is a 3D visualization program for structural models, volumetric data such as electron/nuclear densities, and crystal morphologies. VESTA is a successor to two 3D visualization programs, VICS and VEND, in the VENUS (Visualization of Electron/NUclear and Structures) software package.


For more details see VESTA .

Xmgrace

Xmgrace For more details see Xmgrace .

Xmgrace

Execute This Model on Kogence

Following are the list of model files in this project. In order to execute this model or fork and modify this model, click on any of the file links below. After logging-in (you can self register for a free account), you will be able to see the code listing. Follow the instructions in Elk FP-LAPW to navigate the platform and execute the code.

Main Input and Output Files

Elk does not come with any GUI. The code requires a single user input file, elk.in. elk.in for this project can be reviewed by clicking on the file link in the "Model File Tree" Section. Elk outputs data in standard formats and can easily be plotted with several common charting and data analysis utilities such as VESTA , ParaView, Matlab and Octave, all of which are available on Kogence. In this project we used xmgrace to chart the band structures (see Fig 1).

elk.inis written as a set of input blocks. Some important input blocks in this project are described below. atomsinput block defines the atomic species as well as their positions in the unit cell.
atoms
  2                                 : nspecies
  'Al.in'                           : spfname
  1                                 : natoms; atposl below
  0.0   0.0   0.0
  'As.in'
  1
  0.25  0.25  0.25
nspecies defines the number of atomic species in a unit cell (2 in this example: Al and As). Line following is the name of the first species. Line following that defines the number of atoms of that species in a unit cell. Line following that defines the position of those atoms in lattice coordinates. This pattern then repeats for the next species. avecinput block defines the lattice vectors of the crystal in atomic units (Bohr).
avec
  0.5  0.5  0.0
  0.5  0.0  0.5
  0.0  0.5  0.5
tasks input block defines a list of tasks for the code to perform sequentially.
tasks
  0
  21
In this example, we are telling Elk to calculate the ground state (i.e. task 0) as well as band structure plot that includes the s, p, d, f character (i.e. task 21). About a dozen of *.OUTfiles will be created among them INFO.OUT (information on self-consistent loop), TOTENERGY.OUT (total energy in Hartree (Ha) for every self-consistent loop), DTOTENERGY.OUT (energy difference between two consecutive self-consistent loops), and STATE.OUT (density and potential data). After the calculations are finished the quality of the calculations should be improved by increasing the k-point mesh size. To do this change the tasks value from 0 to 1 (to resume the ground-state calculations using density from STATE.OUT) and increase the ngridk from 4 4 4 to 10 10 10 (to get more precise total energy value). plot1d input block defines the path in reciprocal space (in this project) along which data for a 1D plot is to be produced. The user should provide nvp1d vertices in lattice coordinates (i.e. coordinates for 3 vertices in the example below). npp1ddefines the number of data points in the plot.
plot1d
  3  200                                : nvp1d, npp1d
  0.5  0.0  0.0                         : vlvp1d
  0.0  0.0  0.0
  0.5  0.5  0.0

Results

As specified by the plot1d input block in the elk.in file, bandstructure of AlAs is calculated along (0.5 0.0 0.0)->(0.0 0.0 0.0)->(0.5 0.5 0.0) in the reciprocal lattice. The bandstructure is outputted in the file BAND_S02_A0001.OUT. This is plotted using xmgrace as

xmgrace -settype xydy BAND_S02_A0001.OUT -settype xy BANDLINES.OUT -param AlAs.par

The resulting chart is shown below.

Fig.1: Bandstructure of AlAs along (0.5 0.0 0.0)->(0.0 0.0 0.0)->(0.5 0.5 0.0) plotted in xmgrace utility.
One can also chart the first two columns of the file BAND_S02_A0001.OUT in Octave or Matlab.
Fig.2: Bandstructure of AlAs along (0.5 0.0 0.0)->(0.0 0.0 0.0)->(0.5 0.5 0.0) plotted in Octave.

After refining the results with task 1 we replot the bands as following

Fig.3: Bandstructure of AlAs after refinement with task 1 along (0.5 0.0 0.0)->(0.0 0.0 0.0)->(0.5 0.5 0.0) plotted in Octave.

Related Models

Following are some related models available for cloning/copying by anyone:

Click on the category links at the bottom of this page to navigate to a full list of simulation models in similar subject area or similar computational methodology.