方程离散!fvm:div到底output出什么?
-
大家好,
想请教一个基础问题。
根据这篇post,http://dyfluid.com/divsnGrad.html,
fvm:div(Phi, U)
应该生成的是对一个cell所有面的流率与速度乘积的加和。按照Guass theorem推到下来的确是这样。
但是那么对应的ddt(rho,U)
就应该是rho, U, V的乘积是么?因为如果做了对Phi, U 项做了加和且没有除以体积的话,那其他项都应该有对体积的积分啊。如果加入source term,也应该对source term进行体积积分。请问大家是这样么?因为之前一个师兄写的solver里面出现:
rho(t+1)=rho(t)+dt*K*fvc::div(rhoFlux)
类似的code,这样来看的话,fvc::div(rhoFlux)
应该生成的是一个对某cell所有面的rhoFlux的加和,但是rho项并没有对cell的体积进行任何操作啊。。。所以这个dimension在等式左右两边就不一样啊。。所以我在想
div
的这个操作符,是不是还加入了除以体积的操作?
请各位大神指教!
谢谢啦! -
@李东岳 Exactly what I wanted! Thanks a lot!
不过还是想请前辈check一下:
也就是说,
fvm返回的是fvMatrix, fvm::ddt, fvm:laplacian都会将结果乘以体积。由于fvm::div用gauss theorem做的面的flux加和,所以没有乘以体积;
fvc返回的GeometricField, 所以在对fvm和fvc进行加减时会重载operator。
例如,fvc::div 返回的dimension 本来是 fvm::div返回的dimension 再除以了体积V的,但是在一个方程中同时出现fvm和fvc时,会对 fvc::div 项也乘以体积以保证量纲守恒。但是单独进行fvc::div操作时,返回的dimension 仍然再除以了体积V的。
请问我理解的对么?谢谢!