Code Monkey home page Code Monkey logo

deltacodesdft's Introduction

This file provides a summary of the necessary information to calculate a code's Delta factor. The full procedure and background are described in the article by K. Lejaeghere, V. Van Speybroeck, G. Van Oost, and S. Cottenier: "Error estimates for solid-state density-functional theory predictions: an overview by means of the ground-state elemental crystals", Crit. Rev. Solid State (2014).

An overview of the current calculated Delta factors can be found at http://molmod.ugent.be/deltacodesdft

In addition to this README.md, the following files should have been included with the Supplementary Material:

  • calcDelta.py
  • CIFs
  • eosfit.py
  • WIEN2k.txt
  • primCIFs
  • history.tar.gz

In order to be able to run calcDelta.py and eosfit.py, python and numpy are needed.

CONTENTS OF THE SUPPLEMENTARY MATERIAL

CIFs contains the CIF files of 71 elemental crystals in their ground state structure (except for sulfur and manganese, where a simpler structure that appears at higher temperatures or pressures is taken). For each of these structures, the CIF file presents the crystal at its calculated equilibrium (PBE functional). Spin-orbit coupling has not been incorporated in these calculations.

primCIFs contains the same 71 structures, but in their primitive unit cell. This allows faster calculations. Note that these structures are not the ones reported in the original article, however, so k-points need to be modified.

calcDelta.py is a python script, that calculates the Delta factor between two given codes. Results are saved in Delta-out.txt. The script is called by python calcDelta.py filename1 filename2, where filename1 and filename2 refer to files containing V0, B0, and B1 information from the codes under study for each elemental crystal. Other options allow to print output to the screen or to use previous Delta definitions. By typing python calcDelta.py --help a more extensive help can be displayed.

WIEN2k.txt is an input file for calcDelta.py. These data are used as a reference in the default case. The WIEN2k.txt file should therefore be in the work directory at all times in order for calcDelta.py to work.

eosfit.py is a python script, that calculates the Birch-Murnaghan equation of state for a single set of E(V) data points. It is called by python eosfit.py filename, where filename refers to a file containing the crystal volumes (in A^3/atom) and the corresponding energies (in eV/atom). By typing python eosfit.py --help a more extensive help can be printed on screen.

history.tar.gz is an archive that contains input data for all codes investigated so far, as well as experimental information.

CALCULATING THE DELTA FACTOR

Translate every CIF file into a structure input file of the code under investigation. Make similar input files for 94%, 96%, 98%, 102%, 104%, and 106% of the equilibrium volume. For each elemental crystal this yields seven structures.

Calculate the energy for each of the 71x7 input files. Include spin polarization for O, Cr and Mn (antiferromagnetic) and Fe, Co, and Ni (ferromagnetic). The antiferromagnetism in the oxygen crystal should take place between the O2 molecules. Make sure the energy has converged in function of the computational parameters. Force optimizations should not be employed, since the computation of Delta requires fixed cell geometries, both with respect to the cell shape and the internal coordinates. Put the energies next to the volumes in a separate text file for each element (expressed per atom) and use eosfit.py to determine the Birch-Murnaghan equation of state parameters. If the predicted equilibrium volume is smaller than 96% or larger than 104% of the WIEN2k equilibrium volume, calculate an additional number of volumes so again 7 volume points are obtained, approximately symmetrical around V0. This ensures that for the pressure derivative of the bulk modulus an accurate value is obtained.

Assemble all sets of Birch-Murnaghan parameters in one text file and put the corresponding element symbol in front of the data. Use calcDelta.py to determine the Delta factor of the two code under consideration.

More elaborate comparisons can be performed as well. A Linux-friendly output scheme has been provided, which allows to execute such analyses. To scale the elementwise Delta (from filename) to the difference with experiment, for example, type:

python calcDelta.py VASP-relaxed.txt exp.txt --stdout | grep -E -v "\#|np|-" > test.txt
python calcDelta.py filename WIEN2k.txt --stdout | grep -E -v "\#|np|-" | join test.txt - | grep -v "N/A" | awk '{print $1, $3/$2*100}' | sort -n -k 2

To compare the performance of the code from filename to that of VASP (fixed-geometry), type:

python calcDelta.py VASP.txt WIEN2k.txt --stdout | grep -E -v "\#|np|-" > test.txt
python calcDelta.py filename WIEN2k.txt --stdout | grep -E -v "\#|np|-" | join test.txt - | grep -v "N/A" | awk '{print $1, $3/$2}' | sort -n -k 2

FURTHER INFORMATION

K. Lejaeghere, V. Van Speybroeck, G. Van Oost, and S. Cottenier: "Error estimates for solid-state density-functional theory predictions: an overview by means of the ground-state elemental crystals", Crit. Rev. Solid State (2014). (open access, also available at http://arxiv.org/abs/1204.2733)

Corresponding author: [email protected]

deltacodesdft's People

Contributors

wpoely86 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.