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)
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)
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]
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()