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. * 2. **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. * 3. **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. * 4. **float** - All input characters of this type parameter are read and processed in int or float format. The input format supports integer or decimal. * 5. **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. .. code-block:: python ############## 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 -------------------------------- :guilabel:`cluster` indicates the system name, PBS and SLURM systems are supported. :guilabel:`cluster` is **str** type, no default, and **required**. Example of :guilabel:`cluster` setting: .. code-block:: python # 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 --------------------------------- :guilabel:`node_number` indicates the number of nodes used in a single task. :guilabel:`node_number` is **int** type, no default, and **required**. Example of :guilabel:`node_number` setting: .. code-block:: python # 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 -------------------------------- :guilabel:`core_per_node` indicates the number of cores used in each node. :guilabel:`core_per_node` is **int** type, no default, and **required**. Example of :guilabel:`core_per_node` setting: .. code-block:: python # 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 -------------------------------- :guilabel:`queue` indicates the queue name used for calculation. :guilabel:`queue` is **str** type, no default, and **required**. Example of :guilabel:`queue` setting: .. code-block:: python # Default: No default queue = # Example, please revise by the self queue = normal 3.2.5 max_time -------------------------------- :guilabel:`max_time` indicates the maximum time of a single task, which will be forcibly terminated by the queue if the set time is exceeded. :guilabel:`max_time` is **str** type, no default, and **required**. Example of :guilabel:`max_time` setting: .. code-block:: python # 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 ----------------------------------------------------- :guilabel:`vasp_path_tsc` , :guilabel:`vasp_path_dec` , and :guilabel:`vasp_path_cdc` indicate the path of VASP invoked using in the DASP-TSC, DASP-DEC, and DASP-CDC modules, respectively. :guilabel:`vasp_path_tsc` , :guilabel:`vasp_path_dec` , and :guilabel:`vasp_path_cdc` are **str** type, no default, and **required**. Example of :guilabel:`vasp_path_tsc` , :guilabel:`vasp_path_dec` , and :guilabel:`vasp_path_cdc` setting: .. code-block:: python # 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 -------------------------------- :guilabel:`job_name` indicates the name of the submission script. :guilabel:`job_name` is **str** type, default is submit_job, and **optional**. Example of :guilabel:`job_name` setting: .. code-block:: python # 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 ---------------------------------- :guilabel:`potcar_path` indicates the path to the folder containing pseudopotential files ``POTCAR`` . :guilabel:`potcar_path` is **str** type, no default, and **required**. Example of :guilabel:`potcar_path` setting: .. code-block:: python # 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 .. note:: **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 --------------------------------- :guilabel:`max_job` indicates the maximum number of tasks allowed to run at the same time. :guilabel:`max_job` is **int** type, default is 5, and **optional**. Example of :guilabel:`max_job` setting: .. code-block:: python # Default: max_job = 5 # Example, please revise by the self max_job = 3 3.3 TSC parameters ================================ 3.3.1 database_api ------------------------------- :guilabel:`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. :guilabel:`database_api` is **str** type, no default, and **required**. Example of :guilabel:`database_api` setting: .. code-block:: python # Default: No default database_api = 3.3.2 key_phases_recalc ----------------------------- :guilabel:`key_phases_recalc` specifies whether TSC module calculates chemical potential with parameters consistent with DEC module. If set to :guilabel:`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. :guilabel:`key_phases_recalc` is **bool** type, default is True, and **optional**. Example of :guilabel:`key_phases_recalc` setting: .. code-block:: python # Default: key_phases_recalc = True # Example, please revise by the self key_phases_recalc = False 3.3.3 excluded_phase ------------------------------ :guilabel:`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. :guilabel:`excluded_phase` is **list** type, the strings should be separated by space. The parameter has no default and is **optional**. Example of :guilabel:`excluded_phase` setting: .. code-block:: python # Default: No default excluded_phase = # Example, please revise by the self excluded_phase = Zn(GaO2)2 Zn2InGaO5 3.3.4 axis_element_x ------------------------------ :guilabel:`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. :guilabel:`axis_element_x` is **str** type. The parameter has no default and is **optional**. Example of :guilabel:`axis_element_x` setting: .. code-block:: python # Default: No default axis_element_x = # Example, please revise by the self axis_element_x = Cu 3.3.5 axis_element_y ------------------------------ :guilabel:`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. :guilabel:`axis_element_y` is **str** type. The parameter has no default and is **optional**. Example of :guilabel:`axis_element_y` setting: .. code-block:: python # Default: No default axis_element_y = # Example, please revise by the self axis_element_y = Zn 3.3.6 mid_element ------------------------------- :guilabel:`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. :guilabel:`mid_element` is **str** type. The parameter has no default and is **optional**. Example of :guilabel:`mid_element` setting: .. code-block:: python # Default: No default mid_element = # Example, please revise by the self mid_element = Sn 3.3.7 fixed_chem_potential ---------------------------------- :guilabel:`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. :guilabel:`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 :guilabel:`fixed_chem_potential` setting: .. code-block:: python # 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 ---------------------------------- :guilabel:`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. :guilabel:`plot_2d` is **bool** type. The default is Ture for ternary or quaternary semiconductors, and it is **optional**. Example of :guilabel:`plot_2d` setting: .. code-block:: python # 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 ------------------------------------ :guilabel:`plot_3d` specifies whether to output a three-dimensional stable region phase diagram for the host compound, only valid for quaternary semiconductors currently. :guilabel:`plot_3d` is **bool** type. The default is False, and it is **optional**. Example of :guilabel:`plot_3d` setting: .. code-block:: python # Default: plot_3d = False # Example, please revise by the self plot_3d = True 3.3.10 tsc_only ------------------------------------ :guilabel:`tsc_only` specifies whether to run the TSC module alone to analyze the stability of the host compound quickly. If set to Ture, the :guilabel:`potcar_path` must be set at the same time. :guilabel:`tsc_only` is **bool** ype. The default is False, and it is **optional**. Example of :guilabel:`tsc_only` setting: .. code-block:: python # Default: tsc_only = False # Example, please revise by the self tsc_only = True 3.4 DEC parameters ================================ 3.4.1 level -------------------------------- :guilabel:`level` indicates the method to calculate total energy within DASP, 1: PBE+PBE, 2: PBE+HSE, 3: HSE+HSE. :guilabel:`level` is **int** type. The default is 1, and it is **optional**. Example of :guilabel:`level` setting: .. code-block:: python # 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 ------------------------------------- :guilabel:`min_atom` indicates the minimum number of atoms of supercells used for defects calculation. :guilabel:`min_atom` is **int** type. The default is 64, and it is **optional**. Example of :guilabel:`min_atom` setting: .. code-block:: python # 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 -------------------------------------- :guilabel:`max_atom` indicates the maximum number of atoms of supercells used for defects calculation. :guilabel:`max_atom` is **int** type. The default is 300, and it is **optional**. Example of :guilabel:`max_atom` setting: .. code-block:: python # 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 ------------------------------------------ :guilabel:`intrinsic` indicates whether to carry out the intrinsic defects calculation. :guilabel:`intrinsic` is **bool** type. The default is True, and it is **optional**. Example of :guilabel:`intrinsic` setting: .. code-block:: python # Default: intrinsic = T # Example, please revise by the self. intrinsic = F 3.4.5 vacancy ------------------------------------- :guilabel:`vacancy` indicates whether to calculate the vacancies. :guilabel:`vacancy` is **bool** type. The default is True, and it is **optional**. Example of :guilabel:`vacancy` setting: .. code-block:: python # Default: vacancy = T # Example, please revise by the self. vacancy = F 3.4.6 antisite ------------------------------------ :guilabel:`antisite` indicates whether to calculate the antisite defects. :guilabel:`antisite` is **bool** type. The default is True, and it is **optional**. Example of :guilabel:`antisite` setting: .. code-block:: python # Default: antisite = T # Example, please revise by the self. antisite = F 3.4.7 interstitial -------------------------------------- :guilabel:`interstitial` indicates whether to calculate the interstitial defects. :guilabel:`interstitial` is **bool** type. The default is True, and it is **optional**. Example of :guilabel:`interstitial` setting: .. code-block:: python # Default: interstitial = T # Example, please revise by the self. interstitial = F 3.4.8 doping ----------------------------------- :guilabel:`doping` indicates whether to calculate the dopants. :guilabel:`doping` is **bool** type. The default is False, and it is **optional**. Example of :guilabel:`doping` setting: .. code-block:: python # 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 ------------------------------------- :guilabel:`impurity` indicates the doped element. :guilabel:`impurity` is **str** type. No default, and **optional**. **(It is required when doping = T)** Example of :guilabel:`impurity` setting: .. code-block:: python # 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 ------------------------------------------ :guilabel:`substitution_doping` indicates whether to calculate substitution defects when there is a dopant. :guilabel:`substitution_doping` is **bool** type. The default is True, and it is **optional**. Example of :guilabel:`substitution_doping` setting: .. code-block:: python # Default: substitution_doping = T # Example, please revise by the self. substitution_doping = F 3.4.11 interstitial_doping ------------------------------------------ :guilabel:`interstitial_doping` indicates whether to calculate interstitial defects when there is a dopant. :guilabel:`interstitial_doping` is **bool** type. The default is True, and it is **optional**. Example of :guilabel:`interstitial_doping` setting: .. code-block:: python # Default: interstitial_doping = T # Example, please revise by the self. interstitial_doping = F 3.4.12 num_inter ----------------------------------------- :guilabel:`num_inter` indicates the number of generated interstitial defects (intrinsic or doped). :guilabel:`num_inter` is **int** type. The default is 6, and it is **optional**. Example of :guilabel:`num_inter` setting: .. code-block:: python # 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 ----------------------------------------- :guilabel:`inter_host_distance` indicates the minimum distance between the interstitial atom and other atoms when interstitial defects are generated. :guilabel:`inter_host_distance` is **float** type. The default is 1.6, and it is **optional**. Example of :guilabel:`inter_host_distance` setting: .. code-block:: python # 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 .. note:: **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 --------------------------------------- :guilabel:`inter_inter_distance` indicates the distance between two generated interstitial atoms. :guilabel:`inter_inter_distance` is **float** type. The default is 0.1, and it is **optional**. Example of :guilabel:`inter_inter_distance` setting: .. code-block:: python # 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 .. note:: **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 ----------------------------------------- :guilabel:`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). :guilabel:`correction` is **str** type. The default is None, and it is **optional**. Example of :guilabel:`correction` setting: .. code-block:: python # 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 ----------------------------------- :guilabel:`epsilon` indicates the static dielectric constant required to calculate the correction of charged defects. :guilabel:`epsilon` is **float** type. No default, and it is **optional**. **(It is required when correction = LZ or FNV.)** Example of :guilabel:`epsilon` setting: .. code-block:: python # Default: no default epsilon = # Example, please revise by the self. epsilon = 12.6 3.4.17 Eg_real ----------------------------------- :guilabel:`Eg_real` indicates the experimental band gap used to calculate the exchange proportion AEXX for HSE calculation. :guilabel:`Eg_real` is **int** type. No default, and it is **optional**. Example of :guilabel:`Eg_real` setting: .. code-block:: python # 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 ----------------------------------- :guilabel:`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. :guilabel:`distorted_defect` is **list** type. No default, and it is **optional**. If set, the distortion structure will be calculated. Example of :guilabel:`distorted_defect` setting: .. code-block:: python # 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 ----------------------------------- :guilabel:`distorted_number` indicates the number of distorted structures to be generated of each defect. :guilabel:`distorted_number` is **int** type. The default is 10, and it is **optional**. Example of :guilabel:`distorted_number` setting: .. code-block:: python # 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 -------------------------------------- :guilabel:`ddc_temperature` indicates the growth and working (measuring) temperature, two values have to be set. :guilabel:`ddc_temperature` is **list** type. No default, and **required**. Example of :guilabel:`ddc_temperature` setting: .. code-block:: python # 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 -------------------------------------- :guilabel:`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. :guilabel:`ddc_mass` is **list** type. No default, and **required**. Example of :guilabel:`ddc_mass` setting: .. code-block:: python # 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 ------------------------------------------ :guilabel:`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. :guilabel:`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 :guilabel:`ddc_path` setting: .. code-block:: python # 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 :guilabel:`level` , :guilabel:`epsilon` , :guilabel:`vasp_path_cdc` , and :guilabel:`ddc_mass` mentioned above, and the following seven parameters. 3.6.1 cdc_defect -------------------------------------- :guilabel:`cdc_defect` specifies the defects to be calculated in CDC. :guilabel:`cdc_defect` is **str** type. No default, and it is **required**. Example of :guilabel:`cdc_defect` setting: .. code-block:: python # Default: no default cdc_defect = # Example, please revise by the self. # Calculating the property of Cu_Zn1. cdc_defect = Cu_Zn1 .. note:: **The name of the specified defect must be consistent with the directory name of the defect in the dec directory.** .. note:: **Only the properties of the specified defect in the DEC directory with “initialstructure” can be calculated.** 3.6.2 cdc_job -------------------------------------- :guilabel:`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. :guilabel:`cdc_job` is **str** type. No default, and it is **required**. Example of :guilabel:`cdc_job` setting: .. code-block:: python # 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 -------------------------------------- :guilabel:`cdc_temperature` specifies the temperature of material when calculating the defect properties in CDC. :guilabel:`cdc_temperature` is **float** type. No default, and it is **required**. Example of :guilabel:`cdc_temperature` setting: .. code-block:: python # Default: no default cdc_temperature = # Calculating the properties when the material is at 300 K. cdc_temperature = 300 3.6.4 cdc_charge -------------------------------------- :guilabel:`cdc_charge` represents the amount of charge of the defect before and after carrier transition. :guilabel:`cdc_charge` is **list** type. No default, and it is **required**. Example of :guilabel:`cdc_charge` setting: .. code-block:: python # 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 ------------------------------------------ :guilabel:`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. :guilabel:`cdc_band` is **list** type. No default, and it is **required**. Example of :guilabel:`cdc_band` setting: .. code-block:: python # 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 .. note:: **If cdc_band corresponds to electron transition, the cdc_charge should also be. The same for hole transition.** 3.6.6 spin_channel -------------------------------------- :guilabel:`spin_channel` indicates the spin of the carrier. 1 corresponds to spin up or no spin, and 2 corresponds to spin down. :guilabel:`spin_channel` is **int** type. No default, and it is **required**. Example of :guilabel:`spin_channel` setting: .. code-block:: python # 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 -------------------------------------- :guilabel:`refractive_index` the refractive index of the material. :guilabel:`refractive_index` is **float** type. No default, and it is **required**. Example of :guilabel:`refractive_index` setting: .. code-block:: python # Default: no default refractive_index = # The refractive index of the material is 2.38. refractive_index = 2.38