加热封闭空间的空气后能量守恒的问题
-
算例是一个封闭的空间有一个热流恒定为80W的热源加热空气。
遇到的问题是验证能量守恒时发现房间内所有空气每秒增加的总焓为75J,与80W之间有6-7%的误差。
我的求解器是buoyantPimpleFoam,考虑到空气的温度变化较小,故采用了boussinesq作为状态方程
热源的设置是将房间中一部分的空气作为一个cellset当做热源,具体设置如下
heat1 { type scalarSemiImplicitSource; enabled true; active true; scalarSemiImplicitSourceCoeffs { selectionMode cellSet; cellSet heat1; volumeMode absolute; injectionRateSuSp { h { Su table ( (0 80) ); Sp 0.0; } } } }
检测房间内焓增的方法如下,用到了swak4Foam,其中公式里的298.15是T0参考温度,1000是Cp质量比热容,vol()代表每个网格的体积
T_volSum_room { name T_volSum_room; type swakExpression; valueType cellSet; libs ("libsimpleSwakFunctionObjects.so" ); outputControlMode timeStep; outputInterval 10; writeStartTime no; setName room; expression "(T-298.15)*1000*vol()*rho"; autoInterpolate true; accumulations (sum); verbose true; }
请问大家到底是哪里出了问题?我考虑了三种情况
- boussinesq状态方程导致:这个情况我否定了,因为换了状态方程perfect gas之后该现象依然存在
- 热源设置问题:即以上的设置方法产生的热流本身就小于80W
- 检测方法问题: 用以下公式后在求和并不能准确测出房间内总的焓增
(T-298.15)*1000*vol()*rho
希望大家指点下到底会是什么原因呢
感谢感谢 -
我猜可能是(3):在数值计算中,空气的比热是随温度变化的,也就是大于1000,这个要看你的算例设置了。而后处理计算,比热假设为常数了。两者之间会有误差。
-
@zhouxu
感谢回复!
但是关于质量比热容Cp在我的算例里应该是不变的,原因是我使用了hConstThermo的热力模型,该模型假设Cp不变
是否还会有别的原因呢? -
@minecraftgp 嗯,那cp的值是1000J/kg/K吗?计算初始空气温度是298.15K吗?