3 Input

3.1 The template of dasp.in

The parameters in the input file dasp.in can be divided into five categories as follows:

    1. bool

    • Only the first character of this type parameter is read, if the first character is T/t, it is regarded as True; otherwise, it is regarded as False.

    1. Strings

    • All input characters of this type parameter are read and processed in str format. If a number is entered, it will be converted to strings.

    1. integer

    • All input characters of this type parameter are read and processed in int format. The input must be an integer, decimals are not supported.

    1. float

    • All input characters of this type parameter are read and processed in int or float format. The input format supports integer or decimal.

    1. list

    • All input characters of this type parameter are read, and separated by space into one or more values. The type of each value is one of I-IV.

The following is the dasp.in required to calculate the intrinsic defect of a material. Only necessary parameters are included in the following example. For the unset parameters see sections 3.2 to 3.5 for details. Users can adjust the parameters by themselves.

############## Job Scheduling ##############
cluster = SLURM     # (job scheduling system)
node_number = 2         # (number of node)
core_per_node = 32      # (core per node)
queue = batch           # (name of queue/partition)
max_time = 24:00:00        # (maximum time for a single DFT calculation)
vasp_path_dec = /opt/vasp.5.4.4/bin/vasp_gam   #  (path of VASP)
vasp_path_tsc = /opt/vasp.5.4.4/bin/vasp_std
job_name = submit_job    # (name of script)
potcar_path = /opt/POT/potpaw_PBE    # (path of pseudopotentials)
max_job = 5

############## TSC Module ##############
database_api = ******************* # (str-list type)

############## DEC Module ##############
level = 2   # (level=1: PBE+PBE; level=2: PBE+HSE; level=3: HSE+HSE)
min_atom = 190
max_atom = 240
intrinsic = T   # (default: T)
correction = FNV   # (default: none)
epsilon = 10.3
Eg_real = 1.45   # (experimental band gap)

############## DDC Module ##############
ddc_temperature = 1000 300
ddc_mass = 0.09 0.84

3.2 System management

3.2.1 cluster

cluster indicates the system name, PBS and SLURM systems are supported.

cluster is str type, no default, and required.

Example of cluster setting:

# Default: No default
cluster =

# PBS system
cluster = PBS/pbs/... # Both uppercase and lowercase are valid parameters

# SLURM system
cluster = SLURM/slurm/... # Both uppercase and lowercase are valid parameters

3.2.2 node_number

node_number indicates the number of nodes used in a single task.

node_number is int type, no default, and required.

Example of node_number setting:

# Default: No default
node_number =

# Do not exceed the total number of nodes in the queue

# Example, please revise by the self
node_number = 1

3.2.3 core_per_node

core_per_node indicates the number of cores used in each node.

core_per_node is int type, no default, and required.

Example of core_per_node setting:

# Default: No default
core_per_node =

# Do not exceed the total number of cores of a single node in the queue

# Example, please revise by the self
core_per_node = 24

3.2.4 queue

queue indicates the queue name used for calculation.

queue is str type, no default, and required.

Example of queue setting:

# Default: No default
queue =

# Example, please revise by the self
queue = normal

3.2.5 max_time

max_time indicates the maximum time of a single task, which will be forcibly terminated by the queue if the set time is exceeded.

max_time is str type, no default, and required.

Example of max_time setting:

# Default: No default
max_time =

# format: HH(H...):MM:SS, and HH >= 0, 0 <= MM < 60, 0 <= SS < 60

# Example, please revise by the self
max_time = 24:00:00

3.2.6 vasp_path_dec, vasp_path_tsc, vasp_path_cdc

vasp_path_tsc , vasp_path_dec , and vasp_path_cdc indicate the path of VASP invoked using in the DASP-TSC, DASP-DEC, and DASP-CDC modules, respectively.

vasp_path_tsc , vasp_path_dec , and vasp_path_cdc are str type, no default, and required.

Example of vasp_path_tsc , vasp_path_dec , and vasp_path_cdc setting:

# Default: No default
vasp_path_tsc =
vasp_path_dec =
vasp_path_cdc =

# VASP must be installed in this path

# Example, please revise by the self
vasp_path_tsc = /opt/vasp5.4.4/vasp_std
vasp_path_dec = /opt/vasp5.4.4/vasp_gam
# vasp_path_dec = /opt/vasp5.4.4/vasp_std
vasp_path_dec = /opt/vasp_optics/vasp_gam

3.2.7 job_name

job_name indicates the name of the submission script.

job_name is str type, default is submit_job, and optional.

Example of job_name setting:

# Default:
job_name = submit_job

# Illegal characters: " ", "/", "?", "*", "$", "&", "(", ")"

# Example, please revise by the self
job_name = job.pbs
# job_name = job.sh

3.2.8 potcar_path

potcar_path indicates the path to the folder containing pseudopotential files POTCAR .

potcar_path is str type, no default, and required.

Example of potcar_path setting:

# Default: No default
potcar_path =

# Please ensure that the pseudopotential folder exists under this path, and can be read and write.

# Example, please revise by the self
potcar_path = /home/POT/potpaw_PBE

备注

Please ensure that the folder exists and has read and write permissions. Please make sure that there are not multiple identical pseudopotential files under this folder.

3.2.9 max_job

max_job indicates the maximum number of tasks allowed to run at the same time.

max_job is int type, default is 5, and optional.

Example of max_job setting:

# Default:
max_job = 5

# Example, please revise by the self
max_job = 3

3.3 TSC parameters

3.3.1 database_api

database_api indicates the key of application programming interface (API) of the Materials Project database, which is used to retrieve the information required for calculation.

database_api is str type, no default, and required.

Example of database_api setting:

# Default: No default
database_api =

3.3.2 key_phases_recalc

key_phases_recalc specifies whether TSC module calculates chemical potential with parameters consistent with DEC module. If set to False , the TSC module only calls the total energy on the MP database to judge the stability of the host compound without any DFT calculation of the secondary compounds.

key_phases_recalc is bool type, default is True, and optional.

Example of key_phases_recalc setting:

# Default:
key_phases_recalc = True

# Example, please revise by the self
key_phases_recalc = False

3.3.3 excluded_phase

excluded_phase specifies the secondary compounds to be excluded when analyzing the stability of the host compound. Multiple hetero-phases to be excluded can be set, and the names are separated by spaces.

excluded_phase is list type, the strings should be separated by space. The parameter has no default and is optional.

Example of excluded_phase setting:

# Default: No default
excluded_phase =

# Example, please revise by the self
excluded_phase = Zn(GaO2)2 Zn2InGaO5

3.3.4 axis_element_x

axis_element_x indicates the element chemical potential corresponding to the X axis in the two-dimensional stable region phase diagram of the host compound. It is only valid for ternary or quaternary semiconductors now.

axis_element_x is str type. The parameter has no default and is optional.

Example of axis_element_x setting:

# Default: No default
axis_element_x =

# Example, please revise by the self
axis_element_x = Cu

3.3.5 axis_element_y

axis_element_y indicates the element chemical potential corresponding to the Y axis in the two-dimensional stable region phase diagram of the host compound. It is only valid for ternary or quaternary semiconductors now.

axis_element_y is str type. The parameter has no default and is optional.

Example of axis_element_y setting:

# Default: No default
axis_element_y =

# Example, please revise by the self
axis_element_y = Zn

3.3.6 mid_element

mid_element indicates the element whose chemical potential is treated as intermediate variable in the two-dimensional stable region phase diagram of the host compound.

mid_element is str type. The parameter has no default and is optional.

Example of mid_element setting:

# Default: No default
mid_element =

# Example, please revise by the self
mid_element = Sn

3.3.7 fixed_chem_potential

fixed_chem_potential indicates the element whose chemical potential is fixed when drawing the two-dimensional stable region phase diagram of quaternary compounds, which is currently only valid for quaternary semiconductors. If the chemical potential exceeds the stable region after applying an offset, the module will automatically select a suitable value near the boundary of the stable region.

fixed_chem_potential is str type. Default: Automatically select the element according to the material, and the offset of chemical potential from the average value is 0 by default. Optional: the element name and the offset of its chemical potential from its average value.

Example of fixed_chem_potential setting:

# Default: Determinate by the program automatically

# Example, please revise by the self
fixed_chem_potential = Se:-0.2
# fixed_chem_potential = Se:-0.5

3.3.8 plot_2d

plot_2d specifies whether to output a two-dimensional stable region phase diagram for the host compound, only valid for ternary or quaternary semiconductors currently.

plot_2d is bool type. The default is Ture for ternary or quaternary semiconductors, and it is optional.

Example of plot_2d setting:

# Default:
plot_2d = True (ternary or quaternary compounds)
plot_2d = False (binary or quaternary compounds)

# Example, please revise by the self
plot_2d = False

3.3.9 plot_3d

plot_3d specifies whether to output a three-dimensional stable region phase diagram for the host compound, only valid for quaternary semiconductors currently.

plot_3d is bool type. The default is False, and it is optional.

Example of plot_3d setting:

# Default:
plot_3d = False

# Example, please revise by the self
plot_3d = True

3.3.10 tsc_only

tsc_only specifies whether to run the TSC module alone to analyze the stability of the host compound quickly. If set to Ture, the potcar_path must be set at the same time.

tsc_only is bool ype. The default is False, and it is optional.

Example of tsc_only setting:

# Default:
tsc_only = False

# Example, please revise by the self
tsc_only = True

3.4 DEC parameters

3.4.1 level

level indicates the method to calculate total energy within DASP, 1: PBE+PBE, 2: PBE+HSE, 3: HSE+HSE.

level is int type. The default is 1, and it is optional.

Example of level setting:

# Default:
level = 1

#  level = 1 represents that PBE is used for structure optimization and total energy calculation. The level must be 1,2 or 3.

# Example, please revise by the self
level = 2     # level = 2 represents that PBE is used for structure optimization, and total energy calculates by HSE.
# level = 1/2/3

3.4.2 min_atom

min_atom indicates the minimum number of atoms of supercells used for defects calculation.

min_atom is int type. The default is 64, and it is optional.

Example of min_atom setting:

# Default:
min_atom = 64

# num_r is the number of atoms in the refined cell, and there should be a multiple m to make min_ atom <= m * num_ r <= max_ atom.

# Example, please revise by the self.
min_atom = 96

3.4.3 max_atom

max_atom indicates the maximum number of atoms of supercells used for defects calculation.

max_atom is int type. The default is 300, and it is optional.

Example of max_atom setting:

# Default:
max_atom = 300

# num_r is the number of atoms in the refined cell, and there should be a multiple m to make min_ atom <= m * num_ r <= max_ atom.

# Example, please revise by the self.
max_atom = 96

3.4.4 intrinsic

intrinsic indicates whether to carry out the intrinsic defects calculation.

intrinsic is bool type. The default is True, and it is optional.

Example of intrinsic setting:

# Default:
intrinsic = T

# Example, please revise by the self.
intrinsic = F

3.4.5 vacancy

vacancy indicates whether to calculate the vacancies.

vacancy is bool type. The default is True, and it is optional.

Example of vacancy setting:

# Default:
vacancy = T

# Example, please revise by the self.
vacancy = F

3.4.6 antisite

antisite indicates whether to calculate the antisite defects.

antisite is bool type. The default is True, and it is optional.

Example of antisite setting:

# Default:
antisite = T

# Example, please revise by the self.
antisite = F

3.4.7 interstitial

interstitial indicates whether to calculate the interstitial defects.

interstitial is bool type. The default is True, and it is optional.

Example of interstitial setting:

# Default:
interstitial = T

# Example, please revise by the self.
interstitial = F

3.4.8 doping

doping indicates whether to calculate the dopants.

doping is bool type. The default is False, and it is optional.

Example of doping setting:

# Default:
doping = F

# If there is a dopant, set doping = T and the parameter impurity must also be set.
# doping determines whether to generate the pseudopotential files of the doped element.

# Example, please revise by the self.
doping = T

3.4.9 impurity

impurity indicates the doped element.

impurity is str type. No default, and optional. (It is required when doping = T)

Example of impurity setting:

# Default: No default
impurity =

# Valid only when doping = T, and the value of impurity setting must be the discovered element.

# Example, please revise by the self.
impurity = H

3.4.10 substitution_doping

substitution_doping indicates whether to calculate substitution defects when there is a dopant.

substitution_doping is bool type. The default is True, and it is optional.

Example of substitution_doping setting:

# Default:
substitution_doping = T

# Example, please revise by the self.
substitution_doping = F

3.4.11 interstitial_doping

interstitial_doping indicates whether to calculate interstitial defects when there is a dopant.

interstitial_doping is bool type. The default is True, and it is optional.

Example of interstitial_doping setting:

# Default:
interstitial_doping = T

# Example, please revise by the self.
interstitial_doping = F

3.4.12 num_inter

num_inter indicates the number of generated interstitial defects (intrinsic or doped).

num_inter is int type. The default is 6, and it is optional.

Example of num_inter setting:

# Default:
num_inter = 6

# The greater num_inter is, the more interstitial will be generated, which will increase the amount of calculation.

# Example, please revise by the self.
num_inter = 10

3.4.13 inter_host_distance

inter_host_distance indicates the minimum distance between the interstitial atom and other atoms when interstitial defects are generated.

inter_host_distance is float type. The default is 1.6, and it is optional.

Example of inter_host_distance setting:

# Default:
inter_host_distance = 1.6

# The greater inter_host_distance is, the slower the interstitial defect is generated.
# Example, please revise by the self.
inter_host_distance = 1.4

备注

Please be cautious when using this parameter! The great inter_host_distance may cause interstitial atoms cannot find their position all the time because they are generated by random scattering, so the DASP-DEC cannot continue. Using the default value generally takes several minutes, and the generation time increases with the increase of this value. If there is no response for a long time (more than ten minutes), please reset this parameter and run DASP-DEC again.

3.4.14 inter_inter_distance

inter_inter_distance indicates the distance between two generated interstitial atoms.

inter_inter_distance is float type. The default is 0.1, and it is optional.

Example of inter_inter_distance setting:

# Default:
inter_inter_distance = 0.1

# The greater inter_inter_distance is, the slower the interstitial defect is generated.
# Example, please revise by the self.
inter_inter_distance = 0.2

备注

Please be cautious when using this parameter! The great inter_inter_distance may cause interstitial atoms cannot find their position all the time because they are generated by random scattering, so the DASP-DEC cannot continue. Using the default value generally takes several minutes, and the generation time increases with the increase of this value. If there is no response for a long time (more than ten minutes), please reset this parameter and run DASP-DEC again.

3.4.15 correction

correction indicates the finite supercell size corrections for charged defects. None means only electrostatic potential alignment without image charge correction. LZ means the electrostatic potential alignment and Lany-Zunger image charge correction are used. FNV means using FNV correction scheme (including electrostatic potential alignment).

correction is str type. The default is None, and it is optional.

Example of correction setting:

# Default:
correction = None

# LZ correction
correction = LZ/lz/Lz/lZ   # case insensitive

# FNV correction
correction = FNV/fnv/...   # case insensitive

# References: Phys. Rev. B 78, 235104 (2008), Phys. Rev. Lett. 102, 016402 (2009)

3.4.16 epsilon

epsilon indicates the static dielectric constant required to calculate the correction of charged defects.

epsilon is float type. No default, and it is optional. (It is required when correction = LZ or FNV.)

Example of epsilon setting:

# Default: no default
epsilon =

# Example, please revise by the self.
epsilon = 12.6

3.4.17 Eg_real

Eg_real indicates the experimental band gap used to calculate the exchange proportion AEXX for HSE calculation.

Eg_real is int type. No default, and it is optional.

Example of Eg_real setting:

# Default: no default
Eg_real =

# Valid only when level ≠ 1.
# Eg_real > 0, if there is no experimental band gap, it does not have to be set.
# 0.25 will be used for subsequent calculation.

# Example, please revise by the self.
Eg_real = 5.6

3.4.18 distorted_defect

distorted_defect indicates the defect name of the distorted structure to be generated, which must be the same as the name of the defect folder (except for interstitial). Interstitial defects are slightly different, for example, N_i/random2 corresponds to N_i-2.

distorted_defect is list type. No default, and it is optional. If set, the distortion structure will be calculated.

Example of distorted_defect setting:

# Default: no default
distorted_defect =

# Example, please revise by the self.
distorted_defect = Ga_N2 V_N1 N_i-2

3.4.19 distorted_number

distorted_number indicates the number of distorted structures to be generated of each defect.

distorted_number is int type. The default is 10, and it is optional.

Example of distorted_number setting:

# Default:
distorted_number = 10

# Valid when the distorted_defect is set correctly.

# Example, please revise by the self.
distorted_number = 6

3.5 DDC parameters

3.5.1 ddc_temperature

ddc_temperature indicates the growth and working (measuring) temperature, two values have to be set.

ddc_temperature is list type. No default, and required.

Example of ddc_temperature setting:

# Default: no default
ddc_temperature =

# Example, please revise by the self.
# The growth temperature is 1000 K, while the working (measuring) temperature is 300 K.
ddc_temperature = 1000 300
# ddc_temperature = 1300 330

3.5.2 ddc_mass

ddc_mass indicate the electron and hole effective masses, the geometric mean in the three directions x, y, and z of the carrier effective mass should be manually calculated before filling.

ddc_mass is list type. No default, and required.

Example of ddc_mass setting:

# Default: no default
ddc_mass =

# Example, please revise by the self.
# The electron effective mass is 0.1m_0, and the hole effective mass is 0.9m_0.
ddc_mass = 0.1 0.9

3.5.3 ddc_path

ddc_path indicates the path of chemical potential calculated by DDC. The serial number is consistent with that in dasp.in , and two values must be set.

ddc_path is list type. The default is 1 2 , which means the defect concentration on the path from the first chemical potential (p1) to the second chemical potential (p2) setting in dasp.in will be calculated, and it is optional.

Example of ddc_path setting:

# Default:
ddc_path = 1 2

# Example, please revise by the self.
# It indicates the changes in defect concentration on the path from the fourth chemical potential to the second chemical potential that setting in dasp.in.
ddc_path = 4 2

3.6 CDC parameters

The CDC module will read the four parameters of level , epsilon , vasp_path_cdc , and ddc_mass mentioned above, and the following seven parameters.

3.6.1 cdc_defect

cdc_defect specifies the defects to be calculated in CDC.

cdc_defect is str type. No default, and it is required.

Example of cdc_defect setting:

# Default: no default
cdc_defect =

# Example, please revise by the self.
# Calculating the property of Cu_Zn1.
cdc_defect = Cu_Zn1

备注

The name of the specified defect must be consistent with the directory name of the defect in the dec directory.

备注

Only the properties of the specified defect in the DEC directory with “initialstructure” can be calculated.

3.6.2 cdc_job

cdc_job determines which calculation needs to do in CDC. radiative_rate will calculate the radiative capture coefficient, and pl calculates the photoluminescence spectra induced by defects.

cdc_job is str type. No default, and it is required.

Example of cdc_job setting:

# Default: no default
cdc_job =

# Calculating the radiative capture coefficient.
cdc_job = radiative_rate

# Calculating the photoluminescence spectra.
cdc_job = pl

3.6.3 cdc_temperature

cdc_temperature specifies the temperature of material when calculating the defect properties in CDC.

cdc_temperature is float type. No default, and it is required.

Example of cdc_temperature setting:

# Default: no default
cdc_temperature =

# Calculating the properties when the material is at 300 K.
cdc_temperature = 300

3.6.4 cdc_charge

cdc_charge represents the amount of charge of the defect before and after carrier transition.

cdc_charge is list type. No default, and it is required.

Example of cdc_charge setting:

# Default: no default
cdc_charge =

# It indicates that a hole transfers to the defect state, the initial is a neutral state with 0 charges, while the final state is a +1 state with a +q charge.
cdc_charge = 0 1

# It indicates that an electron transfers to the defect state, the initial is a -1 state with a -q charge, while the final state is a -2 state with a -2q charge.
cdc_charge = -1 -2

3.6.5 cdc_band

cdc_band sets which band the carrier is located before and after the transition. If it is a hole transition, the hole is located at the VBM and defect state before and after transition respectively. If it is an electron transition, the electron is located at the CBM and defect state before and after transition respectively.

cdc_band is list type. No default, and it is required.

Example of cdc_band setting:

# Default: no default
cdc_band =

# This is a hole transition, before and after the transition the hole is located at the 864 band which is the VBM, and at the 865 band which is the defect state respectively.
cdc_band = 864 865

# This is an electron transition, before and after the transition the electron is located at the 866 band which is the CBM, and at the 865 band which is the defect state respectively.
cdc_band = 866 865

备注

If cdc_band corresponds to electron transition, the cdc_charge should also be. The same for hole transition.

3.6.6 spin_channel

spin_channel indicates the spin of the carrier. 1 corresponds to spin up or no spin, and 2 corresponds to spin down.

spin_channel is int type. No default, and it is required.

Example of spin_channel setting:

# Default: no default
spin_channel =

# 1 corresponds to spin up or no spin.
spin_channel = 1

# 2 corresponds to spin down.
spin_channel = 2

3.6.7 refractive_index

refractive_index the refractive index of the material.

refractive_index is float type. No default, and it is required.

Example of refractive_index setting:

# Default: no default
refractive_index =

# The refractive index of the material is 2.38.
refractive_index = 2.38