Example #1
0
    def test_copy_from_dir(self):
        out_name = 'FW_copy_from_dir.yaml'
        fw = VaspFirework(self.input, config_file=self.config_file)
        fw.copy_files_from_previous('WAVECAR', 'WAVEDER', mode='copy', 
                                    dir='../../test_files/VASP_INTERFACES_TEST_FILES', 
                                    ignore_errors=True)
        fw_dic = fw.Firework.as_dict()
        for i in ['created_on', 'updated_on', 'fw_id']:
            del fw_dic[i]
        
        gdic = {'name': 'vaspfw',
            'spec': {'_tasks': [{'_fw_name': '{{pymatgen.io.vasp.interfaces.WriteVaspInputTask}}',
                'custom_params': {'user_kpts_settings': {'kpts': [6, 6, 6],
                    'kpts_shift': [0, 0, 0],
                    'kpts_style': 'Gamma'}},
                'input_set_params': {'user_incar_settings': {'ALGO': 'Normal',
                    'CSHIFT': 0.1,
                    'LOPTICS': '.TRUE.',
                    'NEDOS': 4096,
                    'SIGMA': 0.01}},
                'structure': 'SiC_0.cif',
                'vasp_input_set': 'MinimalVaspInputSet'},
            {'_fw_name': '{{pymatgen.io.vasp.interfaces.VaspTransferTask}}',
                'dir': '../../test_files/VASP_INTERFACES_TEST_FILES',
                'files': ['WAVECAR', 'WAVEDER'],
                'ignore_errors': True,
                'mode': 'copy'},
            {'_fw_name': '{{pymatgen.io.vasp.interfaces.RunCustodianTask}}',
                'handler_params': {},
                'handlers': []}]}}

        self.assertDictEqual(fw_dic, gdic, msg=None)
Example #2
0
    def test_add_task_misc_task(self):
        fw = VaspFirework(self.input, config_file=self.config_file)
        fw.add_task(self.misc_task)
        fw_dic = fw.Firework.as_dict()
        for i in ['created_on', 'updated_on', 'fw_id']:
            del fw_dic[i]

        gdic = {'name': 'vaspfw',
            'spec': {'_tasks': [{'_fw_name': '{{pymatgen.io.vasp.interfaces.WriteVaspInputTask}}',
                'custom_params': {'user_kpts_settings': {'kpts': [6, 6, 6],
                    'kpts_shift': [0, 0, 0],
                    'kpts_style': 'Gamma'}},
                'input_set_params': {'user_incar_settings': {'ALGO': 'Normal',
                    'CSHIFT': 0.1,
                    'LOPTICS': '.TRUE.',
                    'NEDOS': 4096,
                    'SIGMA': 0.01}},
                'structure': 'SiC_0.cif',
                'vasp_input_set': 'MinimalVaspInputSet'},
            {'_fw_name': '{{pymatgen.io.vasp.interfaces.RunCustodianTask}}',
                'handler_params': {},
                'handlers': []},
            {'_fw_name': 'ScriptTask',
                'script': ["echo 'Hello World!'"],
                'use_shell': True}]}}

        self.assertDictEqual(fw_dic, gdic, msg=None)
Example #3
0
material_file_name="{}_tddft.yaml".format(pf)
mname="{}_tddft".format(pf)
print "creating VASP jobs specifications in ",material_file_name


# and make it dependent on the number of cores
ncores=512
kpar_dft=32
kpar_chi=32
ncore_per_kpoint_dft=ncores/kpar_dft
ncore_per_kpoint_chi=ncores/kpar_chi
remainder=ncore_per_kpoint_dft%ncore_per_kpoint_chi

fw1_task1=ScriptTask.from_str("pwd")
fw1=VaspFirework(fw1_task1,name=mname)

# standard DFT first
vasp1=VaspInputInterface(s)
nelect=vasp1.get_nelect()
nbands=nelect*3/2
remainder=nbands%ncore_per_kpoint_dft
add=ncore_per_kpoint_dft-remainder
nbands=int(nbands+add)
vasp1.ALGO='Normal'
vasp1.KPAR=kpar_dft
vasp1.NBANDS=nbands
vasp1.NEDOS=4096
vasp1.kpts_style='Gamma'
vasp1.kpts=[6,6,6]
vasp1.kpts_shift=[0,0,0]
Example #4
0
import sys
import string
import json

import inspect

from pymatgen import Structure
from fireworks import Firework, Workflow, LaunchPad
from pymatgen.io.vasp.interfaces import VaspInputInterface, VaspFirework, VaspWorkflow

# get structure from Crystallographic Information File (CIF)
s = Structure.from_file('./mp-33088_Cr2FeO4.cif')

input=VaspInputInterface(s)
input.NEDOS=2000 # override default or add INCAR parameter

# Dump VASP Input into current directory for inspection
input.write_input()

# Complete definition of Firework Task(s) and add to
# Firework
task=VaspFirework(input)

# Save specification to yaml file for later inspection
# or manual add to launchpad with lpad script
task.to_file("simple_task.yaml")

# Adds single Firework to launchpad database
task.add_fw_to_launchpad()