24小时热门版块排行榜    

查看: 702  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xingfendou

新虫 (初入文坛)

[求助] 用fortran编写的GaAs MESFET求电流不收敛

用fortran语言编写的GaAs MESFET求电流不收敛,但是我认为电荷分配,求电场,散射率,散射机制的选择等都对,就是求的电流不收敛,还有正有负,我已经找了一个月的错误都没找到,求高手指点!
if (iter.gt.itermax-itervel+1) then
         curtot=0.
         do 1130 i=1,iycur
            curtot=curtot+(0.9*charge1(i)+0.1*charge2(i))*
     #                    (0.9*velx1(i)+0.1*velx2(i))
           curtot=curtot+charge2(i)*velx2(i)
1130     continue
         curtot=curtot*constcur
         write(41,*)curtot
      endif
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zeppe

金虫 (小有名气)

【答案】应助回帖

★ ★ ★
xingfendou: 金币+3, 有帮助 2013-05-05 11:43:33
引用回帖:
5楼: Originally posted by xingfendou at 2013-05-03 12:23:15
电流的收敛应该是由电势,电场,漂移速度的结果引起的,整个程序太大了,但是我感觉应该是小问题,就是不知道到底错哪了...

可以试试用比较简单的能知道每一步该出什么结果的例子测试,在过程中加几个断点调试一下,看在哪个部分出错了,然后再对那个部分的程序进行调试检查。
6楼2013-05-03 13:10:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

夕阳西下

金虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
do 1130 i=1,iycur
没有判断收敛的条件啊
2楼2013-05-03 11:22:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zeppe

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
从选择条件 if (iter.gt.itermax-itervel+1) then 来看,只判断了迭代次数,可能还需要加上某个值小于容许误差。
3楼2013-05-03 11:57:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xingfendou

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 夕阳西下 at 2013-05-03 11:22:35
do 1130 i=1,iycur
没有判断收敛的条件啊

求收敛的条件在求电势(迭代求泊松方程)中,之后求电场,再求漂移速度,然后才求电流,电势和电场分布还行,漂移速度分布大致还行,但是很有毛刺,这是老师给的一程序,有点老了,真的很想做出来
4楼2013-05-03 12:16:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见