Tutorial
Simulation flow
A typical DFT calculation follows the pattern:
exciting is a program that uses only one input file and writes a set of outputs into the working directory.
Edit the input file
The input is defined in the XML file format. 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. See how to setup eclipse as XML editor.
Eclipse has a schema-aware XML editor plug in. A schema is a definition of a grammar for a valid input. It contains documentation and default values. It is written in XML-Schema.
The schema is associated with the input file by the attribute "xsi:noNamespaceSchemaLocation" in the root element <input>:
<?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 the eclipse editor. The path to the schema must point to the schema file that is included in the exciting distribution (xml directory). Save the file as input.xml, close it and reopen it. Now you should have tag completion and live validation available.
Create a structure
If your editor is set up correctly, one of the elements to choose is the <structure> element. Here is an example:
<structure speciespath="../../species/"> <crystal scale="3.817"> <basevect>1.0 1.0 0.0</basevect> <basevect>1.0 0.0 1.0</basevect> <basevect>0.0 1.0 1.0</basevect> </crystal> <species speciesfile="Ag.xml"> <atom coord="0.0 0.0 0.0" /> </species> </structure>
This is pretty much the simplest possible structure as there is only one atom.
The ground state
From the structure exciting can calculate the ground state electron density, which is the base for any other properties that may be derived from it. In order to obtain it one needs to specify the ground state element ngridk. To get a first rough estimate (an accurate treatment would require many more k-points) choose
<groundstate ngridk="8 8 8" />
The @ngridk attribute is required and determines the k-point mesh in the Brillouin zone. @vkloff specifies the k-point offset.
The input file should look like input.xml.
Start the calculation
exciting is invoked by calling the excitingser binary in the working directory. During the execution it writes intermediate results to info.xml. and INFO.OUT. The ground state density is saved in state.out.
Calculate and plot the band structure
In order to let exciting calculate the band structure one must add the <bandstructure> element inside the <properties> element.
[...] <properties> <bandstructure> <plot1d> <path steps="100"> <point coord="0.75000 0.50000 0.25000" label="W" ></point> <point coord="0.50000 0.50000 0.50000" label="L" ></point> <point coord="0.00000 0.00000 0.00000" label="GAMMA"></point> <point coord="0.50000 0.50000 0.00000" label="X" ></point> <point coord="0.75000 0.50000 0.25000" label="W" ></point> <point coord="0.75000 0.37500 0.37500" label="K" ></point> </path> </plot1d> </bandstructure> </properties> </input>
Running the code now creates the bandstructure.xml file.
The template xmlband2agr.xsl transforms the XML file into an xmgrace file, including 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.
The next feature to look is the density of states Ag DoS.