-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMA-R_cut+C+FI.inp
144 lines (103 loc) · 4.76 KB
/
MA-R_cut+C+FI.inp
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
$ This code has DrDc model to simulatin SiGe interdiffusion
$ it takes as-grown SIMS data as input, simulates and compares annealed data vs. model prediction
$ It may also include dopant diffusion
$ Set the filenames and annealing parameters
assign name=T n.val=1000
assign name=AnnealTime n.val=70/60
assign name=Gefactor n.val=1.0
assign name=Cfactor n.val=0.02
assign name=XgeSubstrate n.val=0.00
assign name=GeInput c.val=MA-R_Ge_cut.txt
assign name=GeAnnealed c.val=MBA_Ge.txt
assign name=PInput c.val=MA-R_P_cut.txt
assign name=PAnnealed c.val=MBA_P.txt
assign name=CInput c.val=MA-R_C_cut.txt
assign name=CAnnealed c.val=MBA_C.txt
$-------------define mesh -----------------------
line x loc=0 spacing=0.001
line x loc=0.01 spacing=0.01
line y loc=0 spacing=0.001
line y loc=0.06 spacing=0.0002
line y loc=0.16 spacing=0.0002
line y loc=0.23 spacing=0.001
init boron=1e15 material=silicon
method st.histo ^skip.sil viscoela
method pd.full
method ^dif.adap
$--------------------------------------------------
select z=1 title='mesh'
plot.2d grid x.min=-0.01 x.max=0.01 y.min=0 y.max=0.20 c.grid=2
$---------------------------------------
$ Define Ge as new impurity and method
impurity name=Ge new
method variable=Ge none abs.err=0.1
profile impurity=Ge inf=@GeInput
select z=Ge title='DrDc modeling T=@T C @AnnealTime mins '
PLOT.1D x.min=0.00 x.max=0.25 y.min=0 y.max=1.5e22 LINE.TYP=1 COLOR=1
$ ---- define interdiffusion model and parameters
intermed name=Xge express=Ge/5e22
intermed name=Xge0 value=@XgeSubstrate
intermed name=b1 value=8.1
intermed name=b2 value=23
intermed name=D00 value=310*@Gefactor
intermed name=Eav value=4.66
intermed name=D01 express=D00*exp(-Eav/kT)
intermed name=D02 value=D01*exp(b1*Xge0)
intermed name=D express=(Xge<=Xge0 ? D01*exp(b1*Xge):D02*exp(b2*(Xge-Xge0)))
equation variable=Ge mat=Si addtoexp=DIV(D*GRAD(Ge))
$------------------------------------------
$ Define C Model
$impurity name=Cnew new
$method variable=Cnew none abs.err=0.1
PROFILE impurity=carbon IN.FILE=@CInput
SELECT Z=LOG10(carbon)
PLOT.1D ^CLEAR x.min=0.00 x.max=0.25 y.min=16 y.max=20 LINE.TYP=1 COLOR=2
IMPURITY IMP=CARBON MAT=SILICON MODEL=Cscale DI.FAC=@Cfactor
METHOD MODEL=Cscale ENABLE
$ Define P Model
intermed name=XCarbon express=carbon/5e22
intermed name=FIP express=0.95
intermed name=FVP express=1-FIP
intermed name=Pfactor express=FIP/(1+XCarbon*5500)+FVP*(1+XCarbon*5500)
IMPURITY IMP=PHOSPH MAT=SILICON MODEL=PinSiGeC DI.FAC=Pfactor
METHOD MODEL=PinSiGeC ENABLE
$ ---- load and plot initial profile
PROFILE PHOSPH IN.FILE=@PInput
SELECT Z=LOG10(PHOSPHORUS)
PLOT.1D ^CLEAR x.min=0.00 x.max=0.25 y.min=16 y.max=20 LINE.TYP=1 COLOR=3
$ ---- here is the diffusion process step
$diffusion temp=400 t.final=@T time=(@T-400)/100/60 inert
diffusion temp=@T time=@AnnealTime inert
$diffusion temp=@T t.final=400 time=(@T-400)/100/60 inert
$ ---- plot the diffused profile on top of the initial profile
SELECT Z=Ge
PLOT.1D ^CLEAR x.min=0.00 x.max=0.25 y.min=0 y.max=1.5e22 LINE.TYP=2 COLOR=1
SELECT Z=LOG10(PHOSPHORUS)
PLOT.1D ^CLEAR x.min=0.00 x.max=0.25 y.min=16 y.max=20 LINE.TYP=2 COLOR=3
SELECT Z=LOG10(CARBON)
PLOT.1D ^CLEAR x.min=0.00 x.max=0.25 y.min=16 y.max=20 LINE.TYP=2 COLOR=2
label x=0.13 y=19.8 label="DrDc X @Gefactor"
label x=0.13 y=19.3 label="Cscale = @Cfactor"
label x=0.13 y=18.8 label="Local Carbon Effect KGe"
label x=0.13 y=18.5 label="T = @T C"
label x=0.13 y=18.3 label="Time = @AnnealTime mins"
SELECT Z=PHOSPHORUS
PRINT.1D X.VAL=0 X.MAX=0.22 OUT.FILE=MA-R_cut+C+FI-P-@T-@AnnealTime-min-CDIFAC=@[email protected]
SELECT Z=CARBON
PRINT.1D X.VAL=0 X.MAX=0.22 OUT.FILE=MA-R_cut+C+FI-C-@T-@AnnealTime-min-CDIFAC=@[email protected]
SELECT Z=Ge/5e20
PRINT.1D X.VAL=0 X.MAX=0.22 OUT.FILE=MA-R_cut+C+FI-Ge-@T-@AnnealTime-min-CDIFAC=@[email protected]
$STOP
$-------------------------------------------------------------------------------------------
$ ---- load SIMS data of annealed sample, and overlay with initial and simulation profiles
PROFILE IMPURITY=Ge IN.FILE=@GeAnnealed replace
SELECT Z=Ge
PLOT.1D ^CLEAR x.min=0.00 x.max=0.25 y.min=0 y.max=1.5e22 LINE.TYP=3 COLOR=1
PROFILE PHOSPHORUS IN.FILE=@PAnnealed replace
SELECT Z=LOG10(PHOSPHORUS)
PLOT.1D ^CLEAR x.min=0.00 x.max=0.25 y.min=16 y.max=20 LINE.TYP=3 COLOR=3
PROFILE IMPURITY=CARBON IN.FILE=@CAnnealed replace
SELECT Z=LOG10(CARBON)
PLOT.1D ^CLEAR x.min=0.00 x.max=0.25 y.min=16 y.max=20 LINE.TYP=3 COLOR=2
label x=0.14 y=17.5 label="Annealed SIMS" c.line=4 line.typ=1
label x=0.013 y=.4e22 label="SIMS data annealed" c.line=4 line.typ=1