【求助】coef上一迭代的值
请斑竹帮我看一下为什么coef中的上一迭代的值传不到子程序里,非常感谢!!defi
disp po,pc
coor x,y
coef pon,pcn
mate poro;T;API;pb;zdf;gmw;pd;alfa;beta;sor;elamda;tcvt; \
0.33;68;10;2500;0.95;30;20;3.0;2.0;0.2;10;4.3946E-6;
shap %1 %2
gaus %3
vect x x y
vect pk 10000*tcvt 10000*tcvt
stif
$cv fpo=pon
$cv fpc=pcn
$c6 call calcoef(pg,so,sg,bo,bg,rso,rsopo,
$c0 & bopo,bgpg,sopc,pkro,pkrg,vsco,vscg,
$c0 & prmt,fpo,fpc)
$c6 porocf=(poro**3)/(1-poro)**2
$c6 a1=porocf*pkro/(bo*vsco)
$c6 b1=porocf*(rso*pkro/(bo*vsco)+pkrg/(bg*vscg))
$c6 c1=porocf*pkrg/(bg*vscg)
$c6 a2=poro*bopo*so
$c6 b2=poro*sopc/bo
$c6 c2=(rso*bopo+rsopo/bo)*poro*so+poro*sg*bgpg
$c6 d2=poro*(rso/bo-1/bg)*sopc+poro*sg*bgpg
dist=+*pk_i*a1
+*pk_i*b1
+*pk_i*c1
mass
dist=+*a2+*b2+*c2+*d2
load=+*0.0
end
回复: 【求助】coef上一迭代的值
我的nfe 算法就是nparb,里面的coef项是 coef U,我觉得不用改,请斑竹指点,万分感谢!!回复: 【求助】coef上一迭代的值
以下是第一次执行e元件后的结果,可以看出u1(初时值)是对的,但是u(第一次迭代的值)全为0,这是不是说明coef的值没有传过来?谢谢指点!!KNODE,KDGOF,KVAR,KCOOR,KELEM =
606 2 1212 32000000
TMAX,DT,TIME,IT = 3.000000000000000 1.000000000000000
1.000000000000000 1
K = 8
MMATE = 1 NMATE = 12
EMATE =
0.33E+00 0.68E+02 0.10E+02 0.25E+04 0.95E+00 0.30E+02 0.20E+02 0.30E+01
0.20E+01 0.20E+00 0.10E+02 0.44E-05
SIN_SOLVER .... MAXA = 20262
n ue v u u1
1 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
2 NaN NaN 0.00000E+00 0.35000E+04
3 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
4 NaN NaN 0.00000E+00 0.35000E+04
5 NaN NaN 0.00000E+00 0.35000E+04
6 NaN NaN 0.00000E+00 0.35000E+04
7 NaN NaN 0.00000E+00 0.35000E+04
8 NaN NaN 0.00000E+00 0.35000E+04
9 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
10 NaN NaN 0.00000E+00 0.35000E+04
11 NaN NaN 0.00000E+00 0.35000E+04
12 NaN NaN 0.00000E+00 0.35000E+04
13 NaN NaN 0.00000E+00 0.35000E+04
14 NaN NaN 0.00000E+00 0.35000E+04
15 NaN NaN 0.00000E+00 0.35000E+04
16 NaN NaN 0.00000E+00 0.35000E+04
17 NaN NaN 0.00000E+00 0.35000E+04
回复: 【求助】coef上一迭代的值
在批命令文件开始加上copy disp1 disp2
回复: 【求助】coef上一迭代的值
能不能光在pde或nfe文件里改?我做了教材中的非稳态热传导例子,没有问题的,其实我的这个问题跟它是一样的,我也按照例子的方法作?为什么就得不到结果?回复: 【求助】coef上一迭代的值
你看看你的PDE文件中,如果pcn,on为0是否会出错。比如除零,那你加个判断,快是零时
,给他个小数,试试??
回复: 【求助】coef上一迭代的值
问题有所改善,但是还是有点问题,第二次结果显示sqrt错误,(我的子程序里没有用到sqrt),我有点好奇,nfe中显示输出的结果是三个矢量,每个矢量有两个值,为什么实际现实的只有一个(po)?还有子程序中用到的mate参数,能不能直接用prmt代替?谢谢
非常感谢seeksilence, billget的指点,进步神速!!
回复: 【求助】coef上一迭代的值
找到疑点,第一次迭代后ue(差值)还很大,为什么就推出迭代了?因此才有上面的错误。n ue v u u1
1 -0.35000E+04 0.00000E+00 0.35000E+04 0.35000E+04
2 0.48227E+05 0.51727E+05 0.35000E+04 0.35000E+04
3 -0.35000E+04 0.00000E+00 0.35000E+04 0.35000E+04
4 0.49189E+05 0.52689E+05 0.35000E+04 0.35000E+04
5 0.46745E+05 0.50245E+05 0.35000E+04 0.35000E+04
6 0.48667E+05 0.52167E+05 0.35000E+04 0.35000E+04
7 0.49242E+05 0.52742E+05 0.35000E+04 0.35000E+04
8 0.48736E+05 0.52236E+05 0.35000E+04 0.35000E+04
9 -0.35000E+04 0.00000E+00 0.35000E+04 0.35000E+04
。。。。。。。
cc,err = 1.000000000000000 1.408993330699737E+012
ab,rab = 0.000000000000000E+000 0.000000000000000E+000
是不是err太大了,如果双精度,在哪设?好像系统默认就是双精度?
还有请教seeksilence为什么要
“在批命令文件开始加上
copy disp1 disp2 “
不理解?
谢谢!!
页:
[1]