Table of Contents
|
Tutorial
Simmulation Flow
A DFT simmulation follows the pattern
exciting is one program that takes one input-file and writes a set of outputs into the working directory.
The structure generation is assisted with additional tools such as spacegroup
Edit Inputfile
The input file is defined as a XML Format. Go and read the input file format overview for a description of the format and the minimal setup.
Although it is perfectly legitimate to use any text editor for editing the files, one can take great advantage by using xml editors. Here we show how to setup and use eclipse. See this page on how to setup eclipse as XML editor
Eclipse contains a Schema aware editor. A schema is a definition of a grammar for a valid input. It contains also the documentation and default values. It is written in XML-Schema. So any Schema aware XML editor can help the user a great deal when editing the input files.
The Schema is associated with the Input file by the attribute "xsi:noNamespaceSchemaLocation" in the root element:
<?xml version="1.0" encoding="UTF-8" ?> <input xsi:noNamespaceSchemaLocation="../../../xml/excitinginput.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > [...] </input>
Copy this code into an eclipse editor. If the path to the schema points to the schema file that is included in the exciting distribution (xml directory)
save the file as input.xml, close it and reopen it. If you then type < and wait for a second you should see a list of valid elements in the current context of which you may select one.
note: It is perfectly alright to ignore the schema definition or leave it out. It only helps with editing if your editor supports it.
Create Structure
Structure we call the position of the atoms in their box, or better, unit-cell. The structure is defined in the <structure> element like:
<structure speciespath="../../../species" > <crystal scale="3.75" > <basevect>1 1 0</basevect> <basevect>1 0 1</basevect> <basevect>0 1 1</basevect> </crystal> <species speciesfile="Al.in"> <atom coord="0 0 0"/> </species> </structure>
This is pretty much the simplest structure imaginable as there is only one atom. Species or atoms can be added as needed. In order to have the first simulation quickly we will stick to that simple example.
groundstate
From the structure exciting can calculate the ground state density which is the base for any other properties that may be derived from it. in order to do this one needs to define the ground state element.
<groundstate ngridk="4 4 4" vkloff="0.5 0.5 0.5" > </groundstate>
The @ngkgrit attribute is required and specifies the k-points in the Brilouin zone to calculate. @vkloff specifies a offset which is added to the k-points which in the case of bulk aluminum improves the quality of the result.
Start Calculation
The simplest simulation definition is complete. It is time to try it out. Start the excitingser program in the working directory where the input.xml file you just created is located.
The input file should look like input.xml
During it is running it writes intermediate results to info.xml. and INFO.OUT. INFO.OUT is a simple text file useful for quick checks. Alternatively you can open info.xml in a web browser and monitor the values graphically. Xml Web View
The groundstate density is saved in state.out.
Plot Result
in order to visualize the results exciting offers a lot of output options
first let us take a look on the bandstructure.
In order to let exciting calculate the band structure one must add the "bandstructure" element.
[...] <properties> <bandstructure> <plot1d> <path steps="30"> <point coord="0.5 0.0 0.0" /> <point coord="0.0 0.0 0.0" /> <point coord="0.5 0.5 0.0" /> </path> </plot1d> </bandstructure> </properties> </input>
The bandstructure as a groundstate property is to be put into the properties element.
Running the code now creates the bandstructure.xml file. this file contains all you calculated and need to know about the band structure. Yet its only numbers, what you want is a graph. Here the templating tools come in. The template xmlband2agr.xsl transforms the xml file into a xmgrace file complete with axes labels and high symmetry point labels if specified in the input. It is used like:
xsltproc xmlband2agr.xsl bandstructure.xml >xmlgracebandstructure.agr
xmgrace xmlgracebandstructure.agr
what you should see is:
That's it for the first time.