Elastic workflow - specify POTCAR and k-point scheme

First off, I’m really grateful and impressed for all the work put into Atomate.

I know there are some changes coming through soon to restructure the elastic workflows, but I had a couple questions in the meantime. In the elastic workflow (vasp/workflows/base/elastic.py), I’m a little lost on how I can set specific parameters for the run.

  1. It is convenient for the workflow to pick pseudo-potentials for you, but sometimes I need to specify what potential I want to be used. I see that the elastic.py module calls the get_wf_deformations() from deformations.py, which in turn uses TransmuterFW to generate the individual runs. There currently doesn’t appear to be any way to specify the potential used. Is there a way to take the workflow generated and modify the potential it will use? (Maybe similar to how powerups can be added or add_modify_incar?)
  2. Is there a way to specify the k-mesh scheme used? There are methods to specify density and a few other details, but how can I deliberately choose either Monkhorst or Gamma methods?
    Thank you,

Isaac

Issac,

Happy to see that you’re interested.

I have written up a page in the documentation that I think addresses your questions. It has not been merged into the repo yet (and is not live on the website yet). But you can look at the plain reStructuredText at the pull request right now or you can wait for it to go live at the website, which will show up at this address.

I can update this when it’s live so you get pinged.

Brandon

Hi Brandon

FYI - I pulled and released your docs

···

On Monday, June 5, 2017 at 6:34:30 PM UTC-7, Brandon B wrote:

Issac,

Happy to see that you’re interested.

I have written up a page in the documentation that I think addresses your questions. It has not been merged into the repo yet (and is not live on the website yet). But you can look at the plain reStructuredText at the pull request right now or you can wait for it to go live at the website, which will show up at this address.

I can update this when it’s live so you get pinged.

Brandon

Thanks! This is very useful.

Just to make sure I’m not missing something here, did you intentionally call get_optimize_wf(struct) without the my_custom_input_set each time?

Cheers,
Isaac

···

On Monday, June 5, 2017 at 6:34:30 PM UTC-7, Brandon B wrote:

Issac,

Happy to see that you’re interested.

I have written up a page in the documentation that I think addresses your questions. It has not been merged into the repo yet (and is not live on the website yet). But you can look at the plain reStructuredText at the pull request right now or you can wait for it to go live at the website, which will show up at this address.

I can update this when it’s live so you get pinged.

Brandon

Thanks for catching that. You’re right, it should be passed into the function.

Brandon

The changes are pushed to the website with the changes that you pointed out.

Thanks again.

My understanding is that, in the case of the get_wf_deformations(), I need to redefine this workflow in my own code and modify it to accept an input set?

The strange part to me is that it takes an argument vasp_input_set, but as far as I can tell this should be a MPRelaxSet and only applies to the optional relax step in the workflow. The MPStaticSet does not get set from this I believe.

-Isaac

···

On Tuesday, June 6, 2017 at 2:07:37 PM UTC-7, Brandon B wrote:

The changes are pushed to the website with the changes that you pointed out.

Your understanding is correct. I agree that it’s not very useful to only be able to change one part of the workflow in cases like yours where you need some settings to be consistent across calculations.

We are still finding better ways to do this ourselves. Right now the plan is to remove the optional relaxation from that workflow. This would mean that you set up an optimization workflow with your custom input set and then append the deformations workflow that also has your custom input set.

But for now, yes, you can just copy the workflow to an external script and modify it as you like.

Hey Isaac,

Just FYI, the refactor in progress simplifies the keyword arguments a bit, uses the VASP input set properly, and should allow for more seamless customization as you mention here. I’ve resolved the major issues in the TOEC benchmarking so I should be merging in the next couple of weeks, contingent on when pymatgen has a new release.

-Joey

···

On Tuesday, June 6, 2017 at 6:45:31 PM UTC-4, Brandon B wrote:

Your understanding is correct. I agree that it’s not very useful to only be able to change one part of the workflow in cases like yours where you need some settings to be consistent across calculations.

We are still finding better ways to do this ourselves. Right now the plan is to remove the optional relaxation from that workflow. This would mean that you set up an optimization workflow with your custom input set and then append the deformations workflow that also has your custom input set.

But for now, yes, you can just copy the workflow to an external script and modify it as you like.