lyn 发表于 2004-6-13 03:08:38

分布质量矩阵

如果两个方程,两个变量,po,pg.每个方程里都有这两个变量对时间的一阶导数,该怎么写质量矩阵?
我按照以下方式写后:
mass
dist=+*a+*b

出现以下错误:
the number of subscripts is incorrect for emass(jv,iv)
emass(jv,iv)=emass(jv,iv)+stiff*weight

那位大侠帮个忙,我很急得解决这个问题,非常感谢!!

seeksilence 发表于 2004-6-14 09:31:09

回复: 分布质量矩阵

你将你调用的nfe文件(gcn中调用的nfe名)改一下,在nfe的defi段有一下mdty l,
缺省是l(集中矩阵),需要改成d(分布矩阵)。还有注意一下nfe中
type 应是p。
你将原型文件(gcn,gio,pde,还有改过的nfe文件,pre改过也可拷出来)
拷入另一目录,重新生成一下试试

lyn 发表于 2004-6-14 11:48:54

回复: 分布质量矩阵

还是不行,seeksilence.
但是我还有一个问题,我在gcn文件中用的算法是nparb,为什么在我的目录里有npa.nfe文件? 不管怎么样,我按照你的方法在gcn里用npa.nfe算法了,还是不行,快帮个忙。我想也可以按照书上的方法对时间进行离散,但是这样,方程里既有上一时步的的值,又需要上一迭代的值来求非线性系数,这样coef 该怎么写?
谢谢!!!

lyn 发表于 2004-6-14 12:41:08

回复: 分布质量矩阵

还是不行呀!以下是VDE 文件,谢谢指点!!

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
$c6 call calcoef(pg,so,sg,bo,bg,rso,rsopo,
$c0      &   bopo,bgpg,sopc,pkro,pkrg,vsco,vscg,
$c0      &   poro,t,api,pb,zdf,gmw,pd,alfa,beta,
$c0      &   sor,elamda,tcvt,pon,pcn)
$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)
dist=+*pk_i*a1
     +*pk_i*b1
     +*pk_i*c1

mass
$c6 call calcoef(pg,so,sg,bo,bg,rso,rsopo,
$c0      &   bopo,bgpg,sopc,pkro,pkrg,vsco,vscg,
$c0      &   poro,t,api,pb,zdf,gmw,pd,alfa,beta,
$c0      &   sor,elamda,tcvt,pon,pcn)
$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=+*a2
     +*b2
     +*c2
     +*d2

load=+*0.0

end

seeksilence 发表于 2004-6-14 13:54:31

回复: 分布质量矩阵

$c6 c2=(rso*bopo+rsopo/bo)*poro*so*+错了
   
mass 段不能插fortran,可以转到stif段

lyn 发表于 2004-6-14 15:30:00

回复: 分布质量矩阵

问题已经解决了。thank you so much. Seeksilence.

飞花 发表于 2005-2-20 20:16:35

页: [1]
查看完整版本: 分布质量矩阵