I'm trying to simulate a supercell that contains thousands of atoms with the DFT method, but it seems VASP couldn't handle such a large system, its parallel efficiency is relatively low, when I try to run such a large system, it is gonna take too much time.
Is there any mainstream DFT code that could handle such a large system with a good parallel efficiency?

  • 2
    $\begingroup$ Have you tried cp2k or QE? Do you actually have the computational capacity for such a calculation? $\endgroup$
    – Greg
    May 12 at 19:28
  • 1
    $\begingroup$ SIESTA !!! Should I make a complete answer to explain its advantages ? $\endgroup$
    – Elie H
    May 12 at 19:37
  • 3
    $\begingroup$ 1. How much computational resources do you have available? 2. What quantity are you interested in? 3. Is there something special about the system besides the large supercell? 4. How many thousands? 2.000 is very different from 8.000. Depending on the code that could nearly imply a factor 100 in the needed computing resources. $\endgroup$ May 12 at 19:39
  • 1
    $\begingroup$ @Jack - could you answer the other questions Gregor asks, they are important, and add the details to the question, not as a comment - what you want to calculate can affect you choice (e.g. MD is much harder than a single point energy), as will exactly what kind of chemical system you are studying. $\endgroup$
    – Ian Bush
    May 13 at 6:44
  • 1
    $\begingroup$ FHI-aims is also O(N) and can do this. $\endgroup$
    – DLV
    May 13 at 7:01

4 Answers 4


The SIESTA method and its implementation offer an efficient and flexible simulation paradigm based on the use of strictly localized basis sets, this allows the implementation of reduced scaling algorithms, and its accuracy and cost can be tuned in a wide range. SIESTA’s baseline efficiency can be scaled up to ever-larger systems by parallelization. Both distributed (MPI) and shared-memory (OpenMP) parallelization options are implemented in the code.

  1. SIESTA has excellent performance for finite systems such as slabs, surfaces, clusters, nanotubes and molecules.
  2. SIESTA can easily tackle computationally demanding systems (>10000 atoms), which are out of the reach of plane-wave codes.
  3. SIESTA has efficient parallelisation implemented over orbitals or over k-points.

To Download and start working with SIESTA :


To learn more about SIESTA


I also suggest :


To get some basic introductory videos about the code, its installation and compilation, and some utilities as well.


ONETEP https://www.onetep.org/ is a linear-scaling DFT code suitable and efficient for such large simulations. The main purpose of it, in the first place, was to lower the computational cost of conventional DFT codes (e.g. CASTEP and VASP) which scale as the cube of the system size N.

  • $\begingroup$ Elevating the computational cost sounds undesirable :) $\endgroup$
    – Anyon
    May 15 at 19:37
  • $\begingroup$ @Anyon thanks, I did change the word. $\endgroup$
    – Sha
    May 15 at 20:14

To make a recommendation more details are really needed, as noted in the comments. However CRYSTAL (full disclosure - I am an author of the code) has been used for calculations on over a thousand atoms. For instance https://doi.org/10.1021/acs.jpcc.9b06533 discusses calculations involving structural optimizations of around 3,000 atoms, the calculations being run on around 1,000 cores.


Well, maybe you can first specify the calculations you would like to do, given it maybe relaxation/MD; I suggest you start with cheap method like Tight binding DFT with quite efficient parametric as implanted in https://xtb-docs.readthedocs.io/en/latest/contents.html or DFTB+ and other flagship codes then apply fancy implantation or functional on the outcome

  • 3
    $\begingroup$ Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center. $\endgroup$
    – Community Bot
    May 14 at 1:05
  • $\begingroup$ An example of the use of tight binding can be found in this comment $\endgroup$
    – uhoh
    May 14 at 22:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.