openfoam中Eular网格上的流场值插值到某一个点

openfoam中Eular网格上的流场值插值到某一个点

在模拟气固两相鼓泡床过程中需要将场量(流体速度,压力梯度)插值到相应颗粒位置,openfoam中自带了这种插值函数源文件可点击总共有六种插值方法cell, cellPoint, cellPointFace, cellPointWallModified, cellPatchConstrainedpointMVC详细的插值方法介绍。以cellPoint为例介绍插值流体速度U到颗粒某一位置i:
(1)只使用某一种插值方法:

#include "interpolationCellPoint.H"

		interpolationCellPoint<vector> UInterpolate(U);
		forAll(particlePosition,i){		//particlePosition包含颗粒位置的矢量数组
				label cellID = mesh.findCell(particleposition[i]);	//找到该颗粒所在网格
				vector UInterp = UInterpolate.interpolate(particlePosition[i], cellID);	//插值
		}

如果想使用其他方法修改头文件即可
(2)若是对不同量采用不同的插值方法,则可以写成指针形式,从字典中调用对应方法的关键字即可:

#include "interpolation.H"

		dictionary interpolationDict = U.mesh().schemesDict().subDict("interpolation");
		autoPtr<interpolation<vector>> UInterpolate = interpolation<vector>::New(interpolationDict,U);
		forAll(particlePosition,i){
				label cellID = mesh.findCell(particleposition[i]);
				vector UInterp = UInterpolate->interpolate(particlePosition[i], cellID);
		}

具体的方法在算例文件夹下system/fvSchemes interpolation子文件中:

interpolation
{
		U cellPoint;
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值