关于在rhoPimpleFoam里面修改EEqn和状态方程的问题
- 
							
							
							
							
大家好,:happy: 我在使用rhoPimpleFoam来计算空化,在其中植入自己的代码,目前第一步是在改了这个压缩求解器中的状态方程.原来的设置是perfectGas就是理想气体状态方程来计算的,我把它改成了一个这样的方程式: 
 在pEqn的头部
  
 和尾部的地方把rho=thermo.rho()的地方换成了这个.
  
 my_Eqn_of_State的代码,就是把通过气相和液相求出综合的密度,其中RHOBF和RHOL2F是由自定义数据来实现的,根据T和P的不同决定密度.
  
 计算后发现是可以计算的,类那边也看过但觉得对自己改来说太复杂了就用这样的方法去改,不知道方法正确与否希望大家给点意见.
 下图是整个主题的代码,加了两行TEqn和ElEqn
  
 因为一开始计算的是综合的密度,所以得出的也是混合体的压力和速度什么的,由混合物的速度可以求出液体的速度.其中混合体的温度T是通过焓方程求出来的.我老师让我把液体的速度再代入焓方程求液体的温度.
 所以我在pimple的循环之后加了一个ElEqn的来像计算出液体的温度.
  
 因为现在只是想知道方法,所以直接让混合体速度等于液体速度,这一步根据计算结果来看没有问题.然后我把EEqn文档中的数值符号全部加了l在后面,volScalarField也全部在creatField里面声明了.但计算结果来看,好像有问题,而且也没有输出Tl的值.
 请问一下大家我对于这个求解器的修改有什么不完美的地方吗?
 还望大家赐教.
- 
							
							
							
							
自己挖的坑自己填回去。。。。。。。。。。。。。 我今天发现是我自己定义的TELF函数出了问题,所以计算出来的结果有问题。 
 但是这种方法加入状态方程我实践过的确是可行的。
 就是换了以后,连续性误差的地方会变的非常怪,查了continuityErr这个文档,发现里面计算连续性误差还是使用rho-thermo.rho所以会出现误差值十分大,
 目前还在想着这么去改thermo下的东西,因为自己不能把黏性系数和普朗数设成固定值,
 怎样把这些thermo文档下设置函数还在研究中。
 
			
 上面这个是添加在TlEqn下面的代码。
 上面这个是添加在TlEqn下面的代码。 我查了下时间步的phi和自己定义的phil输出的也不一样。
 我查了下时间步的phi和自己定义的phil输出的也不一样。 下面是phil
下面是phil 而且输出的文档也有些异样
 而且输出的文档也有些异样 在运算是控制台输出时最后一步TlEqn的计算特别慢,好像卡了一下,从这个文档来看,最后的iterations也到了1000啊,好像是有些问题。
 在运算是控制台输出时最后一步TlEqn的计算特别慢,好像卡了一下,从这个文档来看,最后的iterations也到了1000啊,好像是有些问题。
 其中状态方程是自己定义的,如前面所说
 其中状态方程是自己定义的,如前面所说 把thermo.rho()换成了这个图里的状态方程,rhoG和rhoL的函数都是自己定义的,这样上述四个式子可以求出内部能量e,EEqn我是这样改了下
把thermo.rho()换成了这个图里的状态方程,rhoG和rhoL的函数都是自己定义的,这样上述四个式子可以求出内部能量e,EEqn我是这样改了下 原来是thermo.he()的,直接使用理想气体状态方程时是没问题的,但一用这种方式就无法收敛以及发散。
 原来是thermo.he()的,直接使用理想气体状态方程时是没问题的,但一用这种方式就无法收敛以及发散。