go atlas
mesh cylindrical
set name=diodeex02_eb
set radius=300
set sub_thick=1000
# ========== 第一步:先定义网格(必须最先) ==========
x.mesh loc=0.0 spac=0.5
x.mesh loc=50.0 spac=2.0
x.mesh loc=300.0 spac=10.0
y.mesh loc=0.0 spac=0.1
y.mesh loc=0.1 spac=0.5
y.mesh loc=1.0 spac=1.0
y.mesh loc=10.0 spac=5.0
y.mesh loc=1000.0 spac=50.0
# ========== 第二步:定义区域(纯数字坐标,无任何语法冲突) ==========
region num=1 user.material=Au y.min=0.00 y.max=0.06
region num=2 material=Ni y.min=0.06 y.max=0.08
region num=3 user.material=Ga2O3 y.min=0.08 y.max=999.90
region num=4 material=Ti y.min=999.90 y.max=999.915
region num=5 material=Al y.min=999.915 y.max=999.995
region num=6 material=Ni y.min=999.995 y.max=999.999
region num=7 user.material=Au y.min=999.999 y.max=1000.0
# ========== 第三步:掺杂(绑定区域3) ==========
doping uniform conc=1.5e17 n.type region=3
# ========== 第四步:定义电极(核心!用最简语法,强制绑定区域) ==========
# 阳极anode:直接绑定区域2(Ni层),不用复杂坐标,100%识别
electrode num=2 name=anode material=Ni
# 阴极cathode:直接绑定区域7(Au背电极层),100%识别
electrode num=7 name=cathode user.material=Au
# ========== 第五步:温度接触(绑定电极名) ==========
thermcontact num=2 name=anode temp=300
thermcontact num=7 name=cathode temp=300
# ========== 第六步:接触属性(补全,保证电流导通) ==========
contact name=anode workfunction=4.9
contact name=cathode
# ========== 第七步:自定义材料(匹配官方示例) ==========
material material=Ga2O3 user.default=GaN user.group=semiconductor \
eg300=4.8 permittivity=10 mun=50 mup=5 nc=3.7e18 \
nv=1.8e19 taun=1e-8 taup=1e-8 affinity=4.0
material material=Au user.default=gold workfunction=5.1
# ========== 第八步:模型+求解器 ==========
models srh fldmob fermi lat.temp
method newton autonr climit=1e-4 maxtrap=10
# ========== 第九步:求解(100%识别anode电极) ==========
solve init
log outfile=diodeex02_eb.log
# 正向扫描:name=anode 与electrode name=anode完全匹配
solve vanode=0.0 vstep=0.1 vfinal=2.0 compl=1e-8
# 反向扫描
solve vanode=0.0 vstep=-2.0 vfinal=-50.0 compl=1e-8
log off
# 辐照后求解
material material=Ga2O3 mun=25 taun=1e-9
log outfile=irradiated.log
solve vanode=0.0 vstep=0.1 vfinal=2.0 compl=1e-8
log off
save outf=diodeex02_eb.str
quit
程序报错,且输出的log文件为空

输出的log文件为空
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
檀越@新空间 2026-04-03 16:04关注下午好🌅🌅🌅
本答案参考通义千问根据你提供的代码和错误信息,我们分析问题并提供解决方案。从你的描述来看,程序运行时输出的log文件为空,并且出现了报错,这通常意味着:
- 代码中存在语法错误或逻辑错误
- 某些命令未被正确识别或执行
- 日志文件路径或权限问题
一、主要问题分析
1. log outfile=diodeex02_eb.log
此命令用于设置日志文件名。但根据你提供的截图,可能没有正确执行这个命令,导致输出日志为空。
2. solve vanode=0.0 vstep=0.1 vfinal=2.0 compl=1e-8
在
solve命令中,vanode指的是阳极电位,但在代码中你定义了电极名为anode,而没有定义vanode。因此,模型无法识别vanode参数,导致求解失败。3. contact name=cathode
该命令缺少参数,如
workfunction,可能导致求解器报错。4. material material=Au user.default=gold workfunction=5.1
此处
user.default=gold可能不被支持,建议使用标准材料名称(如Au)。
二、修改后的代码(重点部分已加粗)
# ========== 第一步:先定义网格(必须最先) ========== x.mesh loc=0.0 spac=0.5 x.mesh loc=50.0 spac=2.0 x.mesh loc=300.0 spac=10.0 y.mesh loc=0.0 spac=0.1 y.mesh loc=0.1 spac=0.5 y.mesh loc=1.0 spac=1.0 y.mesh loc=10.0 spac=5.0 y.mesh loc=1000.0 spac=50.0 # ========== 第二步:定义区域(纯数字坐标,无任何语法冲突) ========== region num=1 user.material=Au y.min=0.00 y.max=0.06 region num=2 material=Ni y.min=0.06 y.max=0.08 region num=3 user.material=Ga2O3 y.min=0.08 y.max=999.90 region num=4 material=Ti y.min=999.90 y.max=999.915 region num=5 material=Al y.min=999.915 y.max=999.995 region num=6 material=Ni y.min=999.995 y.max=999.999 region num=7 user.material=Au y.min=999.999 y.max=1000.0 # ========== 第三步:掺杂(绑定区域3) ========== doping uniform conc=1.5e17 n.type region=3 # ========== 第四步:定义电极(核心!用最简语法,强制绑定区域) ========== electrode num=2 name=anode material=Ni electrode num=7 name=cathode user.material=Au # ========== 第五步:温度接触(绑定电极名) ========== thermcontact num=2 name=anode temp=300 thermcontact num=7 name=cathode temp=300 # ========== 第六步:接触属性(补全,保证电流导通) ========== contact name=anode workfunction=4.9 **contact name=cathode workfunction=5.1** # 补充缺失参数 # ========== 第七步:自定义材料(匹配官方示例) ========== material material=Ga2O3 user.default=GaN user.group=semiconductor \ eg300=4.8 permittivity=10 mun=50 mup=5 nc=3.7e18 \ nv=1.8e19 taun=1e-8 taup=1e-8 affinity=4.0 **material material=Au user.default=Au workfunction=5.1** # 修改为标准材料 # ========== 第八步:模型+求解器 ========== models srh fldmob fermi lat.temp method newton autonr climit=1e-4 maxtrap=10 # ========== 第九步:求解(100%识别anode电极) ========== solve init **log outfile=diodeex02_eb.log** # 确保此命令在 solve 之前执行 # 正向扫描:name=anode 与electrode name=anode完全匹配 **solve voltage=0.0 vstep=0.1 vfinal=2.0 compl=1e-8** # 使用 'voltage' 而不是 'vanode' # 反向扫描 **solve voltage=0.0 vstep=-2.0 vfinal=-50.0 compl=1e-8** log off # 辐照后求解 material material=Ga2O3 mun=25 taun=1e-9 **log outfile=irradiated.log** # 确保此命令在 solve 之前执行 solve voltage=0.0 vstep=0.1 vfinal=2.0 compl=1e-8 log off save outf=diodeex02_eb.str quit
三、关键修改点总结
- 将
vanode改为voltage,因为solve命令中应使用voltage来指定电极电压。 - 补充
contact name=cathode的workfunction,避免求解器报错。 - 修正
material=Au的定义,使用标准材料名称。 - 确保
log outfile=xxx.log在solve前执行,否则日志不会被记录。 - 检查文件路径是否可写,确保程序有权限生成
.log文件。
四、推荐操作步骤
- 将上述修改后的代码保存为
.str文件(例如:diodeex02_eb_modified.str)。 - 在 Go Atlas 中加载并运行该脚本。
- 检查输出目录中是否有
diodeex02_eb.log和irradiated.log文件。 - 如果仍有错误,请检查 Go Atlas 的控制台输出,查看具体错误信息。
如有需要,我可以进一步帮助你分析具体的错误日志内容。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报