[ Home ] [ News ] [ Contact ] [ Search ] Add material parameters

 ==> Download Software
 nextnano³ documentation

 Copyright notice
 About us
 Useful Links
 Publications
 * password protected

 

 
Up
 

Material parameters for binary zincblende materials

Data base

Valid keywords for the parameters of the default parameter data base are listed in db_keys.in.
This is the place to enter new keywords if one wants to add new parameters. In principle, one should only enter into this data base keywords, which are marked as 'required'. Through this it is warranted that corresponding entries in the data base actually do occur. (The input parser checks this, but only their existence!)
Additionally, the new keywords have to be entered into keywords.in.

For zincblende materials the keyword is $binary_zb_default. On this basis, the entries in the data base database.in have to be complemented for the newly declared values for all affected known materials. This also includes the adaption of changes in the data types of already existing parameters (e.g. double -> double_array).

The structure of the data, which the values of the material parameters are later transferred to, are declared in a module called mod_type_binary_zb_dflt.

If new parameters are introduced (see above) the corresponding data structure has to be changed consequently. This affects directly the following sub programs:

Additionally, under the circumstances of susceptible changes of the data type the following sub programs or FUNCTIONs respectively are affected:

  • read_alloy_data.f90   needs module type material info only for input of material number, alloy FUNCTION number etc.
  • read_alloy_info.f90   needs module type material info only for input of material number, alloy FUNCTION number etc.
  • read_doping_data.f90 needs module type material info only for input of material number, doping FUNCTION number etc.
  • cb_degeneracy           provides the degeneracy factor(s) of the valley(s) of the conduction band minima
  • cb_energy                   FUNCTION, real: provides the energetic position of the specified conduction band minimum
  • cb_masses                   FUNCTION, real, double, array, pointer: provides longitudinal and transverse masses for specified conduction band minimum (3 masses)
  • cb_nonpar                   FUNCTION, real: provides nonparabolicity parameters for specified conduction band minimum: only one per minimum
  • st_dielc                   FUNCTION, real, double, array, pointer: gives values for static dielectricity constant (3 numbers)
  • vb_degeneracy           FUNCTION, integer: provides degeneracy factor for specified valence band minimum
  • vb_energy                   FUNCTION, real: provides energetic position for specified valence band minimum
  • vb_masses                   FUNCTION, real, double, array, pointer: provides longitudinal and transverse masses for specified valence band minimum (3 masses)
  • vb_nonpar                   FUNCTION, real: provides nonparabolicity parameters for specified valence band minimum:  pro only one per minimum
  • num_cbands                 FUNCTION, integer: provides number of conduction band minima that are effective
  • num_vbands                 FUNCTION, integer: provides number of valence band minima that are effective
  • op_dielc                     FUNCTION, real: provides optical dielelectricity constant (DK) of the material
  • lattice_co                 FUNCTION, real, double, array, pointer: provides values for lattice constants of the volume of the material
  • band_shift                 FUNCTION, real: provides an eigenvalue, around that all bands can be shifted in case of need
  • abs_defpot_vb           FUNCTION, real: provides absolute deformation potential for the valence band
  • abs_defpot_cbs         FUNCTION, real, double, array, pointer: provides absolute deformation potential for conduction band minima
  • uniax_vb_defpots     FUNCTION, real, double, array, pointer: provides valence band deformation potential for uniaxial stress
  • uniax_cb_defpots     FUNCTION, real, double, array, pointer: provides conduction band deformation potential for uniaxial stress
  • piezo_constants       FUNCTION, real, double, array, pointer: provides piezoelectric constants of the material
  • elastic_constants    FUNCTION, real, double, array, pointer: provides elastic constants of the material
  • kp_6x6_params           FUNCTION, real, double, array, pointer: provides kp parameters for valence band 6x6 model (3 valence bands)
  • kp_8x8_params           FUNCTION, real, double, array, pointer: provides kp parameters for  8x8 model (3 valence bands, 1 conduction band)
  • out_in.f90                     (for output purposes data structures are partly accessed directly; however, most of the accesses occur via the above FUNCTIONs)
  • 3D_guenther_subroutines.f90 (maps material and geometry variables onto Stefan's grid, maybe not affected any more in the future)

Presumably not affected directly:

For the new parameters new sub programs have to be provided appropriately, that are returning the parameter values if requested.

Interface states - inquiry functions

---------------------------------------------------------
Contained in: if_state_inquiry_funcs.f90
---------------------------------------------------------
contains various FUNCTIONs to call for interface numbers, states associated with them, state parameters ...
 FUNCTION number_of_if_states(mat1,mat2)           RESULT (number)        ! returns zero in case that no states are defined for this interface
 FUNCTION interface_number   (mat1,mat2)           RESULT (number)        ! returns just the interface number as defined in input, otherwise zero
 FUNCTION if_state_numbers(interface_number)       RESULT (state_numbers) ! pointer, contains state numbers
 FUNCTION num_of_if_state_levels(interface_state_number) RESULT (number)  ! number of interface staes present at actual interface
 FUNCTION if_state_energies    (if_st_num)         RESULT (energies)      ! energy levels for given state number
 FUNCTION if_state_degeneracies(if_st_num)         RESULT (degenercies)   ! degeneracies of levels for given state number
 FUNCTION if_state_type        (if_st_num)         RESULT (name)          ! returns state-type = >trap< or >fixed<
 FUNCTION if_state_density(interface_state_number) RESULT (density)       ! returns density of given state
---------------------------------------------------------
 Prior call to read_mat_interfaces.f90 required for parameters
 Mapping arrays and parameters of states stored in modules
 defined in interface_data.f90
=========================================================

---------------------------------------------------------
interface_data.f90
---------------------------------------------------------
MODULE mod_mat_interfaces                                  ! maps material pair to interface number
MODULE mod_interface_to_state_num                     ! state numbers defined for each interface
MODULE mod_if_state_params                                ! state parameters
---------------------------------------------------------
Type definitions within modules
Data structures allocated/filled by read_mat_interfaces.f90
=========================================================


MODULE mod_get_strain_tensor_cxyz
CONTAINS
FUNCTION get_strain_tensor_cxyz(grid_point,symm) RESULT(result_strain_tensor_cxyz)
---------------------------------------------------------
REAL(8),DIMENSION(3,3)       :: result_strain_tensor_cxyz
---------------------------------------------------------
grid_point grid_point is scalar grid point number
symm (true,false) INPUT, flag whether displacement has to be assumed symmetric (true) or not
result_strain_tensor_cxyz is given in cartesian crystal fixed coordinate system
=========================================================
 

----------------------------------------------------------------------------
MODULE mod_piezo_polarization_xyz
CONTAINS
FUNCTION piezo_polarization_xyz (grid_point,symm) RESULT(piezo_polar_xyz)
---------------------------------------------------------
REAL(8),DIMENSION(3)         :: piezo_polar_xyz                 ! RESULT
---------------------------------------------------------
grid_point grid_point is scalar grid point number
symm (true,false) INPUT, flag whether displacement has to be assumed symmetric (true) or not (used in call for strain tensor)
Calculations are done in cxyz, then the piezo electrical polarization is transformed into xyz (simulation coordinate system)
===================
 

----------------------------------------------------------------------------
MODULE mod_piezo_polarization_cxyz
CONTAINS
FUNCTION piezo_polarization_cxyz (grid_point,symm) RESULT(piezo_polar_cxyz)
---------------------------------------------------------
REAL(8),DIMENSION(3)         :: piezo_polar_cxyz                 ! RESULT
---------------------------------------------------------
grid_point grid_point is scalar grid point number
symm (true,false) INPUT, flag whether displacement has to be assumed symmetric (true) or not (used in call for strain tensor)
Calculations are done in cxyz (crystal fixed cartesian coordinate system)
===================
 
 

----------------------------------------------------------------------------
MODULE mod_piezo_constants
CONTAINS
FUNCTION piezo_constants(material_number,alloyc)  RESULT (piezoco)
----------------------------------------------------------------------------
REAL(8),DIMENSION(:),POINTER :: piezoco
Result is vector containing piezo electric constants of given material
Ordering:
ZB: NN , NN , e14
WZ: e33, e31, e15
=========================================================

----------------------------------------------------------------------------
MODULE mod_elastic_constants
CONTAINS
FUNCTION elastic_constants(material_number,alloyc)  RESULT (elasticco)
REAL(8),DIMENSION(:),POINTER :: elasticco
Result is vector containing elastic constants of given material
Ordering:
ZB: c11,c12,c44
WZ: C11,C12,C13,C33,C44
=========================================================

---------------------------------------------------------
MODULE mod_qm_cluster_grid_points                                                                       !
 USE module_type_cluster_grid_points                                                                        ! type definition in file type_info.f90
 TYPE(type_cluster_grid_points),DIMENSION(:),POINTER::qm_cluster_grid_points  ! qm_cluster_grid_points()%grid_points()
 LOGICAL                       ,DIMENSION(:),POINTER::cluster_active                             !
 INTEGER                       ,DIMENSION(:),POINTER::qm_boundary_condition              !
 INTEGER                                            ::n_qm_clusters_defined                                   !
END MODULE mod_qm_cluster_grid_points                                                                !
!-----------------------------------------------------------!
=========================================================

--------------------------------------------------------------
get_quantum_clusters.f90
CONTAINS
 SUBROUTINE get_quantum_clusters(domain_boundaries)
  USE mod_check_quantum_regions
  USE mod_check_quantum_clusters
  USE mod_cluster_quantum_regions
************************************************************************!
  CALL check_quantum_regions(domain_boundaries,quantum_region_priorities)
  CALL check_quantum_clusters(quantum_region_priorities,num_of_quantum_clusters,quareg_to_cluster,warning)
  CALL cluster_quantum_regions(domain_boundaries,quantum_region_priorities,num_of_quantum_clusters,quareg_to_cluster,warning)
=========================================================
check_quantum_regions.f90
check_quantum_clusters.f90
cluster_quantum_regions.f90
=========================================================

quantum_cluster_grid_points.f90
This file contains modules with data type definitions and data structures
MODULE mod_qm_cluster_grid_points
MODULE
mod_type_qm_model_specs
MODULE
mod_qm_models
MODULE
mod_qmods_sorted

MODULE mod_sort_quantum_models which contains SUBROUTINE sort_quantum_models
OUTPUT to
USE mod_qmods_sorted
USE mod_qm_models
These MODULEs are contained in quantum_cluster_grid_points.f90
!----------------------------------------------------------------------------!
! INTEGER                                              :: n_cb_efm                        ! OUTPUT to mod_qmods_sorted - number of effective mass models c-band
! INTEGER                                              :: n_cb_8kp                        ! OUTPUT to mod_qmods_sorted - number of 8x8kp models for gamma min c-band
! INTEGER                                              :: n_vb_efm                         ! OUTPUT to mod_qmods_sorted - number of effective mass models v-band
! INTEGER                                              :: n_vb_8kp                         ! OUTPUT to mod_qmods_sorted - number of 8x8kp models for valence band
! INTEGER                                              :: n_vb_6kp                         ! OUTPUT to mod_qmods_sorted - number of 6x6kp models for valence band
! INTEGER, DIMENSION(:), POINTER   :: cb_efm_to_qm_modnum       ! OUTPUT to mod_qmods_sorted - contains quantum model numbers to be used
! INTEGER, DIMENSION(:), POINTER   :: cb_8kp_to_qm_modnum       ! OUTPUT to mod_qmods_sorted - contains quantum model numbers to be used
! INTEGER, DIMENSION(:), POINTER   :: vb_efm_to_qm_modnum       ! OUTPUT to mod_qmods_sorted - contains quantum model numbers to be used
! INTEGER, DIMENSION(:), POINTER   :: vb_8kp_to_qm_modnum       ! OUTPUT to mod_qmods_sorted - contains quantum model numbers to be used
! INTEGER, DIMENSION(:), POINTER   :: vb_6kp_to_qm_modnum       ! OUTPUT to mod_qmods_sorted - contains quantum model numbers to be used
!----------------------------------------------------------------------------!
The detailed specifications for all quantum models are stored in
MODULE mod_qm_models
 USE mod_type_qm_model_specs
  TYPE(type_qm_model), DIMENSION(:), POINTER  :: qm_models(quantum model number)%.....
END MODULE mod_qm_models
contained in quantum_cluster_grid_points.f90. The data type definition of qm_models()%... is also given in the file, mentioned above.

   
Last modified: 09-Jun-2011