Silvaco 学习笔记——循环:sweep

      上一次讲的loop循环适合在一次仿真中对某一相似行为进行多次计算,适合于一次仿真多次计算的情况。

     但是,我们往往遇到要对器件进行优化设计,此时可能要研究某些参数,如厚度、掺杂浓度等对器件性能的影响时,就需要多次进行仿真。每次仿真后手动更改参数非常麻烦,此时在Silvaco中可以通过循环的方法自动更改参数值。 方法是书写两个文件比如file1.in 、file1_loop.in,在file1.in中先将参数设定为某一定值,在file1_loop.in中利用sweep对该参数进行更改。

1.sweep语法:

sweep parameter=<param1> type=<linear|power> range="start, stop, num" \
parameter=<param2> type=<list> data="list, of, ..., points" \
[linked=<param3> type=<sweep_type> range="range"]

1)parameter: 参数 param1等应该是一个变量,而且不能用缩写的形式。

2)type: 有三种,liner, power, list. liner和power 后面使用 range列出开始值,结束值及总共的数目、list后面用data来列出一系列分立的值,如 1,2 ,3等。

3)用parameter定义的参数与其他parameter定义的参数是相互独立的。比如:

sweep parameter=x type=linear range="1,3,3" \
parameter=y type=linear range="10,30,3"

x的值为1,2,3;y的值为10,20,30.这样将产生9组数据 ( 1,10 ), ( 2,10 ), ( 3,10 ), ( 1,20 ), ( 2,20 ), ( 3,20 ), ( 1,30 ), ( 2,30 ), ( 3,30 ).

4)使用liked命令定义的任何参数都与前面的参数绑定在一起,比如:

sweep parameter=x type=linear range="1,3,3" \
linked=y type=linear range="10,30,3"

将产生 (1,10), (2,20), (3,30)三组数据。下列更复杂的语句进一步说明liked的功能

sweep parameter=A type=linear range="1,3,3" \
linked=B type=linear range="1,2,2" \
linked=C type=linear range="1,4,4"

在上面的语法中,A被定义为值(1,2,3)。B被定义为值(1,2)。C被定义为值(1,2,3,4)。但本实验以参数A为控制参数,将包含(1,1,1)、(2,2,2)、(3,2,3)三次试验。B的最终值是2,然后一直保持不变而C的最终值永远不会达到。

2. 循环的使用(以官方organicex03 为例说明)

1)在organicex03_1.in (主文件)文件中对要更改的变量用set语句进行设置,如:

set doping=1e18
set gamma=3.3e7

上述语句中设置了两个变量 doping、gama

2)在organicex03.in(循环计算文件,计算控制文件)中采用如下语法进行循环计算和保存结果

go internal

load infile=organicex03_1.in

sweep parameter=doping type=power range="1e17, 1e23, 14" \
      parameter=gamma type=linear range="2.5e7, 3.5e7, 3"

save type=sdb outfile=organicex03.dat

tonyplot organicex03.dat -set organicex03.set

quit

其中:

  • go internal命令,将控制从当前的模拟器(即Atlas)转移到DBInternal. 
  • load命令指定要多次运行的模板文件。
  • sweep命令指定如何修改模板文件中设置的变量。在本例中,变量 doping从1e17到1e23,变量gamma从2.5e7到3.5e7。模拟次数设置为14*3=42次。
  • save命令告诉DBInternal将所有organicex03_1.in文件中extract语句中生成的数据整理到文件“organicex03.dat”中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值