forked from aestimosolver/aestimo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsample_pn.py
executable file
·61 lines (51 loc) · 1.83 KB
/
sample_pn.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# ----------------------------------------------------------------------
# Input File Description: Si p/n junction.
# ----------------------------------------------------------------------
# ----------------
# GENERAL SETTINGS
# ----------------
# TEMPERATURE
T = 300.0 #Kelvin
# COMPUTATIONAL SCHEME
# 0: Schrodinger
# 1: Schrodinger + nonparabolicity
# 2: Schrodinger-Poisson
# 3: Schrodinger-Poisson with nonparabolicity
# 4: Schrodinger-Exchange interaction
# 5: Schrodinger-Poisson + Exchange interaction
# 6: Schrodinger-Poisson + Exchange interaction with nonparabolicity
computation_scheme = 2
# Non-parabolic effective mass function
# 0: no energy dependence
# 1: Nelson's effective 2-band model
# 2: k.p model from Vurgaftman's 2001 paper
meff_method = 2
# Non-parabolic Dispersion Calculations for Fermi-Dirac
fermi_np_scheme = True
# QUANTUM
# Total subband number to be calculated for electrons
subnumber_e = 1
# --------------------------------
# REGIONAL SETTINGS FOR SIMULATION
# --------------------------------
# GRID
# For 1D, z-axis is choosen
gridfactor = 0.2 #nm
maxgridpoints = 200000 #for controlling the size
# REGIONS
# Region input is a two-dimensional list input.
# An example:
# Si p-n diode. Firstly lets picturize the regional input.
# | Thickness (nm) | Material | Alloy fraction | Doping(cm^-3) | n or p type |
# Layer 0 | 250.0 | Si | 0 | 1e16 | n |
# Layer 1 | 250.0 | Si | 0 | 1e16 | p |
#
# To input this list in Gallium, we use lists as:
material =[[500.0, 'Si', 0, 1.0e16, 'p'],
[500.0, 'Si', 0, 1.0e16, 'n']]
if __name__ == "__main__": #this code allows you to run the input file directly
input_obj = vars()
import aestimo
aestimo.run_aestimo(input_obj)