I would like to do start doing some basic calculations using DFT. I am interested in solid state physics of strongly correlated materials in 3D (for example high temperature superconductors) or 2D (for example, graphene, or transition metal dichalcogenide monolayers). I prefer free software (ideally, open source, but at least free of charge) which is easy to use. I am interested in DFT as a tool to calculate properties of materials, and I am not interested in learning the details of DFT (at least not now) and also I am not interested in software developing.

I have a background in solid state physics, but I am a complete beginner of DFT. I was thinking about ABINIT, JDFTx, or Quantum Espresso, or any other free/easy to use package. Any suggestion?

Cross post from physics stack exchange.

  • 1
    $\begingroup$ Sorry, my wording was inexact. I wanted to say open source or at least free of charge $\endgroup$
    – sintetico
    Commented Sep 15, 2020 at 17:57
  • 1
    $\begingroup$ +1. Welcome to our site and thank you for contributing your question here!!! We hope to see much more of you in the future !!! $\endgroup$ Commented Sep 15, 2020 at 18:02
  • $\begingroup$ What type of previous knowledge you have (programming, Linux, etc.)? Also, what computational resources? $\endgroup$
    – Camps
    Commented Sep 15, 2020 at 18:08
  • 1
    $\begingroup$ @Camps I have a rather powerful MacBook Pro and a iMac Pro (with macports). I also have access to a a bigger super computer but I would prefer starting and learning on my Macs. I am a former Fedora and Debian user, I am familiar with Mathematica and I can understand python, but I am not a programmer. $\endgroup$
    – sintetico
    Commented Sep 15, 2020 at 18:25
  • 2
    $\begingroup$ +1 Welcome! Interesting question indeed -- however, note that "strongly correlated materials" is one of the areas in which DFT often fails to give accurate results, and a different method (QMC, DMFT) may be more appropriate. $\endgroup$
    – ProfM
    Commented Sep 15, 2020 at 20:30

5 Answers 5



As I understand, OP's requirements are

  1. Do basic calculations using DFT
  2. Prefer open source software which is easy to use
  3. Interested in DFT only as a tool to calculate properties of materials
  4. Not interested in learning details of DFT/software developing

Since the OP is already aware of Quantum ESPRESSO and is interested only in calculating basic properties of materials using an opensource easy to use software I will introduce a new GUI for Quantum ESPRESSO named QuantumVITAS (Quantum Visualization Interacting Toolkit for Ab-initio Simulations). It comes bundled with Quantum Espresso engine and pseudopotential libraries and works out of the box in Windows, Linux and Mac OS.

It is capable of doing

  • Magnetism and spin orbital coupling (SOC)

  • DFT+U

  • Hybrid functionals

  • Van der Waals corrections

  • Structural optimization/relaxation (OPT)

  • Density of states (DOS)

  • Band structure (including spin polarized and SOC)

  • Molecular dynamics (Born–Oppenheimer MD)

  • Time-dependent density-functional theory (TDDFT)

  • Phonon (gamma point, DOS, dispersion, raman, dielectric constant)

  • NEB (Nudged Elastic Band) for transition energy barrier calculation

  • Projection to atomic orbitals (to each atom or to each element, also in the spin polarized case and SOC)

enter image description here

WARNING : The tool should not be used as a black box and be aware about pitfalls awaiting you!.

  • $\begingroup$ it is a pity that it does not run on Mac, apparently $\endgroup$
    – sintetico
    Commented Sep 16, 2020 at 17:41
  • $\begingroup$ Its a brand new software - about a month old!. Technically a pre-release version. According to the author, Mac support is in the pipe line. You can ask here for more details. $\endgroup$
    – Thomas
    Commented Sep 16, 2020 at 17:47
  • 1
    $\begingroup$ Oh I did not notice it is brand new! I got confused because in the website it is mentioned that it is cross-platform, and that MacOS is supported, but there is no Mac version in the download page. I notice that it is written in java so it should be not difficult to port it to macOS. $\endgroup$
    – sintetico
    Commented Sep 17, 2020 at 8:42
  • 1
    $\begingroup$ Quantum Vitas came out just around the middle of this year. Before this the only QE GUI were PWGUI and BURAI. I haven't tried Vitas yet but I have been following the updates posted by the developer (his youtube handle is Quantum Nerd). While on the topic of learning DFT, I think one of the most excellent personal video tutorials on QE that you can find are his. Here is the link to his channel: youtube.com/channel/UCgQPek4ZSo_yL7wEjIhxvfA. He also posts tutorials on using Quantum Vitas. $\endgroup$
    – jboy
    Commented Sep 20, 2020 at 7:18


I strongly recommend SIESTA. From the site:

SIESTA is both a method and its computer program implementation, to perform efficient electronic structure calculations and ab initio molecular dynamics simulations of molecules and solids. SIESTA's efficiency stems from the use of a basis set of strictly-localized atomic orbitals. A very important feature of the code is that its accuracy and cost can be tuned in a wide range, from quick exploratory calculations to highly accurate simulations matching the quality of other approaches, such as plane-wave methods.

As it uses numerical orbitals, the demand for memory is lower than the codes you mention. Some of the properties it can calculate:

  • Total and partial energies.
  • Atomic forces.
  • Stress tensor.
  • Electric dipole moment.
  • Atomic, orbital and bond populations (Mulliken).
  • Electron density.
  • Geometry relaxation, fixed or variable cell.
  • Constant-temperature molecular dynamics (Nose thermostat).
  • Variable cell dynamics (Parrinello-Rahman).
  • Spin polarized calculations (collinear or not).
  • k-sampling of the Brillouin zone.
  • Local and orbital-projected density of states.
  • COOP and COHP curves for chemical bonding analysis.
  • Dielectric polarization.
  • Vibrations (phonons).
  • Band structure.

The code can be downloaded from here. The page has links to the manual, tutorials and mailing list.

One big feature it has is the TranSIESTA module that permits doing transport calculation using several electrodes.

As an example, here is an input file. It is free format and designed to use keywords for the task you want to complete:

        # ---------------------------------------------------------------------------
        # Name and Label
        # ---------------------------------------------------------------------------
        SystemName          BN-Cd-p0
        SystemLabel         BN-Cd-p0
        # ---------------------------------------------------------------------------
        # Lattice
        # ---------------------------------------------------------------------------
        LatticeConstant             12.787740 Ang
        %block LatticeVectors
             1.394587      0.000000      0.000000
             0.000000      1.394587      0.000000
             0.000000      0.000000      1.000000
        %endblock LatticeVectors
        # ---------------------------------------------------------------------------
        # Species and Atoms
        # ---------------------------------------------------------------------------
        NumberOfSpecies        3
        NumberOfAtoms        121
        %block ChemicalSpeciesLabel
          1   5  B
          2   7  N
          3  48  Cd
        %endblock ChemicalSpeciesLabel
        # ---------------------------------------------------------------------------
        # Atomic Coordinates
        # ---------------------------------------------------------------------------
        AtomicCoordinatesFormat Ang
        %block AtomicCoordinatesAndAtomicSpecies
           12.92631935    8.92625145    2.84349444   1       1  B
           12.92618164    8.92582742    7.10464184   1       2  B
           12.93639581    8.92650310   11.36723889   1       3  B
           12.20659949    6.53582303    9.93994222   2     117  N
           12.73788419    7.68704422    0.71272677   1     118  B
           12.72084758    7.68856837    4.97486209   1     119  B
           12.73073524    7.68655704    9.23576392   1     120  B
            8.91680374    2.17946810    5.76712116   3     121  Cd
        %endblock AtomicCoordinatesAndAtomicSpecies
        PAO.BasisSize     DZP
        MD.TypeOfRun      CG
        MD.NumCGsteps     0
        MinSCFIterations  3
        MaxSCFIterations  1000
        SpinPolarized     .true.
        MeshCutoff        500 Ry
        DM.MixingWeight   0.25
        DM.NumberPulay    1
        DM.Tolerance      0.001
        XC.functional     GGA
        XC.authors        PBE
        SolutionMethod diagon
        XML.Write .true.
        # ---------------------------------------------------------------------------
        XML.Write .true.
        WriteEigenvalues       .true.
        WriteKbands            .true.
        WriteBands             .true.
        WriteWaveFunctions     .true.
        SaveRho                       .true.
        SaveElectrostaticPotential    .true.
        UseSaveData            .true.                
        %block kgrid_Monkhorst_Pack
           1   0   0    0.0
           0   1   0    0.0
           0   0   20   0.0
         %endblock kgrid_Monkhorst_Pack
         %block BandLines
          1  0.00 0.00 0.00   \Gamma  #Starting from gamma point
          200  0.00 0.00 1.00  Z       #200 points from gamma to Z.
          %endblock BandLines
        %block LocalDensityOfStates
            -20.00 0.00 eV
        %endblock LocalDensityOfStates
        %block ProjectedDensityOfStates
            -7.0 1.0 0.05 1000 eV
        %endblock ProjectedDensityOfStates
        # Charge calculation            #
        WriteMullikenPop       1
        WriteDenchar           .true.
        WriteHirshfeldPop      .true.
        WriteVoronoiPop        .true.
        SaveTotalCharge        .true.
        SaveBaderCharge        .true.
  • 1
    $\begingroup$ the possibility to do transport calculations is very interesting $\endgroup$
    – sintetico
    Commented Sep 15, 2020 at 19:50
  • $\begingroup$ @sintetico, there will be a webseminar about SIESTA: link. $\endgroup$
    – Camps
    Commented Sep 16, 2020 at 20:33


I would recommend CASTEP. It is not open source but does have a cost-free academic license option. It is very easy to use and beginner-friendly, with sensible "default" parameters and has a built-in help system. The on-the-fly pseudopotential generation system makes calculations very easy to set up and avoids some common pitfalls. MPI parallelisation is also automatic and efficient.

You can not use it for commercially though, as it is sold as part of the Materials Studio.

  • $\begingroup$ A small clarification: you do get the source code with the cost-free non-commercial license, so although it is not technically "Open Source" you can see what it's really doing (and change it, if you so desire). $\endgroup$ Commented Dec 13, 2021 at 16:06


  • Website: https://www.questaal.org/about/questaal/

  • Description: Questaal is the most advanced open-source DFT package to study strong correlation physics in 3D materials. In detail, Questaal implements a QSGW+DMFT module to that.

When localized electronic orbitals ($d-$ or $f-$ type) participate in the states near the Fermi level, the effect of electronic correlation can not be included as a small perturbation (RPA) and more accurate methods have to be invoked. The Questaal code has been interfaced with the Continuous-Time Quantum Monte Carlo solver developed by K. Haule and coworkers. This couples the QSGW description of the lattice with state-of-the-art Dynamical Mean Field Theory approaches. This code requires that Haule’s CTQMC be installed. The interface to that code is [lmfdmft].



I think you should choose a code which has a lot of citations, implying that the results obtained from that code are reliable and reasonable and it can deal with various physical problems. Among DFT codes, Quantum ESPRESSO has more than 12k citations, and it could be good choice.

  • 2
    $\begingroup$ This is not really a good justification for using a code. $\endgroup$ Commented Sep 20, 2020 at 15:20
  • $\begingroup$ @TristanMaxson. Can you explain why? $\endgroup$
    – Binh Thien
    Commented Sep 20, 2020 at 15:22
  • $\begingroup$ Quantum ESPRESSO is a good choice if you consider its big community and a very active forum. Hence, basic questions have already been answered by the community. and reading the forums, together with the tutorials is a very good starting point. $\endgroup$ Commented Sep 21, 2020 at 18:58
  • $\begingroup$ @AnibalBezerra, I agree that Quantum ESPRESSO users formed a big community. But the reasons why the big community can be formed should be explained by the code's features. $\endgroup$
    – Binh Thien
    Commented Sep 22, 2020 at 13:04

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .