Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nscf-uniform calculation and data query in MgO band structure tutorial #283

Closed
zezhong-zhang opened this issue Apr 25, 2019 · 8 comments
Closed

Comments

@zezhong-zhang
Copy link

zezhong-zhang commented Apr 25, 2019

I was following the MgO band structure tutorial. The structure optimisation, statistic calculation and non-self-consistent-line calculations are fine. But for nscf-uniform calculation, vasp fails namelessly as shown in the fig and custodian cannot handle. As suggested by Steven on the google group, it may due to the kpoints generated not matching well with the tetrahedron method ISMEAR=-5.

# Create a bandstructure from the workflow from the atomate presets
import numpy as np
from pymatgen import Structure
from fireworks import LaunchPad
from atomate.vasp.workflows.presets.core import wf_bandstructure
from atomate.vasp.powerups import add_modify_incar

# load structure from file
struct = Structure.from_file('POSCAR')  # note: many file formats supported, see function docs

# create the Workflow
wf = wf_bandstructure(struct)

# finally, instatiate the LaunchPad and add the workflow to it
lpad = LaunchPad.auto_load() # loads this based on the FireWorks configuration
lpad.add_wf(wf)

Warning & Error Message
WARNING atomate.vasp.drones Transformations file does not exist.
Traceback (most recent call last):
File "/home/zzhang/atomate/atomate_env/lib/python3.6/site-packages/custodian/custodian.py", line 320, in run
self._run_job(job_n, job)
File "/home/zzhang/atomate/atomate_env/lib/python3.6/site-packages/custodian/custodian.py", line 428, in _run_job
raise CustodianError(s, True, v)
custodian.custodian.CustodianError: (CustodianError(...), 'Validation failed: <custodian.vasp.validators.VasprunXMLValidator object at 0x2aaabc54d2b0>')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/zzhang/atomate/atomate_env/lib/python3.6/site-packages/fireworks/core/rocket.py", line 262, in run
m_action = t.run_task(my_spec)
File "/home/zzhang/atomate/atomate_env/lib/python3.6/site-packages/atomate/vasp/firetasks/run_calc.py", line 205, in run_task
c.run()
File "/home/zzhang/atomate/atomate_env/lib/python3.6/site-packages/custodian/custodian.py", line 330, in run
.format(self.total_errors, ex))
RuntimeError: 0 errors reached: (CustodianError(...), 'Validation failed: <custodian.vasp.validators.VasprunXMLValidator object at 0x2aaabc54d2b0>'). Exited...
/home/zzhang/atomate/atomate_env/lib/python3.6/site-packages/pymatgen/symmetry/bandstructure.py:62: UserWarning: The input structure does not match the expected standard primitive! The path can be incorrect. Use at your own risk.
warnings.warn("The input structure does not match the expected standard primitive! "

Screenshot 2019-04-24 19 12 20

Screenshot 2019-04-24 19 11 36

@utf
Copy link
Member

utf commented May 1, 2019

Hi @zezhong-zhang, thanks for this very detailed issue.

You are correct that this is due to use of ISMEAR = -5 for a k-point mesh with no tetrahedron information.

A recent update to the MPNonSCFSet class changed the default smearing type to the tetrahedron method however the KPOINTS file is still written without the tetrahedron information.

I am looking into a fix for this now.

@utf
Copy link
Member

utf commented May 1, 2019

The underlying issue is referenced in materialsproject/pymatgen#1453.

@zezhong-zhang
Copy link
Author

Hi @utf

Many thanks for bringing this issue into attention. I have checked the discussion, looking forward to the updated MPNonSCFSet.

I think the data query should be a separate issue that I will edit soon.

@zezhong-zhang
Copy link
Author

Hi @utf,

I have another tested run after the update and the nscf-uniform calculation can now finish. However, the plotted DOS is different from the example, see as attached, while the bandstructure plots properly.

download-1

@zezhong-zhang
Copy link
Author

Here is the DOS from the tutorial for comparison.

@bocklund
Copy link
Contributor

@zezhong-zhang Can you remove the ylim=(0,0.1) in the following line of code from the analysis script you got from the tutorial?

dos_plotter.get_plot(xlim=(-10, 10), ylim=(0, 0.1))

@utf
Copy link
Member

utf commented May 10, 2019

Hi @zezhong-zhang, we have updated the default density of states smearing parameter (ISMEAR) in the latest update of pymatgen. This accounts for the difference you see in the shape of the density of states.

As you can see, the new density of states shows much more detail than the previous version, however, I am surprised that the intensity has increased so much.

I will:

  • Investigate to check that the increased density of states intensity is physical.
  • Update the example so that the example DOS matches the new output of automate.

@zezhong-zhang
Copy link
Author

zezhong-zhang commented May 10, 2019

Hi @bocklund and @utf, here are the plots without ylimit. I also add the calcualted Fermi level and bandgap. I am really surprised by the significant difference.

Fermi energy: 3.93249361 eV
Bandgap: 4.5851999999999995 eV

Screenshot 2019-05-10 21 04 47

Without xlimit.
Screenshot 2019-05-10 21 10 14

The peaks are vastly different from the Materials Project in the range between (-4 eV, 8eV)
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants