本文目录

1.注入时候的adaptive mesh

2.注入前加refinebox还是注入后refinebox


1.注入时候的adaptive mesh

image.png

Adaptive mesh是在注入的时候根据需要,自动添加网格

但是注入的时候,注入之前我们是不知道将来浓度会怎么分布的,所以adaptive mesh在注入前就会预先定义好网格

(在代码靠前位置添加一行 pdbSet Grid Adaptive 1 全局开启,也可以在implant语句那一行里添加adaptive参数,来让这一行的注入启用adaptive mesh)


开启和不开启adaptive mesh的区别

注入前的网格长这样:
image.png


然后进行了一次注入 dose=4e13 energy= 80
注入之后的形貌(左边未开启adaptive,右边开启了)
image.png


浓度分布:绿色、有黑点的曲线是开了adaptive的,可以看到曲线更丝滑,掺杂也更准确
image.png

这一部分的代码

line x location= 0.0      spacing= @spac@  tag=SiTop                              
line x location= 6.0<um>  spacing= @spac@  tag=SiBottom                      

line y location=-6.0       spacing=@spac@  tag=Mid         
line y location=6<um>  spacing=@spac@  tag=Right       
region Silicon xlo=SiTop xhi=SiBottom ylo=Mid yhi=Right

#if [string compare @adaptive@ "on"] == 0
pdbSet Grid Adaptive 1
#endif
init concentration=1.0e+15<cm-3> field=Phosphorus
mask name= mask1 segments= {-7 -1 1 7}
implant  Boron  dose=4e13<cm-2>  energy= 80<keV> tilt=0 rotation=0  mask= mask1

2.注入前加refinebox还是注入后refinebox

既然有了自动规划网格,还需要在注入前手动添加refinebox吗?
注入之后添加refinebox可以吗?


实际测试

注入前的网格长这样:
image.png


注入之后的,好像看不出来太大区别
image.png


看一下doping
image.png

首先可以确定
红色线(开启adaptive并在注入之前添加网格)是最顺滑最“合理”的。
绿色线和蓝色线重合了。
右图是只开启了adaptive,完成注入后的分布
中图是只开启了adaptive,完成注入后的分布,再添加了更多的网格进行remesh
对比中图和右图,黑色的点是采样点,也就是有网格的点。
中图虽然采样点多了,但是多出来的点,其实在在右图数据点的基础上,插值计算而来的;也就是“猜”出来的,记录的并非实际分布。

就像一张jpg照片(红色线),我们对它进行了有损压缩,分辨率降低了,压缩过程中舍弃掉了一些数据(右图蓝色线)。然后又用软件来增大分辨率,虽然分辨率确实多了(中图绿色线),但多出来的只是根据左右数据点猜出来的,实际在压缩过程中丢失掉的数据再也没有办法找回来了

这部分代码

line x location= 0.0      spacing= @spac@  tag=SiTop                              
line x location= 6.0<um>  spacing= @spac@  tag=SiBottom                      

line y location=-6.0       spacing=@spac@  tag=Mid         
line y location=6<um>  spacing=@spac@  tag=Right       
region Silicon xlo=SiTop xhi=SiBottom ylo=Mid yhi=Right
pdbSet Grid Adaptive 1
init concentration=1.0e+15<cm-3> field=Phosphorus
mask name= mask1 segments= {-7 -1 1 7}

#if [string compare @mesh@ "before"] == 0
refinebox clear 
refinebox Silicon min= {0 -3} max= {2.5 3} xrefine= {@spac@/10} yrefine= {@spac@/10} add
refinebox remesh
#endif
##implant  Boron  dose=2.0e13<cm-2>  energy=200<keV> tilt=0 rotation=0  mask= mask1
implant  Boron  dose=4e13<cm-2>  energy= 80<keV> tilt=0 rotation=0  mask= mask1
##implant  Boron  dose=2.0e12<cm-2>  energy= 25<keV> tilt=0 rotation=0  mask= mask1
#if [string compare @mesh@ "after"] == 0
refinebox clear 
refinebox Silicon min= {0 -3} max= {2.5 3} xrefine= {@spac@/10} yrefine= {@spac@/10} add
refinebox remesh
#endif
diffuse time=0 temperature= 1000 N2

struct tdr=@tdr@

结论:
adaptive可以自动改善注入过程中的网格,但是还是最好在注入前手动添加网格

如果我已经手动添加了“足够密”的网格,那还有必要开启adaptive mesh吗?
最好开始开,我在没开adaptive的情况下加refinebox,遇到了奇怪的bug……


项目DOE,
左边sprocess一直开启adaptive,右边根据on和off调整
spac表示spacing
Mesh:
before是在注入前加refinebox
after是在注入后加refinebox
no则不加refinebox
image.png

发表评论

电子邮件地址不会被公开。 必填项已用*标注