mirror of https://github.com/phonopy/phono3py.git
Add ZnTe example
This commit is contained in:
parent
855d9a34cd
commit
6e38395615
|
@ -0,0 +1,3 @@
|
|||
Zincblende ZnTe
|
||||
Forces and NAC params were calculated using VASP code.
|
||||
PBEsol, 500eV PW-cutoff, 2x2x2 supercell and 2x2x2 off-Gamma k-point mesh for supercells.
|
|
@ -0,0 +1,119 @@
|
|||
import copy
|
||||
from phonopy.interface.vasp import read_vasp_from_strings
|
||||
from aiida.manage.configuration import load_profile
|
||||
from aiida.orm import Int, Float, Bool, Str, load_node, QueryBuilder
|
||||
from aiida.plugins import DataFactory, WorkflowFactory
|
||||
from aiida.engine import run, submit
|
||||
from aiida_phonopy.common.utils import phonopy_atoms_to_structure
|
||||
|
||||
load_profile()
|
||||
|
||||
Dict = DataFactory('dict')
|
||||
|
||||
|
||||
def get_settings(cutoff_energy, is_nac=False):
|
||||
unitcell_str = """ Zn Te
|
||||
1.0
|
||||
6.0653118499999996 0.0000000000000000 0.0000000000000000
|
||||
0.0000000000000000 6.0653118499999996 0.0000000000000000
|
||||
0.0000000000000000 0.0000000000000000 6.0653118499999996
|
||||
Zn Te
|
||||
4 4
|
||||
Direct
|
||||
0.0000000000000000 0.0000000000000000 0.0000000000000000
|
||||
0.0000000000000000 0.5000000000000000 0.5000000000000000
|
||||
0.5000000000000000 0.0000000000000000 0.5000000000000000
|
||||
0.5000000000000000 0.5000000000000000 0.0000000000000000
|
||||
0.2500000000000000 0.2500000000000000 0.7500000000000000
|
||||
0.2500000000000000 0.7500000000000000 0.2500000000000000
|
||||
0.7500000000000000 0.2500000000000000 0.2500000000000000
|
||||
0.7500000000000000 0.7500000000000000 0.7500000000000000"""
|
||||
|
||||
cell = read_vasp_from_strings(unitcell_str)
|
||||
structure = phonopy_atoms_to_structure(cell)
|
||||
|
||||
base_incar_dict = {
|
||||
'PREC': 'Accurate',
|
||||
'IBRION': -1,
|
||||
'EDIFF': 1e-8,
|
||||
'NELMIN': 5,
|
||||
'NELM': 100,
|
||||
'ENCUT': cutoff_energy,
|
||||
'IALGO': 38,
|
||||
'ISMEAR': 0,
|
||||
'SIGMA': 0.01,
|
||||
'GGA' : 'PS',
|
||||
'LREAL': False,
|
||||
'lcharg': False,
|
||||
'lwave': False,
|
||||
}
|
||||
|
||||
code_string = 'vasp544mpi@nancy'
|
||||
resources = {'parallel_env': 'mpi*', 'tot_num_mpiprocs': 24}
|
||||
|
||||
base_config = {'code_string': code_string,
|
||||
'potential_family': 'PBE.54',
|
||||
'potential_mapping': {'Zn': 'Zn', 'Te': 'Te'},
|
||||
'options': {'resources': resources,
|
||||
'max_wallclock_seconds': 3600 * 10}}
|
||||
base_parser_settings = {'add_energies': True,
|
||||
'add_forces': True,
|
||||
'add_stress': True}
|
||||
forces_config = base_config.copy()
|
||||
kpoints_mesh = [2, 2, 2]
|
||||
forces_config.update({'kpoints_mesh': kpoints_mesh,
|
||||
'kpoints_offset': [0.5, 0.5, 0.5],
|
||||
'parser_settings': base_parser_settings,
|
||||
'parameters': {'incar': base_incar_dict.copy()}})
|
||||
forces_config['parameters']['incar']['NPAR'] = 4
|
||||
nac_config = {'code_string': code_string,
|
||||
'potential_family': 'PBE.54',
|
||||
'potential_mapping': {'Zn': 'Zn', 'Te': 'Te'},
|
||||
'options': {'resources': resources,
|
||||
'max_wallclock_seconds': 3600 * 10}}
|
||||
nac_parser_settings = {'add_born_charges': True,
|
||||
'add_dielectrics': True}
|
||||
nac_parser_settings.update(base_parser_settings)
|
||||
nac_incar_dict = {'lepsilon': True}
|
||||
nac_incar_dict.update(base_incar_dict.copy())
|
||||
nac_config.update({'kpoints_mesh': [8, 8, 8],
|
||||
'kpoints_offset': [0.5, 0.5, 0.5],
|
||||
'parser_settings': nac_parser_settings,
|
||||
'parameters': {'incar': nac_incar_dict}})
|
||||
phonon_settings = {'supercell_matrix': [2, 2, 2],
|
||||
'distance': 0.03}
|
||||
if is_nac:
|
||||
phonon_settings['is_nac'] = is_nac
|
||||
|
||||
return structure, forces_config, nac_config, phonon_settings
|
||||
|
||||
|
||||
def launch_phono3py(cutoff_energy=350, is_nac=False):
|
||||
structure, forces_config, nac_config, phonon_settings = get_settings(
|
||||
cutoff_energy, is_nac)
|
||||
Phono3pyWorkChain = WorkflowFactory('phonopy.phono3py')
|
||||
builder = Phono3pyWorkChain.get_builder()
|
||||
builder.structure = structure
|
||||
builder.calculator_settings = Dict(dict={'forces': forces_config,
|
||||
'nac': nac_config})
|
||||
builder.run_phono3py = Bool(False)
|
||||
builder.remote_phono3py = Bool(False)
|
||||
builder.code_string = Str('phonopy@nancy')
|
||||
builder.phonon_settings = Dict(dict=phonon_settings)
|
||||
builder.symmetry_tolerance = Float(1e-5)
|
||||
builder.options = Dict(dict=forces_config['options'])
|
||||
dim = phonon_settings['supercell_matrix']
|
||||
kpoints_mesh = forces_config['kpoints_mesh']
|
||||
label = ("ZnTe phono3py %dx%dx%d kpt %dx%dx%d PBEsol %d eV"
|
||||
% (tuple(dim) + tuple(kpoints_mesh) + (cutoff_energy, )))
|
||||
builder.metadata.label = label
|
||||
builder.metadata.description = label
|
||||
|
||||
future = submit(builder)
|
||||
print(label)
|
||||
print(future)
|
||||
print('Running workchain with pk={}'.format(future.pk))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
launch_phono3py(cutoff_energy=500, is_nac=True)
|
Binary file not shown.
Loading…
Reference in New Issue