本文整理汇总了Python中pymatgen.io.vasp.Kpoints.automatic_density方法的典型用法代码示例。如果您正苦于以下问题:Python Kpoints.automatic_density方法的具体用法?Python Kpoints.automatic_density怎么用?Python Kpoints.automatic_density使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pymatgen.io.vasp.Kpoints
的用法示例。
在下文中一共展示了Kpoints.automatic_density方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: vac_antisite_def_struct_gen
# 需要导入模块: from pymatgen.io.vasp import Kpoints [as 别名]
# 或者: from pymatgen.io.vasp.Kpoints import automatic_density [as 别名]
def vac_antisite_def_struct_gen(args):
mpid = args.mpid
mapi_key = args.mapi_key
cellmax = args.cellmax
if not mpid:
print ("============\nERROR: Provide an mpid\n============")
return
if not mapi_key:
with MPRester() as mp:
struct = mp.get_structure_by_material_id(mpid)
else:
with MPRester(mapi_key) as mp:
struct = mp.get_structure_by_material_id(mpid)
prim_struct_sites = len(struct.sites)
struct = SpacegroupAnalyzer(struct).get_conventional_standard_structure()
conv_struct_sites = len(struct.sites)
conv_prim_rat = int(conv_struct_sites/prim_struct_sites)
sc_scale = get_sc_scale(struct,cellmax)
mpvis = MPRelaxSet(struct, user_incar_settings={"LDAU": False})
# Begin defaults: All default settings.
blk_vasp_incar_param = {'IBRION':-1,'EDIFF':1e-4,'EDIFFG':0.001,'NSW':0,}
def_vasp_incar_param = {'ISIF':2,'NELM':99,'IBRION':2,'EDIFF':1e-6,
'EDIFFG':0.001,'NSW':40,}
kpoint_den = 6000
# End defaults
ptcr_flag = True
try:
potcar = mpvis.potcar
except:
print ("VASP POTCAR folder not detected.\n" \
"Only INCAR, POSCAR, KPOINTS are generated.\n" \
"If you have VASP installed on this system, \n" \
"refer to pymatgen documentation for configuring the settings.")
ptcr_flag = False
vac = Vacancy(struct, {}, {})
scs = vac.make_supercells_with_defects(sc_scale)
site_no = scs[0].num_sites
if site_no > cellmax:
max_sc_dim = max(sc_scale)
i = sc_scale.index(max_sc_dim)
sc_scale[i] -= 1
scs = vac.make_supercells_with_defects(sc_scale)
for i in range(len(scs)):
sc = scs[i]
mpvis = MPRelaxSet(sc, user_incar_settings={"LDAU": False})
poscar = mpvis.poscar
kpoints = Kpoints.automatic_density(sc,kpoint_den)
incar = mpvis.incar
if ptcr_flag:
potcar = mpvis.potcar
interdir = mpid
if not i:
fin_dir = os.path.join(interdir,'bulk')
try:
os.makedirs(fin_dir)
except:
pass
incar.update(blk_vasp_incar_param)
incar.write_file(os.path.join(fin_dir,'INCAR'))
poscar.write_file(os.path.join(fin_dir,'POSCAR'))
if ptcr_flag:
potcar.write_file(os.path.join(fin_dir,'POTCAR'))
kpoints.write_file(os.path.join(fin_dir,'KPOINTS'))
else:
blk_str_sites = set(scs[0].sites)
vac_str_sites = set(sc.sites)
vac_sites = blk_str_sites - vac_str_sites
vac_site = list(vac_sites)[0]
site_mult = int(vac.get_defectsite_multiplicity(i-1)/conv_prim_rat)
vac_site_specie = vac_site.specie
vac_symbol = vac_site.specie.symbol
vac_dir ='vacancy_{}_mult-{}_sitespecie-{}'.format(str(i),
site_mult, vac_symbol)
fin_dir = os.path.join(interdir,vac_dir)
try:
os.makedirs(fin_dir)
except:
pass
incar.update(def_vasp_incar_param)
poscar.write_file(os.path.join(fin_dir,'POSCAR'))
incar.write_file(os.path.join(fin_dir,'INCAR'))
if ptcr_flag:
potcar.write_file(os.path.join(fin_dir,'POTCAR'))
kpoints.write_file(os.path.join(fin_dir,'KPOINTS'))
# Antisite generation at all vacancy sites
struct_species = scs[0].types_of_specie
for specie in set(struct_species)-set([vac_site_specie]):
subspecie_symbol = specie.symbol
#.........这里部分代码省略.........