math coord.ucs #设置 coord,ucs坐标系;coord,坐标;ucs,三维坐标系。
AdvancedCalibration #激活校准模型
AdvancedCalibrationMechanices #
SiGe_and_Stress_Effect 1 1 1 0 #
set mechanical parameters
source mechParams.fps
pdbSet 全局设置,修改参数
pdbSet Mechanics EtchDepoRelax 0 #这将关闭蚀刻和沉积步骤后的应力松弛,加速仿真.在无注入和扩散步骤时关闭
pdbSet Grid MGoals Keep3DBrep 0 #MGoals: 使用MGoals引擎设置网格参数, brep(boundary representation)
pdbSet Math flow 3D ILS.tolrel 1e-11 #ILS(Iterative Solver),迭代求解器;减少预处理残差
pdbSet Math flow 3D ILS.refine.sts 1 #提高应力求解迭代的收敛性convergence
set math section - ParDiso for mechanics and multi-thread simulation
设置Math相关选项 ParDiso系数求解器用于机械和多线程仿真
-math flow dim=3 pardosp numThreads=4
math numThreads=4
start with mgoal mode
从mgoal模式开始
sde off
structure parameters,[um] 结构参数
set Wt @Wtop@ ;#Fin top Width
set Wb @wbottom@;#Fin bottom Width
set W @<0.5*(Wtop+Wbottom)>@ ;#Fin average Width
set H @H@ ;# Fin height
set bHepi 0.014;#SD Epi shape
set L @L@ ;#Channel length 沟道长度
set Tox 0.0023 ;#栅极氧化层厚度
set Tiox 0.0006;#
set Thfo2 0.0014;#Gate high-k thickness 高K介质层厚度
set Lsp0 0.008;#Nitride spacer foot form to epi S/D
set Lsp1 0.0160 ;#Nitride spacer foot from gate to contach
set Ppitch 0.090;#Poly pith Polt间距
set Tgate 0.031;#Poly heith Poly高度
set Tsti 0.100 ;#STI tench depth STI沟槽深度
set Tsub 1.0;#衬底深度
set Tcesl 0.020;#Nitride on top of gate
set Tild 0.100 ;#ILD on top of gate
set Tnisi 0.005 ;#NiSi thickness 氮化硅厚度
set Fpitch 0.048;#Fin间距
set Lm0b 0.018;#contact length
set Lm0t 0.030 ;#contact diameter length接触孔直径
set Dcgt 0.032;Contatc diamerter top接触孔高度
set Dcgb 0.018;#contact diameter on top of gate
set Dcm0t 0.032;#Contact diameter top
set Dcm0b 0.021 ;#Contact diameter on top pf M0
set PY 0.050 ;#Gate extension栅极延申
set Fangle 55.0;#SD facet angle 角度
Doping parametet 参杂参数
set Nch @Nch@;#channel doping 沟道参杂
set Nsd 2.03e20 ;#源漏参杂
set Nstop @Nstop@ ;#Channel stop doping
if @type@==NMOS
set Esd 0.006
set Dch "Boron" ;硼
set Dsd "Phosphorus";磷
set Dstop "Arsenic" 砷
stress/strain input SD SiGe mole fraction 硅锗摩尔分数
set GeMoleFraction 0.5 ;
set iSMG 1.0;#pMos Metal gate stress[GpA] 金属应力
endif
set iSsti 1.0;#STI stress[GPa] STI应力
set iScont 1.0 ;#Contact/M0 stress 接触应力
-----------------------------------------------------
Derived dimensions 维度信息
set AX0 0.0
set AX1 [expr (0.5*$Ppitch)]
set Xmin AX1
set Ymin 0.0
-set Ymax [expr (0.5*
PY+0.010)]
set Ymax [expr (0.5*$Fpitch)]
set PX0 [expr (-0.5L)]
set PY0 [expr (-0.5PY)]
set PY1 [expr (0.5*PY)]
set SP0X0 [expr (Lsp0)]
set SP0X1 [expr (Lsp0)]
set SP0Y0 [expr (Lsp0)]
set SP0Y1 [expr (Lsp0)]
set SP1X0 [expr (Lsp1)]
set SP1X1 [expr (Lsp1)]
set SP1Y0 [expr (Lsp1)]
set SP1Y1 [expr (Lsp1)]
set Moft 0.014
set M0X0 [expr (0.5Lm0t)]
set M0X1 [expr (0.5Lm0t)]
set M0Y0 [expr (-0.5Moft)]
set M0Y1 [expr (0.5Moft)]
set M0X0b [expr (0.5Lm0b)]
set M0X1b [expr (0.5Lm0b)]
set M0Y0b [expr (-0.5Moft+0.5(
Lm0b))]
set M0Y1b [expr (0.5Moft-0.5(
Lm0b))]
set Hgate [expr (-1.0*(Tox))]
set Hcesl [expr (Tcesl)]
set Hild [expr (Tild)]
if @<Wbottom == Wtop>@
set Afin 90.0
set Afin0 90.0
else
set Afin [expr (180.0/3.14159265atan(Wb-
H/(0.5(
Wt))))]
endif
set Am0 [expr (180.0/3.14159265atan((Tgate+
tHepi)/(0.5(
Lm0b))))]
set Acg [expr (180.0/3.14159265atan((Tcesl)/(0.5(
Dcgb))))]
set Acm0 [expr (180.0/3.14159265*atan(Dcm0t-$Dcm0b))))]
-----------------------------------------------------
-----------------------------------------------------
---------------------------------------------------------------------#
SIMULATION CONTROLL
set debug 1
set DoStrain 1
set DoDiff 1
set DoRound 1
set Type @Type@
---------------------------------------------------------------------#
USER-DEFINED PROCEDURES
source user_proc.fps
proc WriteBND {} {
global count
if { $count < 10} {
struct tdr.bnd=n@node@_0${count}
} else {
struct tdr.bnd=n@node@_${count}
}
set count [expr $count+1]
}
set count 1
---------------------------------------------------------------------#
SetTDRList {Stress StressEL Dopants xMoleFraction} !Solutions
设置保存TDR格式文件时要包含的解决方案或术语名称列表。
SetTDRList [Dopants] [<solution/term names>] [Solutions]
将 stress stressEL Dopants xModelFraction都保存到tdr中
!Solution表示关闭所有默认保存(仅由名称指定的字段将保存到TDR文件中)。
line y loc=Ymax tag=front
line 指定网格线的位置和间距 loc 沿着所选轴定位的位置。 tag标签
line z loc=Xmax tag=right
line x loc=-0.15
line x loc=0 tag=top
line x loc=Tsub tag=bottom
region Silicon xlo=top xhi=bottom ylo=back yhi=front zlo=left zhi=right substrate
region 创建区域、标记基底(substrate)和更改区域材质。
Silicon 材料
xlo ylo zlo xhi yhi zhi:指定该区域的边界。<c>值必须是在前一行命令中创建的标记之一。
substrate 标记一个已命名的区域作为后续分析的基质。设置!substrate可清除衬底标签。如果未指定区域名称并设置了!substrate,则将清除所有衬底标记。
if "@sOri@" == "100" && "@cDir@" == "100"
init field=Boron concentration=1e15 wafer.orient = { 0 0 1 } flat.orient = { 1 0 0 }
elif "@sOri@" == "100" && "@cDir@" == "110"
init field=Boron concentration=1e15 wafer.orient = { 0 0 1 } flat.orient = { 1 1 0 }
elif "@sOri@" == "110" && "@cDir@" == "100"
init field=Boron concentration=1e15 wafer.orient = { 1 1 0 } flat.orient = { 0 0 1 }
elif "@sOri@" == "110" && "@cDir@" == "110"
init field=Boron concentration=1e15 wafer.orient = { 1 -1 0 } flat.orient = { 1 1 0 }
endif
refinement at interfaces 细化
mgoals accuracy=1e-6
pdbSet Grid SnMesh max.box.angle.3d 165
grid set.min.normal.size= 0.005
set.normal.growth.ratio.3d= 2
set.max.points= 10000000
refinebox interface.materials= {Silicon Polysilicon Oxide Nitride Oxynitride}
----- Mesh refinement -----##### 网格细化
DFISE -Z Y X
refinebox name=All
min= "-2.0 Xmin"
max= " 1.0 Xmax"
xrefine= 0.5 yrefine= L/2.0
set tYmin [expr (-2.0*W)]
DFISE -Z Y X
refinebox name=gSTI
min= "-0.05 Xmin"
max= " 0.10 Xmax"
xrefine= 0.01 yrefine= L/4.0
pdbSet InfoDefault 1
--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
----- FIN define -----FIN定义
set tAY0 [expr (-0.5*Wt)]
mask name=FIN left=tAY1 back=
AX1 negative
photo mask=FIN thickness=0.001
etch material=Silicon type=trapezoidal angle=Tsti
strip Photoresist
if { $debug } { WriteBND }
if { $DoRound } {
######################################################################################
----- Fin Corner Round Etch -----#####
----- Polyhedron is used to accurately control the fin Corner Rounding -----#####
----- Dummy polyhedron is overlapped with Si fin and removed. -----#####
----- Rounded fin is left. -----#####
set PI 3.14159265
set cR 0.0025 ;# Fin corner radius 圆角直径
-- Rounding is approximated by 4 edges. --##
-- Points for etch polyhedron 多面体 --##
set alpha [expr (90.0-0.5cR
set rY [expr (0.5cR/tan(
alpha))]
set nP 5
set dA [expr (nP-1))]
set tx0 [expr (Xmax+1.0)]
set theta [expr (0rX -
PI/180.0
rY +
PI/180.0
xv
tx0}
eval point name=pb0 coord= {yv
dA)]
set xv [expr (cRcos(
theta))]
set yv [expr (cRsin(
theta))]
eval point name=pf1 coord= {yv
xv
tx1}
set theta [expr (2rX -
PI/180.0
rY +
PI/180.0
xv
tx0}
eval point name=pb2 coord= {yv
dA)]
set xv [expr (cRcos(
theta))]
set yv [expr (cRsin(
theta))]
eval point name=pf3 coord= {yv
xv
tx1}
set theta [expr (4rX -
PI/180.0
rY +
PI/180.0
xv
tx0}
eval point name=pb4 coord= {yv
Tox 0.0
H 0.5
Tox
Tox 0.5
Tox
Tox 0.0
H 0.5
Tox
Tox 0.5*
Tox $tx1 }
point list
-- Polygons 多边形 for etch polyhedron多面体 --##
set tnP [expr (i <
i+1)]
set p0Name "pfj"
set p2Name "pbi"
set pLName "pLpLName points = {
p1Name
p3Name }
}
set p0Name "pftnP"
set pLName "pLpLName points = {
p1Name
p3Name }
set tnP [expr (tnP"
eval polygon name=p0Name
p2Name
nP+1)]
set p0Name "pf01"
set p1Name "pf00"
set p2Name "pb00"
set p3Name "pb01"
set pLName "pLpLName points = {
p1Name
p3Name }
set tnP [expr (tnP"
eval polygon name=p0Name
p2Name
nP+3)]
set pLName "pLpLName points = { pf0 pf1 pf2 pf3 pf4 pf11 pf01 pf00 }
set tnP [expr (tnP"
eval polygon name=$pLName points = { pb0 pb1 pb2 pb3 pb4 pb11 pb01 pb00 }
-- Etch polyhedron --##
polyhedron name= crEtch polygons = { pL0 pL1 pL2 pL3 pL4 pL5 pL6 pL7 pL8 pL9 } info=2
polyhedron list
insert polyhedron=crEtch replace.materials= { Silicon SiFin SiStop }
new.material=Oxynitride new.region=etchedDummy
PolyHedronClear
if { $debug } { WriteBND }
strip Oxynitride
if { $debug } { WriteBND }
######################################################################################
}
-- Define the channel stop region and the channel region for the convenience -##定义沟道停止区 和沟道区域
polyhedron name=sstop brick = { Ymin
Tsti
Xmax } info=2
polyhedron list
insert polyhedron=sstop replace.materials= { Silicon } new.material=SiStop new.region=ChStop#替换掉材料Silicon
point clear
polygon clear
polyhedron clear
if { $debug } { WriteBND }
polyhedron创建并存储三维多面体,以便以后与插入命令一起插入或与轮廓命令一起使用。
polyhedron name=sfin brick = { Ymin
H
Xmax } info=2
polyhedron list
insert polyhedron=sfin replace.materials= { Silicon SiStop } new.material=SiFin new.region=ChFin
point clear
polygon clear
polyhedron clear
if { $debug } { WriteBND }
----- Mesh refinement -----#####
set tYmin [expr (-2.0*W)]
DFISE -Z Y X
refinebox name=WellIIP0
min= " tYmin
H+0.006
Xmax"
xrefine= 0.005 yrefine= L/5.0
DFISE -Z Y X
refinebox name=WellIIP1
min= " tYmin
H+0.004
Xmax"
xrefine= 0.0005 yrefine= L/5.0
set tYmin [expr (-1.5*W)]
DFISE -Z Y X
refinebox name=STI
min= " 0.0 Xmin"
max= " tYmax
W yrefine= 0.1*
W
pdbSet InfoDefault 1
----- STI fill -----
if { $DoStrain } {
----- STI stressor -----
--- Calculate intrinsic stress 计算固有应力---------------------------------
set iS [expr (iS
iS
iS $iS }
淀积 氧化物(Oxide) coord填充坐标到H 区域名称 TRECH 应力掺杂
deposit Oxide type=fill coord=$H region.name=TRECH
doping= { SxxSTI SyySTI SzzSTI }
diffuse temp=600 time=1.0e-6<s> stress.relax
struct tdr=n@node@_sti !gas !interfaces alt.maternames
} else {
deposit Oxide type=fill coord=$H
}
if { $debug } { WriteBND }
----- Gate oxide -----栅极氧化层
etch Oxide type=isotropic thickness=1Tiox
deposit HfO2 type=isotropic thickness=1debug } { WriteBND }
- Remove thin layers in the non-active region (STI) for the mesh and the convergence 移除网格和收敛的非活动区域(STI)中的薄层
polyhedron name=sti brick= { Ymin-0.001
H+
Ymax+0.001
debug } { WriteBND }
----- Poly gate -----
polyhedron name=gp brick = { PY0
H+0.0005
PX1 } info=2
polyhedron list
insert polyhedron=gp replace.materials= {Gas } new.material=PolySilicon new.region=GatePoly
point clear
polygon clear
polyhedron clear
if { $debug } { WriteBND }
----- spacer0 -----
polyhedron name=gp brick = { SP0Y0
H+0.0005
SP0X1 } info=2
polyhedron list
insert polyhedron=gp replace.materials= { Gas } new.material=LowK new.region=Spacer0
point clear
polygon clear
polyhedron clear
if { $debug } { WriteBND }
----- Mesh refinement -----#####
set tAY0 [expr (-0.5*Wb+0.010)]
DFISE -Z Y X
refinebox name=Active
min= "-0.012 AX0"
max= " tAY1 $AX1"
xrefine= 0.002 yrefine= 0.002 zrefine= 0.002
set tAY0 [expr (-0.5Wb+0.002)]
set tspx0 [expr (-0.5Lsp1-0.005)]
set tspx1 [expr (0.5*Lsp1+0.005)]
DFISE -Z Y X
refinebox name=Channel
min= "-0.004 tspx0"
max= " tAY1 $tspx1"
xrefine= 0.001 yrefine= 0.001 zrefine= 0.001
set tAY0 [expr (-0.5Wb+0.002)]
set tpx0 [expr (-0.5L+0.002)]
DFISE -Z Y X
refinebox name=cChannel
min= "-0.002 tpx0"
max= " tAY1 $tpx1"
xrefine= 0.001 yrefine= 0.001 zrefine= 0.0005
----- Generate S/D SiGe epi shape using polyhedron command -----
set tx0 [expr (0.5*Lsp0-0.0000)]
set tx1 [expr (L-$Lsp0+0.0000)]
- Etch out the silicon source/drain region
if "@Type@" == "pMOS"
polyhedron name=dummy brick= { Ymin-0.001
H+0.0001
tx1 }
polyhedron list
insert polyhedron=dummy replace.materials= { HfO2 GATEox SiFin }
new.material=Oxynitride new.region=SDetchDummy
PolyHedronClear
strip Oxynitride
set tx0 [expr (0.5Lsp0-
Ppitch-0.5
Lsp0+
Hild
tx0
Ymax+0.001 $tx1 }
polyhedron list
insert polyhedron=dummy replace.materials= { SiFin }
new.material=Oxynitride new.region=SDetchDummy
PolyHedronClear
strip Oxynitride
else
polyhedron name=dummy brick= { Ymin-0.001
H+0.0001
tx1 }
polyhedron list
insert polyhedron=dummy replace.materials= { HfO2 GATEox }
new.material=Oxynitride new.region=SDetchDummy
PolyHedronClear
strip Oxynitride
endif
if { $debug } { WriteBND }
- SiGe or SiC source/drain generation
set th [expr ($H+0.0001)]
if "@Type@" == "pMOS"
set ty0 [expr (-0.5*Wb)]
else
set ty0 [expr (-0.5Tox)]
set ty1 [expr (0.5Tox)]
endif
if "@Type@" == "pMOS"
- Fill SiGe epi under Gate Stack.
set tx0 [expr (0.5Lsp0-
L+
Wb-0.0001)]
set ty1 [expr (0.5Tox)]
polyhedron name=sigeUG brick= { ty0
th
tx1 }
polyhedron list
insert polyhedron=sigeUG replace.materials= { Gas }
new.material=SiGeSD new.region=SDepi
PolyHedronClear
- Call the SiGe epi polyhedron generation procedure
set tx0 [expr (0.5*Lsp0-0.0002)]
set tx1 [expr (L-$Lsp0+0.0002)]
EpitaxySD sd tx1
ty1
bHepi
tHepi
mLepi
Fangle
polyhedron list
insert polyhedron=sd replace.materials= { Gas }
new.material=SiGeSD new.region=SDepi
PolyHedronClear
else
- SiC source/drain generation
set tx0 [expr (0.5Lsp0-
Ppitch-0.5
Lsp0+0.0000)]
polyhedron name=sd brick= { ty0
H+0.0001
tx1 }
polyhedron list
insert polyhedron=sd replace.materials= { SiFin }
new.material=SiSD new.region=SDepi
PolyHedronClear
endif
if { $debug } { WriteBND }
if { $DoStrain } {
------------------------------------------------------------------------------------
----- S/D stressor -----
--- Assign intrinsic stress to S/D SiGe epi ---------------------------------
if "@Type@" == "nMOS"
--- Calculate intrinsic stress from C Mole fraction ---------------------------------
--- C11=165.7GPa C12=63.9GPa C44=79.6GPa for Silicon - 2% C negiligible
set iS [expr (1.0 * ( 165.7 + 2 * 63.9 ) * 1e9 * 0.449 * iS<Pa> syyi=
iS<Pa>
else
set Nge [expr (Nge name=Germanium store
endif
diffuse temp=600 time=1.0e-6<s> stress.relax
struct tdr=n@node@_SDepi !gas !interfaces alt.maternames
}
----- spacer1 -----
polyhedron name=gp brick = { SP1Y0
H+0.0005
SP1X1 } info=2
polyhedron list
insert polyhedron=gp replace.materials= { Gas } new.material=LowK new.region=Spacer1
point clear
polygon clear
polyhedron clear
if { $debug } { WriteBND }
----- ILD fill ----- 层间介质填充
set tHgate [expr (tHgate region.name=ILDg
if { $debug } { WriteBND }
----- Poly Gate Removal -----去除PolyGateRemoval
strip PolySilicon
if { $debug } { WriteBND }
if { $DoStrain } {
--- Stress Rebalance after gate removal ---------------------------------
diffuse temp=600 time=1.0e-6<s> stress.relax
struct tdr=n@node@_GateRemoval !gas !interfaces alt.maternames
}
------------------------------------------------------------------------------------
----- Assign doping profile -----
if { Nch name=$Dch store
sel SiStop z=Dstop store
if "@Type@" == "nMOS"
sel SiSD z=Dsd store
else
sel SiGeSD z=Dsd store
endif
diffuse temp=1000 time=100.0e-3<s> stress.relax
struct tdr=n@node@_Doping !gas !interfaces alt.maternames
}
------------------------------------------------------------------------------------
----- Metal Gate Deposition -----金属栅淀积
if { $DoStrain } {
--- Calculate intrinsic stress ---------------------------------计算固有应力
set iS [expr (iS
iS
iS $iS }
set tHgate [expr (tHgate region.name=GateMetal
doping= { SxxMG SyyMG SzzMG }
淀积钨
diffuse temp=600 time=1.0e-6<s> stress.relax
struct tdr=n@node@_MG !gas !interfaces alt.maternames
} else {
deposit material=Tungsten type=fill coord= $tHgate region.name=GateMetal
}
if { $debug } { WriteBND }
----- CESL depo -----接触蚀刻停止层
deposit Nitride type=fill coord=debug } { WriteBND }
if 0
set tHcesl [expr (H+0.0001)]
----- M0 fill -----金属填充
set tTPs [list [list M0Y0
tHcesl
M0X1] [list
M0Y1
tHcesl
M0X0]]
set tBPs [list [list M0Y0b
tH
M0X1b] [list
M0Y1b
tH
M0X0b]]
HexaHedron m0 tBPs
polyhedron list
insert polyhedron=m0 replace.materials= { Nitride LowK Gas }
new.material=Tungsten new.region=M0
PolyHedronClear
if { $debug } { WriteBND }
if { $DoStrain } {
----- Via Metal Deposition -----
--- Calculate intrinsic stress ---------------------------------
set iS [expr (iS syyi=
iS
diffuse temp=600 time=1.0e-6<s> stress.relax
struct tdr=n@node@_VIA !gas !interfaces alt.maternames
}
if { $debug } { WriteBND }
endif
----- M0 fill -----
set tMh [expr (Hcesl)]
set tMx [expr (0.5(Lm0b))]
set Avia [expr (180.0/3.14159265atan(tMx))]
polygon name=viaLayout min= { M0X0 } max= {
M0X1 } rectangle
mask name=VIA polygons= {viaLayout}
photo mask=VIA thickness=0.001
etch material= {Nitride LowK} type=trapezoidal angle=Tsti
strip Photoresist
mask clear
polygon clear
if { $debug } { WriteBND }
if { $DoDiff } {
----- Via Metal Deposition -----
--- Calculate intrinsic stress ---------------------------------
set iS [expr (iS
iS
iS $iS }
deposit Tungsten type=fill coord=$Hcesl+0.001 region.name=M0 doping= { SxxM0 SyyM0 SzzM0 }
diffuse temp=600<C> time=1.0e-6<s> stress.relax
-struct tdr=n@node@_M0 !gas !interfaces alt.maternames
} else {
deposit Tungsten type=fill coord=debug } { WriteBND }
----- ILD -----
deposit LowK type=fill coord=debug } { WriteBND }
----- Cone VIA -----
----- VIA to metal gate and fill tungsten into VIA -----
set tX0 $AX0
-set tY0 [expr (
PY)]
set tY0 0.0
set POINTSg [GetCirclePoints tY0
POINTSg}
mask name=VIAtoG polygons= {VIAg} !negative
photo mask=VIAtoG thickness=0.001
if { Acg thickness=2
Acg thickness=2$Tcesl
strip Photoresist
polygon list
point clear
polygon clear
polyhedron clear
if { $debug } { WriteBND }
deposit Tungsten type=fill coord=debug } { WriteBND }
----- VIA to source/drain and fill tungsten into VIA -----
set tX0 [expr (0.5*tX0
Dcm0t]
eval polygon name=VIAm0 points= {$POINTSm0}
mask name=VIAtoM0 polygons= {VIAm0} !negative
photo mask=VIAtoM0 thickness=0.001
if { Acm0 thickness=2*$Tild
strip Photoresist
polygon list
point clear
polygon clear
polyhedron clear
if { $debug } { WriteBND }
deposit Tungsten type=fill coord=debug } { WriteBND }
diffuse temp=600 time=1.0e-6<s> stress.relax
----- Save TDR file -----
struct tdr=n@node@_profile_q !gas !interfaces !alt.maternames
----- Reflect the structure to the channel direction -----
----- Both source and drain are in the structure -----
transform reflect back
if { $debug } { WriteBND }
----- Save TDR file -----
struct tdr=n@node@_profile !gas !interfaces !alt.maternames
-#----- Reflect the structure to the fin width direction -----
-#----- Whole fin (not the half fin) is there -----
-transform reflect left
-if { $debug } { WriteBND }
----- Contact for sdevice simulation -----
contact bottom name=substrate Silicon
contact point replace region=GateMetal name=gate
contact point replace region=M0.1 name=source
contact point replace region=M0.2 name=drain
if { $debug } { WriteBND }
--Change refinement strategy and remesh-------------------------------
---------------Remeshing for device simulation--------##
clear the process simulation mesh
refinebox clear
refinebox !keep.lines
refinebox clear.interface.mats
line clear
pdbSet Grid MGoals Keep3DBrep 0
Set very high values for adaptive meshing parameters
pdbSet Grid AdaptiveField Refine.Abs.Error 1e37
pdbSet Grid AdaptiveField Refine.Rel.Error 1e10
pdbSet Grid AdaptiveField Refine.Target.Length 100.0
Set high quality delaunay meshes
pdbSet Grid sMesh 1
pdbSet Grid SnMesh CoplanarityAngle 179
pdbSet Grid SnMesh MaxPoints 500000
pdbSet Grid SnMesh MaxNeighborRatio 1e6
Set the interface spacing
mgoals accuracy=1e-6
pdbSet Grid SnMesh max.box.angle.3d 179
grid Adaptive set.Delaunay.type= boxmethod
set.min.normal.size= 0.01
set.normal.growth.ratio.3d= 8.0
set.max.points= 500000
set.max.neighbor.ratio= 1e6
Which interfaces are to have interface meshes
refinebox interface.materials = {Silicon}
refinebox interface.materials= {Silicon SiFin GATEox Oxide HfO2}
----- Mesh refinement -----#####
set Ymax [expr (0.5PY+0.010)]
set Ymin [expr (-1.0AX1
set Xmin [expr (-1.0*$Xmax)]
DFISE -Z Y X
refinebox name=eAll
min= "-2.0 Xmin"
max= " 1.0 Xmax"
xrefine= 0.5 yrefine= 2.0*L
set tYmin [expr (-1.0*Wb)]
DFISE -Z Y X
refinebox name=eSTI
min= "-0.05 Xmin"
max= " 0.12 Xmax"
xrefine= 0.01 yrefine= 0.01 zrefine= 0.01
set tAY0 [expr (-0.5*Wb+0.005)]
DFISE -Z Y X
refinebox name=eActive \
- min= "-0.012
SP1X0-0.005" \
- max= "
tAY1 $SP1X1+0.005" \
min= "-0.012 $tAY0 $Xmin" \
max= " $H+0.010 $tAY1 $Xmax" \
xrefine= 0.005 yrefine= 0.005 zrefine= 0.005
set tAY0 [expr (-0.5*Wb+0.002)]
DFISE -Z Y X
refinebox name=e0Active
min= "-0.004 SP1X0-0.000"
max= " tAY1 $SP1X1+0.000"
xrefine= 0.002 yrefine= 0.002 zrefine= 0.002
set tAY0 [expr (-0.5*Wb+0.001)]
DFISE -Z Y X
refinebox name=eChannel
min= "-0.001 SP0X0-0.000"
max= " tAY1 $SP0X1+0.000"
xrefine= 0.001 yrefine= 0.001 zrefine= 0.002
set tAY0 [expr (-0.5*Wb+0.000)]
DFISE -Z Y X
refinebox name=eRChannel
min= "-0.000 PX1-0.000"
max= " tAY1
tAY0
H+0.000
PX0+0.000"
xrefine= 0.001 yrefine= 0.001 zrefine= 0.001
pdbSet InfoDefault 1
refinebox remesh info=2
----- Save TDR file -----
struct tdr=n@node@_e !gas interfaces alt.maternames
exit