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.
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
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".
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.
Second last button on the top right toolbar is used to "fork" the project to make a personal copy for yourself.
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.
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.
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.
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".
The third sub-tab allows you to select the set of software you want to execute on the cloud.
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.
Then press the last button (the "play" button) on the top right toolbar to execute the project on free cloud supercomputing platform.
Look at the messages in the log panel and the bottom of your browser window.
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.
Add a title, a brief description and choose if you want to make the project public or private.
You will now see a screen like one shown below.
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 .
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 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 .
Execute This Model on KogenceFollowing 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 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
nspeciesdefines 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
tasksinput block defines a list of tasks for the code to perform sequentially.
tasks 0 21
*.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
ngridkfrom 4 4 4 to 10 10 10 (to get more precise total energy value).
plot1dinput 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
nvp1dvertices 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
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.
After refining the results with
task 1 we replot the bands as following
Following are some related models available for cloning/copying by anyone:
- Octave Charting Capability Demonstration
- 3D plot of the charge density of diamond using ELK and OpenDX
- 3D plot of the charge density of diamond using ELK and OpenDX sdClone
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.